aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2016-11-17 09:40:55 +1030
committerAlan Modra <amodra@gcc.gnu.org>2016-11-17 09:40:55 +1030
commit8972f7e90b58d35906601e67c9c5e4b04f1a880e (patch)
tree6fe32e5a73e35911abb5f08b00f23409ae6f3118 /gcc
parent10d48c59b0df93ea62b2f5d5850e10a60c43acff (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ira.c2
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.
diff --git a/gcc/ira.c b/gcc/ira.c
index 315b847..d20ec99 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)))