From: Alan Modra Date: Wed, 16 Nov 2016 23:10:55 +0000 (+1030) Subject: R_MIPS_JALR failures X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8972f7e90b58d35906601e67c9c5e4b04f1a880e;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f6333d8f730..5e5e55c9640 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-11-17 Alan Modra + + 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 * rtl.h: Declare gt_ggc_mx and gt_pch_nx. diff --git a/gcc/ira.c b/gcc/ira.c index 315b8470b7f..d20ec99fae5 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)))