diff mbox

[IRA] PR78325, R_MIPS_JALR failures

Message ID 20161115225505.GB11815@bubble.grove.modra.org
State New
Headers show

Commit Message

Alan Modra Nov. 15, 2016, 10:55 p.m. UTC
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.

Comments

Bernd Schmidt Nov. 16, 2016, 1:11 p.m. UTC | #1
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 mbox

Patch

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)))