This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/42906] [4.5 Regression] Empty loop not removed
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Jan 2010 16:45:51 -0000
- Subject: [Bug tree-optimization/42906] [4.5 Regression] Empty loop not removed
- References: <bug-42906-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from steven at gcc dot gnu dot org 2010-01-30 16:45 -------
Hack that may be worth trying:
Index: tree-ssa-dce.c
===================================================================
--- tree-ssa-dce.c (revision 156352)
+++ tree-ssa-dce.c (working copy)
@@ -683,7 +683,10 @@ propagate_necessity (struct edge_list *e
{
for (k = 0; k < gimple_phi_num_args (stmt); k++)
{
+ tree t = gimple_phi_arg_def (stmt, k);
basic_block arg_bb = gimple_phi_arg_edge (stmt, k)->src;
+ if (is_gimple_min_invariant (t))
+ continue;
if (arg_bb != ENTRY_BLOCK_PTR
&& ! TEST_BIT (visited_control_parents, arg_bb->index))
{
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42906