From bdebf8b35081fd5408bea5c50cf864f61861d184 Mon Sep 17 00:00:00 2001 From: dberlin Date: Fri, 16 Jul 2004 22:51:48 +0000 Subject: [PATCH] 2004-07-16 Daniel Berlin * tree-ssa-pre.c (insert_aux): Break out if we hit a critical edge. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84841 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/tree-ssa-pre.c | 9 +++++++++ 2 files changed, 14 insertions(+) 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 + + * tree-ssa-pre.c (insert_aux): Break out if we hit + a critical edge. + 2004-07-16 Richard Henderson * 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), -- 2.7.4