tree-ssa-pre.c (insert_aux): Break out if we hit a critical edge.
authorDaniel Berlin <dberlin@dberlin.org>
Fri, 16 Jul 2004 22:51:48 +0000 (22:51 +0000)
committerDaniel Berlin <dberlin@gcc.gnu.org>
Fri, 16 Jul 2004 22:51:48 +0000 (22:51 +0000)
2004-07-16  Daniel Berlin  <dberlin@dberlin.org>

* tree-ssa-pre.c (insert_aux): Break out if we hit
a critical edge.

From-SVN: r84841

gcc/ChangeLog
gcc/tree-ssa-pre.c

index df18afadb827d67fc70600bc4214df9a98feda18..a89927f3f143e634e4470f5d496b166c06a519a8 100644 (file)
@@ -1,3 +1,8 @@
+2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-pre.c (insert_aux): Break out if we hit
+       a critical edge.
+
 2004-07-16  Richard Henderson  <rth@redhat.com>
 
        * basic-block.h (remove_fake_exit_edges): Declare.
index ba4be7b82d31b583cb54b4488be80e2a107d7935..a6943980229ae6a52ba3b9fe9867821ac20c29ac 100644 (file)
@@ -1457,6 +1457,15 @@ insert_aux (basic_block block)
                        {
                          tree vprime;
                          tree edoubleprime;
+
+                         /* This can happen in the very weird case
+                            that our fake infinite loop edges have caused a
+                            critical edge to appear.  */
+                         if (EDGE_CRITICAL_P (pred))
+                           {
+                             cant_insert = true;
+                             break;
+                           }
                          bprime = pred->src;
                          eprime = phi_translate (node->expr,
                                                  ANTIC_IN (block),