Commit 0360f70d by Bernd Schmidt Committed by Bernd Schmidt

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
parent a3330c9d
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> 2011-05-04 Tobias Burnus <burnus@net-b.de>
PR fortran/48864 PR fortran/48864
......
...@@ -4001,7 +4001,10 @@ can_move_insns_across (rtx from, rtx to, rtx across_from, rtx across_to, ...@@ -4001,7 +4001,10 @@ can_move_insns_across (rtx from, rtx to, rtx across_from, rtx across_to,
if (bitmap_intersect_p (merge_set, test_use) if (bitmap_intersect_p (merge_set, test_use)
|| bitmap_intersect_p (merge_use, test_set)) || bitmap_intersect_p (merge_use, test_set))
break; break;
max_to = insn; #ifdef HAVE_cc0
if (!sets_cc0_p (insn))
#endif
max_to = insn;
} }
next = NEXT_INSN (insn); next = NEXT_INSN (insn);
if (insn == to) if (insn == to)
...@@ -4038,7 +4041,11 @@ can_move_insns_across (rtx from, rtx to, rtx across_from, rtx across_to, ...@@ -4038,7 +4041,11 @@ can_move_insns_across (rtx from, rtx to, rtx across_from, rtx across_to,
{ {
if (NONDEBUG_INSN_P (insn)) 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; max_to = insn;
break; break;
......
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