From 26b738be01562bb7cf45e9bcd93838af69a0d9bd Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sun, 10 Mar 2002 15:46:14 -0800 Subject: [PATCH] loop.c (strength_reduce): Compute number of iterations as unsigned HOST_WIDE_INT. * loop.c (strength_reduce): Compute number of iterations as unsigned HOST_WIDE_INT. From-SVN: r50550 --- gcc/ChangeLog | 5 +++++ gcc/loop.c | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 26ee5030c22..378d3cca813 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-03-10 Richard Henderson + + * loop.c (strength_reduce): Compute number of iterations as + unsigned HOST_WIDE_INT. + 2002-03-10 Richard Henderson * sched-rgn.c (add_branch_dependences): Don't allow insns that throw diff --git a/gcc/loop.c b/gcc/loop.c index 506984beaaf..3108b032498 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -5225,13 +5225,13 @@ strength_reduce (loop, flags) /* In case number of iterations is known, drop branch prediction note in the branch. Do that only in second loop pass, as loop unrolling may change the number of iterations performed. */ - if ((flags & LOOP_BCT) - && loop_info->n_iterations / loop_info->unroll_number > 1) + if (flags & LOOP_BCT) { - int n = loop_info->n_iterations / loop_info->unroll_number; - predict_insn (PREV_INSN (loop->end), - PRED_LOOP_ITERATIONS, - REG_BR_PROB_BASE - REG_BR_PROB_BASE / n); + unsigned HOST_WIDE_INT n + = loop_info->n_iterations / loop_info->unroll_number; + if (n > 1) + predict_insn (PREV_INSN (loop->end), PRED_LOOP_ITERATIONS, + REG_BR_PROB_BASE - REG_BR_PROB_BASE / n); } if (loop_dump_stream)