diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2004-07-16 22:51:48 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2004-07-16 22:51:48 +0000 |
commit | 3f7d210dfb6639949b9b2f0f6dc04cb4124d85b6 (patch) | |
tree | 17780a64a3a502b08cf76f16cfb78be263315d05 /gcc | |
parent | 6809cbf90dffd5a6fccf96d67c5f520e1a162eb6 (diff) | |
download | gcc-3f7d210dfb6639949b9b2f0f6dc04cb4124d85b6.zip gcc-3f7d210dfb6639949b9b2f0f6dc04cb4124d85b6.tar.gz gcc-3f7d210dfb6639949b9b2f0f6dc04cb4124d85b6.tar.bz2 |
tree-ssa-pre.c (insert_aux): Break out if we hit a critical edge.
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-ssa-pre.c | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index df18afa..a89927f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index ba4be7b..a694398 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -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), |