Commit 01a5c0ab by Alexandre Oliva Committed by Alexandre Oliva

re PR debug/47994 (-fcompare-debug failure with -O2 -fpeel-loops…

re PR debug/47994 (-fcompare-debug failure with -O2 -fpeel-loops -fno-rerun-cse-after-loop -fno-tree-loop-optimize -fno-web)

PR debug/47994
PR debug/47919
* combine.c (try_combine): Skip debug insns at m_split tests.

From-SVN: r173351
parent f7bde72f
2011-05-04 Alexandre Oliva <aoliva@redhat.com>
PR debug/47994
PR debug/47919
* combine.c (try_combine): Skip debug insns at m_split tests.
2011-04-26 Mark Wielaard <mjw@redhat.com> 2011-04-26 Mark Wielaard <mjw@redhat.com>
PR42288 PR42288
......
...@@ -3457,7 +3457,7 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p, ...@@ -3457,7 +3457,7 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p,
newpat = m_split; newpat = m_split;
} }
else if (m_split && NEXT_INSN (NEXT_INSN (m_split)) == NULL_RTX else if (m_split && NEXT_INSN (NEXT_INSN (m_split)) == NULL_RTX
&& (next_real_insn (i2) == i3 && (next_nonnote_nondebug_insn (i2) == i3
|| ! use_crosses_set_p (PATTERN (m_split), DF_INSN_LUID (i2)))) || ! use_crosses_set_p (PATTERN (m_split), DF_INSN_LUID (i2))))
{ {
rtx i2set, i3set; rtx i2set, i3set;
...@@ -3474,7 +3474,7 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p, ...@@ -3474,7 +3474,7 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p,
is used between I2 and I3, we also can't use these insns. */ is used between I2 and I3, we also can't use these insns. */
if (i2_code_number >= 0 && i2set && i3set if (i2_code_number >= 0 && i2set && i3set
&& (next_real_insn (i2) == i3 && (next_nonnote_nondebug_insn (i2) == i3
|| ! reg_used_between_p (SET_DEST (i2set), i2, i3))) || ! reg_used_between_p (SET_DEST (i2set), i2, i3)))
insn_code_number = recog_for_combine (&newi3pat, i3, insn_code_number = recog_for_combine (&newi3pat, i3,
&new_i3_notes); &new_i3_notes);
...@@ -3522,7 +3522,7 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p, ...@@ -3522,7 +3522,7 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p,
|| GET_MODE (*split) == VOIDmode || GET_MODE (*split) == VOIDmode
|| can_change_dest_mode (i2dest, added_sets_2, || can_change_dest_mode (i2dest, added_sets_2,
GET_MODE (*split))) GET_MODE (*split)))
&& (next_real_insn (i2) == i3 && (next_nonnote_nondebug_insn (i2) == i3
|| ! use_crosses_set_p (*split, DF_INSN_LUID (i2))) || ! use_crosses_set_p (*split, DF_INSN_LUID (i2)))
/* We can't overwrite I2DEST if its value is still used by /* We can't overwrite I2DEST if its value is still used by
NEWPAT. */ NEWPAT. */
......
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