------- Comment #10 from steven at gcc dot gnu dot org  2010-01-30 20:32 -------
The safe thing to do, may be to ignore self control dependence, like so:

-------------------------------------------------  8<   --------------
Index: tree-ssa-dce.c
===================================================================
--- tree-ssa-dce.c      (revision 156352)
+++ tree-ssa-dce.c      (working copy)
@@ -390,6 +390,11 @@
       gimple stmt;
       basic_block cd_bb = INDEX_EDGE_PRED_BB (el, edge_number);

+      /* Ignore control dependence on BB itself.  This can happen with loops
+        but since we are here, we have already made BB necessary.  */
+      if (cd_bb == bb)
+       continue;
+
       if (TEST_BIT (last_stmt_necessary, cd_bb->index))
        continue;
       SET_BIT (last_stmt_necessary, cd_bb->index);
-------------------------------------------------  8<   --------------

Needs testing, but I can't do that right now. Honza, richi...?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42906

Reply via email to