cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT flag for edges outside...
authorZdenek Dvorak <dvorakz@suse.cz>
Thu, 31 Mar 2005 20:34:24 +0000 (22:34 +0200)
committerZdenek Dvorak <rakdver@gcc.gnu.org>
Thu, 31 Mar 2005 20:34:24 +0000 (20:34 +0000)
* cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
flag for edges outside any loops.

From-SVN: r97348

gcc/ChangeLog
gcc/cfgloopanal.c

index dfd47ba49f6453d0a18f5c1edf796ec6815c782d..e30ac442c4e092fc614396b331cd546c52d43e0a 100644 (file)
@@ -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.
index 055375d741f28c4b4047fdbaa6c674de9796da0e..2d2ece2cb2d6536ad68c151df58630c5ff520c40 100644 (file)
@@ -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;