mirror of git://gcc.gnu.org/git/gcc.git
re PR rtl-optimization/15296 ([3.4 only] Delayed branch scheduling causing invalid code on cris-*)
PR optimization/15296 * reorg.c (fill_simple_delay_slots): Use next_real_insn when getting last consecutive label at a branch. (relax_delay_slots): Similar, near top of loop. From-SVN: r81600
This commit is contained in:
parent
57408b4584
commit
afce2847b3
|
@ -1,3 +1,10 @@
|
|||
2004-05-07 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
PR optimization/15296
|
||||
* reorg.c (fill_simple_delay_slots): Use next_real_insn when
|
||||
getting last consecutive label at a branch.
|
||||
(relax_delay_slots): Similar, near top of loop.
|
||||
|
||||
2004-05-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||
|
||||
PR target/15202
|
||||
|
|
|
@ -2349,7 +2349,9 @@ fill_simple_delay_slots (int non_jumps_p)
|
|||
&& eligible_for_delay (insn, slots_filled, next_trial, flags)
|
||||
&& ! can_throw_internal (trial))
|
||||
{
|
||||
rtx new_label = next_active_insn (next_trial);
|
||||
/* See comment in relax_delay_slots about necessity of using
|
||||
next_real_insn here. */
|
||||
rtx new_label = next_real_insn (next_trial);
|
||||
|
||||
if (new_label != 0)
|
||||
new_label = get_label_before (new_label);
|
||||
|
@ -3074,7 +3076,9 @@ relax_delay_slots (rtx first)
|
|||
&& (target_label = JUMP_LABEL (insn)) != 0)
|
||||
{
|
||||
target_label = follow_jumps (target_label);
|
||||
target_label = prev_label (next_active_insn (target_label));
|
||||
/* See comment further down why we must use next_real_insn here,
|
||||
instead of next_active_insn. */
|
||||
target_label = prev_label (next_real_insn (target_label));
|
||||
|
||||
if (target_label == 0)
|
||||
target_label = find_end_label ();
|
||||
|
|
Loading…
Reference in New Issue