reload1.c (eliminate_regs): Don't keep REG_DEAD notes around for things that were eliminated.

* reload1.c (eliminate_regs): Don't keep REG_DEAD notes around for
	things that were eliminated.

From-SVN: r25823
This commit is contained in:
J"orn Rennecke 1999-03-17 13:31:30 +00:00 committed by Joern Rennecke
parent f541e78dd0
commit 13bb79d45e
2 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,8 @@
Wed Mar 17 21:29:12 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* reload1.c (eliminate_regs): Don't keep REG_DEAD notes around for
things that were eliminated.
Wed Mar 17 12:16:26 1999 Richard Henderson <rth@cygnus.com>
* function.c (fixup_var_refs_1): First try moving the expression

View File

@ -2914,7 +2914,17 @@ eliminate_regs (x, mem_mode, insn)
{
new = eliminate_regs (XEXP (x, 0), mem_mode, insn);
if (new != XEXP (x, 0))
x = gen_rtx_EXPR_LIST (REG_NOTE_KIND (x), new, XEXP (x, 1));
{
/* If this is a REG_DEAD note, it is not valid anymore.
Using the eliminated version could result in creating a
REG_DEAD note for the stack or frame pointer. */
if (GET_MODE (x) == REG_DEAD)
return (XEXP (x, 1)
? eliminate_regs (XEXP (x, 1), mem_mode, insn)
: NULL_RTX);
x = gen_rtx_EXPR_LIST (REG_NOTE_KIND (x), new, XEXP (x, 1));
}
}
/* ... fall through ... */