Message ID | 20161115225505.GB11815@bubble.grove.modra.org |
---|---|
State | New |
Headers | show |
On 11/15/2016 11:55 PM, Alan Modra wrote: > This is a fix for my PR70890 patch, which incorrectly removed all > REG_EQUIV notes rather than just one regarding a reg that dies. > Bootstrapped and regression tested powerpc64le-linux, > x86_64-linux, and mips-linux. OK to apply? > > PR rtl-optimization/78325 > PR rtl-optimization/70890 > * ira.c (combine_and_move_insns): Only remove REG_EQUIV notes > for dead regno. Ok. Bernd
diff --git a/gcc/ira.c b/gcc/ira.c index 315b847..4ee99d7 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -3747,7 +3747,7 @@ combine_and_move_insns (void) use_insn, when regno was seen as non-local. Now that regno is local to this block, and dies, such an equivalence is invalid. */ - if (find_reg_note (use_insn, REG_EQUIV, NULL_RTX)) + if (find_reg_note (use_insn, REG_EQUIV, regno_reg_rtx[regno])) { rtx set = single_set (use_insn); if (set && REG_P (SET_DEST (set)))