diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfgloopanal.c | 7 |
2 files changed, 7 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dfd47ba49f6..e30ac442c4e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-03-31 Zdenek Dvorak <dvorakz@suse.cz> + + * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT + flag for edges outside any loops. + 2005-03-31 Janis Johnson <janis187@us.ibm.com> * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs. diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c index 055375d741f..2d2ece2cb2d 100644 --- a/gcc/cfgloopanal.c +++ b/gcc/cfgloopanal.c @@ -580,13 +580,10 @@ mark_loop_exit_edges (struct loops *loops) { edge_iterator ei; - /* Do not mark exits from the fake outermost loop. */ - if (!bb->loop_father->outer) - continue; - FOR_EACH_EDGE (e, ei, bb->succs) { - if (loop_exit_edge_p (bb->loop_father, e)) + if (bb->loop_father->outer + && loop_exit_edge_p (bb->loop_father, e)) e->flags |= EDGE_LOOP_EXIT; else e->flags &= ~EDGE_LOOP_EXIT; |