summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-08 18:32:31 +0000
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-08 18:32:31 +0000
commit978dc23eff054e366cfc305fd6caa39597fa9032 (patch)
treeca4fc1bb6a60377368ad40416a7ee08a4aaca40f
parenta6e8541314dc422496ba2518435af75ebf66d011 (diff)
downloadppe42-gcc-978dc23eff054e366cfc305fd6caa39597fa9032.tar.gz
ppe42-gcc-978dc23eff054e366cfc305fd6caa39597fa9032.zip
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). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56956 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/loop.c2
-rw-r--r--gcc/unroll.c2
3 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3abc016560c..43f4844e1f5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,13 @@
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.
diff --git a/gcc/loop.c b/gcc/loop.c
index c601f5b84e6..24b16aa9a90 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -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);
}
diff --git a/gcc/unroll.c b/gcc/unroll.c
index 4096905be62..61d63d8e2a3 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -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
OpenPOWER on IntegriCloud