summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/loop.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 15d4560af68..85375c68061 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
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:
we need to unconditionally create a new mem.
diff --git a/gcc/loop.c b/gcc/loop.c
index 2069588aed6..0b79dc338a4 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -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;