re PR rtl-optimization/47612 (RTL crash when cc0 setter moved away from cc0 user)

PR rtl-optimization/47612
	* df-problems.c (can_move_insns_across): Don't pick a cc0 setter
	as the last insn of the sequence to be moved.

From-SVN: r173393
This commit is contained in:
Bernd Schmidt 2011-05-04 20:24:15 +00:00 committed by Bernd Schmidt
parent a3330c9d55
commit 0360f70d36
2 changed files with 15 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
PR rtl-optimization/47612
* df-problems.c (can_move_insns_across): Don't pick a cc0 setter
as the last insn of the sequence to be moved.
2011-05-04 Tobias Burnus <burnus@net-b.de>
PR fortran/48864

View File

@ -4001,6 +4001,9 @@ can_move_insns_across (rtx from, rtx to, rtx across_from, rtx across_to,
if (bitmap_intersect_p (merge_set, test_use)
|| bitmap_intersect_p (merge_use, test_set))
break;
#ifdef HAVE_cc0
if (!sets_cc0_p (insn))
#endif
max_to = insn;
}
next = NEXT_INSN (insn);
@ -4038,7 +4041,11 @@ can_move_insns_across (rtx from, rtx to, rtx across_from, rtx across_to,
{
if (NONDEBUG_INSN_P (insn))
{
if (!bitmap_intersect_p (test_set, local_merge_live))
if (!bitmap_intersect_p (test_set, local_merge_live)
#ifdef HAVE_cc0
&& !sets_cc0_p (insn)
#endif
)
{
max_to = insn;
break;