Commit d4abfcc5 by Richard Biener Committed by Richard Biener

re PR middle-end/69547 (no-op array initializer emits an empty loop)

2016-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69547
	* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
	Do not mark clobbers necessary.
	(mark_all_reaching_defs_necessary_1): Likewise.

	* g++.dg/tree-ssa/pr69547.C: New testcase.

From-SVN: r232976
parent 16b77b32
2016-01-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/69547
* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
Do not mark clobbers necessary.
(mark_all_reaching_defs_necessary_1): Likewise.
2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
......
2016-01-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/69547
* g++.dg/tree-ssa/pr69547.C: New testcase.
2016-01-29 Jakub Jelinek <jakub@redhat.com>
PR debug/66869
......
// { dg-do compile }
// { dg-options "-O2 -fdump-tree-cddce1" }
struct A { A () { } };
void foo (void*, int);
void bar ()
{
enum { N = 64 };
A a [N];
foo (&a, N);
}
// { dg-final { scan-tree-dump-not "if" "cddce1" } }
......@@ -462,7 +462,8 @@ mark_aliased_reaching_defs_necessary_1 (ao_ref *ref, tree vdef, void *data)
gimple *def_stmt = SSA_NAME_DEF_STMT (vdef);
/* All stmts we visit are necessary. */
mark_operand_necessary (vdef);
if (! gimple_clobber_p (def_stmt))
mark_operand_necessary (vdef);
/* If the stmt lhs kills ref, then we can stop walking. */
if (gimple_has_lhs (def_stmt)
......@@ -584,7 +585,8 @@ mark_all_reaching_defs_necessary_1 (ao_ref *ref ATTRIBUTE_UNUSED,
}
}
mark_operand_necessary (vdef);
if (! gimple_clobber_p (def_stmt))
mark_operand_necessary (vdef);
return false;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment