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:
Uros Bizjak 2014-10-09 08:36:08 +02:00 committed by Uros Bizjak
parent c4d91f2eac
commit 58a41b43b5
2 changed files with 18 additions and 1 deletions

View File

@ -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.

View File

@ -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. */