diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b694c997ab0..0d3c2def682 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Sep 14 01:33:15 1999 Andreas Schwab + + * loop.c (strength_reduce): Don't call reg_used_between_p if the + insn from BL2 is after the insn from BL. + Mon Sep 13 21:06:01 1999 Richard Henderson * recog.h (INSN_OUTPUT_FORMAT_*): New. diff --git a/gcc/loop.c b/gcc/loop.c index b25734ddaee..dcff6850fbd 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -4056,11 +4056,11 @@ strength_reduce (scan_start, end, loop_top, insn_count, in-between when biv_total_increment returns nonzero both times but we test it here in case some day some real cfg analysis gets used to set always_computable. */ - && ((loop_insn_first_p (bl2->biv->insn, bl->biv->insn) - && no_labels_between_p (bl2->biv->insn, bl->biv->insn)) - || (! reg_used_between_p (bl->biv->src_reg, bl->biv->insn, - bl2->biv->insn) - && no_jumps_between_p (bl->biv->insn, bl2->biv->insn))) + && (loop_insn_first_p (bl2->biv->insn, bl->biv->insn) + ? no_labels_between_p (bl2->biv->insn, bl->biv->insn) + : (! reg_used_between_p (bl->biv->src_reg, bl->biv->insn, + bl2->biv->insn) + && no_jumps_between_p (bl->biv->insn, bl2->biv->insn))) && validate_change (bl->biv->insn, &SET_SRC (single_set (bl->biv->insn)), copy_rtx (src), 0))