aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/regcprop.c
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2013-08-05 15:18:29 -0700
committerBen Cheng <bccheng@google.com>2013-08-05 16:03:48 -0700
commit32fce3edda831e36ee484406c39dffbe0230f257 (patch)
tree733b1b5398304b260a4ee3d5d9b17da5038c5486 /gcc-4.8/gcc/regcprop.c
parente85b9ca2afe8edbb9fa99c6ce2cc4e52dce18c21 (diff)
downloadtoolchain_gcc-32fce3edda831e36ee484406c39dffbe0230f257.tar.gz
toolchain_gcc-32fce3edda831e36ee484406c39dffbe0230f257.tar.bz2
toolchain_gcc-32fce3edda831e36ee484406c39dffbe0230f257.zip
[4.8] Merge GCC 4.8.1
Change-Id: Ic8a60b7563f5172440fd40788605163a0cca6e30
Diffstat (limited to 'gcc-4.8/gcc/regcprop.c')
-rw-r--r--gcc-4.8/gcc/regcprop.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc-4.8/gcc/regcprop.c b/gcc-4.8/gcc/regcprop.c
index 97a023fc1..896902f30 100644
--- a/gcc-4.8/gcc/regcprop.c
+++ b/gcc-4.8/gcc/regcprop.c
@@ -1015,6 +1015,13 @@ copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd)
EXECUTE_IF_SET_IN_HARD_REG_SET (regs_invalidated_by_call, 0, regno, hrsi)
if (regno < set_regno || regno >= set_regno + set_nregs)
kill_value_regno (regno, 1, vd);
+
+ /* If SET was seen in CALL_INSN_FUNCTION_USAGE, and SET_SRC
+ of the SET isn't in regs_invalidated_by_call hard reg set,
+ 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);
}
/* Notice stores. */