loop.c (check_dbra_loop): Fix last change: examine both has_multiple_exit_targets...
authorRichard Henderson <rth@redhat.com>
Mon, 31 Dec 2001 03:09:48 +0000 (19:09 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 31 Dec 2001 03:09:48 +0000 (19:09 -0800)
        * loop.c (check_dbra_loop): Fix last change: examine both
        has_multiple_exit_targets and exit_count.

From-SVN: r48404

gcc/ChangeLog
gcc/loop.c

index 15d4560af682ca9758aa4c63e2648f1194118280..85375c68061f227a14f6bcb6273606e8942761d6 100644 (file)
@@ -1,3 +1,8 @@
+2001-12-30  Richard Henderson  <rth@redhat.com>
+
+       * loop.c (check_dbra_loop): Fix last change: examine both
+       has_multiple_exit_targets and exit_count.
+
 2001-12-30  Richard Henderson  <rth@redhat.com>
 
        * integrate.c (copy_rtx_and_substitute): Fix error last change:
index 2069588aed604098e2803abde68cf9d306de3dfe..0b79dc338a44e5760848dccfe1a4dfcf8443a271 100644 (file)
@@ -7977,7 +7977,9 @@ check_dbra_loop (loop, insn_count)
         which is reversible.  */
       int reversible_mem_store = 1;
 
-      if (bl->giv_count == 0 && ! loop_info->has_multiple_exit_targets)
+      if (bl->giv_count == 0
+         && !loop->exit_count
+         && !loop_info->has_multiple_exit_targets)
        {
          rtx bivreg = regno_reg_rtx[bl->regno];
          struct iv_class *blt;