diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/loop.c | 4 |
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; |