aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2014-12-02 00:48:26 +0100
committerSegher Boessenkool <segher@gcc.gnu.org>2014-12-02 00:48:26 +0100
commit14f2df344a8b68da0bd31e6a8201ae293b55d499 (patch)
tree072d32325ff0168b19ec1f32044daa1b9cd6c584
parentdd400a36272b31b5d7003fd66a9fbcf3ec2393d0 (diff)
downloadgcc-14f2df344a8b68da0bd31e6a8201ae293b55d499.zip
gcc-14f2df344a8b68da0bd31e6a8201ae293b55d499.tar.gz
gcc-14f2df344a8b68da0bd31e6a8201ae293b55d499.tar.bz2
re PR rtl-optimization/59278 (combine does not replace matched insn)
PR rtl-optimization/59278 combine (reg_dead_at_p): Consider REG_UNUSED notes. From-SVN: r218250
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/combine.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c42c2e4..c27b1db 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
+ PR rtl-optimization/59278
+ combine (reg_dead_at_p): Consider REG_UNUSED notes.
+
+2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
+
* combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
diff --git a/gcc/combine.c b/gcc/combine.c
index f471920..63c1e4f 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -12990,6 +12990,9 @@ reg_dead_at_p (rtx reg, rtx_insn *insn)
{
if (INSN_P (insn))
{
+ if (find_regno_note (insn, REG_UNUSED, reg_dead_regno))
+ return 1;
+
note_stores (PATTERN (insn), reg_dead_at_p_1, NULL);
if (reg_dead_flag)
return reg_dead_flag == 1 ? 1 : 0;