diff options
author | Alan Modra <amodra@gmail.com> | 2016-11-17 09:40:55 +1030 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2016-11-17 09:40:55 +1030 |
commit | 8972f7e90b58d35906601e67c9c5e4b04f1a880e (patch) | |
tree | 6fe32e5a73e35911abb5f08b00f23409ae6f3118 | |
parent | 10d48c59b0df93ea62b2f5d5850e10a60c43acff (diff) | |
download | gcc-8972f7e90b58d35906601e67c9c5e4b04f1a880e.zip gcc-8972f7e90b58d35906601e67c9c5e4b04f1a880e.tar.gz gcc-8972f7e90b58d35906601e67c9c5e4b04f1a880e.tar.bz2 |
R_MIPS_JALR failures
This is a fix for my PR70890 patch, which incorrectly removed all
REG_EQUIV notes rather than just one regarding a reg that dies.
PR rtl-optimization/78325
PR rtl-optimization/70890
* ira.c (combine_and_move_insns): Only remove REG_EQUIV notes
for dead regno.
From-SVN: r242525
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ira.c | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f6333d8..5e5e55c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-11-17 Alan Modra <amodra@gmail.com> + + PR rtl-optimization/78325 + PR rtl-optimization/70890 + * ira.c (combine_and_move_insns): Only remove REG_EQUIV notes + for dead regno. + 2016-11-16 Jason Merrill <jason@redhat.com> * rtl.h: Declare gt_ggc_mx and gt_pch_nx. @@ -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))) |