re PR rtl-optimization/57003 (gcc breaks -O2 optimization with Wine(64) - links/info/bisect of commits included)
PR rtl-optimization/57003 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg, also check CALL_INSN_FUNCTION_USAGE for clobbers again after killing regs_invalidated_by_call. From-SVN: r216026
This commit is contained in:
parent
c4d91f2eac
commit
58a41b43b5
@ -1,3 +1,10 @@
|
||||
2014-10-09 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR rtl-optimization/57003
|
||||
* regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
|
||||
also check CALL_INSN_FUNCTION_USAGE for clobbers again after
|
||||
killing regs_invalidated_by_call.
|
||||
|
||||
2014-10-08 Teresa Johnson <tejohnson@google.com>
|
||||
|
||||
PR bootstrap/63432.
|
||||
|
@ -1029,7 +1029,17 @@ copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd)
|
||||
but instead among CLOBBERs on the CALL_INSN, we could wrongly
|
||||
assume the value in it is still live. */
|
||||
if (ksvd.ignore_set_reg)
|
||||
note_stores (PATTERN (insn), kill_clobbered_value, vd);
|
||||
{
|
||||
note_stores (PATTERN (insn), kill_clobbered_value, vd);
|
||||
for (exp = CALL_INSN_FUNCTION_USAGE (insn);
|
||||
exp;
|
||||
exp = XEXP (exp, 1))
|
||||
{
|
||||
rtx x = XEXP (exp, 0);
|
||||
if (GET_CODE (x) == CLOBBER)
|
||||
kill_value (SET_DEST (x), vd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Notice stores. */
|
||||
|
Loading…
Reference in New Issue
Block a user