re PR rtl-optimization/49007 (ICE in extract_true_false_edges_from_block at tree-cfg.c:7379)

PR rtl-optimization/49007
	Backport from mainline:
	2009-11-30  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/40086
	* reorg.c (relax_delay_slots): When looking for redundant insn at
	the branch target, use next_real_insn, not next_active_insn.

From-SVN: r174090
This commit is contained in:
John David Anglin 2011-05-23 22:31:55 +00:00 committed by John David Anglin
parent 104d88b76e
commit 0f397dbd3d
2 changed files with 15 additions and 2 deletions

View File

@ -1,3 +1,13 @@
2011-05-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR rtl-optimization/49007
Backport from mainline:
2009-11-30 Hans-Peter Nilsson <hp@axis.com>
PR rtl-optimization/40086
* reorg.c (relax_delay_slots): When looking for redundant insn at
the branch target, use next_real_insn, not next_active_insn.
2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard

View File

@ -3499,8 +3499,11 @@ relax_delay_slots (rtx first)
}
/* If the first insn at TARGET_LABEL is redundant with a previous
insn, redirect the jump to the following insn process again. */
trial = next_active_insn (target_label);
insn, redirect the jump to the following insn and process again.
We use next_real_insn instead of next_active_insn so we
don't skip USE-markers, or we'll end up with incorrect
liveness info. */
trial = next_real_insn (target_label);
if (trial && GET_CODE (PATTERN (trial)) != SEQUENCE
&& redundant_insn (trial, insn, 0)
&& ! can_throw_internal (trial))