Commit 7df98878 by Roger Sayle Committed by Roger Sayle

re PR rtl-optimization/6405 (Loop-unrolling related performance regressions)


	PR optimization/6405
	* unroll.c (loop_iterations): last_loop_insn should be the previous
	non-note instruction before loop->end.
	* loop.c (strength_reduce): The conditional jump is the last
	non-note instruction before loop->end (as above).

From-SVN: r56956
parent f40f4c8e
2002-09-08 Roger Sayle <roger@eyesopen.com>
PR optimization/6405
* unroll.c (loop_iterations): last_loop_insn should be the previous
non-note instruction before loop->end.
* loop.c (strength_reduce): The conditional jump is the last
non-note instruction before loop->end (as above).
2002-09-08 Roger Sayle <roger@eyesopen.com>
* combine.c (try_combine): Handle the case that undobuf.other_insn
has been turned into a return or unconditional jump, by inserting
a BARRIER if necessary.
......
......@@ -5348,7 +5348,7 @@ strength_reduce (loop, flags)
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,
predict_insn (prev_nonnote_insn (loop->end), PRED_LOOP_ITERATIONS,
REG_BR_PROB_BASE - REG_BR_PROB_BASE / n);
}
......
......@@ -3273,7 +3273,7 @@ loop_iterations (loop)
accidentally get the branch for a contained loop if the branch for this
loop was deleted. We can only trust branches immediately before the
loop_end. */
last_loop_insn = PREV_INSN (loop->end);
last_loop_insn = prev_nonnote_insn (loop->end);
/* ??? We should probably try harder to find the jump insn
at the end of the loop. The following code assumes that
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment