Backport from mainline
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.
From-SVN: r216035
+2014-10-09 Uros Bizjak <ubizjak@gmail.com>
+
+ Backport from mainline
+ 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 Oleg Endo <olegendo@gcc.gnu.org>
Backport from mainline
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. */