Message ID | 2722d25dd8dd4c358b092a67c28042d3e9d93af5.1417135738.git.segher@kernel.crashing.org |
---|---|
State | New |
Headers | show |
On 11/27/14 18:44, Segher Boessenkool wrote: > Currently reg_dead_at_p returns 0 for registers that are set but never > used. This patch repairs that oversight. This fixes PR59278. > > > 2014-11-27 Segher Boessenkool <segher@kernel.crashing.org> > > gcc/ > PR rtl-optimization/59278 > combine (reg_dead_at_p): Consider REG_UNUSED notes. OK with a testcase. ISTM you can just create an SH specific testcase from the code in the BZ. Pre-approved with suitable testcase. jeff
diff --git a/gcc/combine.c b/gcc/combine.c index 83a0a10..91ddff4 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;