aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@cygnus.com>1998-12-14 14:13:26 +0000
committerNick Clifton <nickc@gcc.gnu.org>1998-12-14 14:13:26 +0000
commit80599fd90cc3b730255b71d0fe904cd68b68f2ec (patch)
treeb687af6807e7c2e99daf07c4d951b8b5349213fb /gcc/reload1.c
parent8c2dfb32b76245329231a8b435aff957340b863d (diff)
downloadgcc-80599fd90cc3b730255b71d0fe904cd68b68f2ec.zip
gcc-80599fd90cc3b730255b71d0fe904cd68b68f2ec.tar.gz
gcc-80599fd90cc3b730255b71d0fe904cd68b68f2ec.tar.bz2
Delete REG_RETVAL and REG_LIBCALL notes after completeing reload
From-SVN: r24310
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 5f1e7b9..fb740aa 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -1118,7 +1118,9 @@ reload (first, global, dumpfile)
/* Make a pass over all the insns and delete all USEs which we inserted
only to tag a REG_EQUAL note on them. Remove all REG_DEAD and REG_UNUSED
- notes. Delete all CLOBBER insns and simplify (subreg (reg)) operands. */
+ notes. Delete all CLOBBER insns and simplify (subreg (reg)) operands.
+ Also remove all REG_RETVAL and REG_LIBCALL notes since they are no longer
+ useful or accurate. */
for (insn = first; insn; insn = NEXT_INSN (insn))
if (GET_RTX_CLASS (GET_CODE (insn)) == 'i')
@@ -1139,7 +1141,9 @@ reload (first, global, dumpfile)
while (*pnote != 0)
{
if (REG_NOTE_KIND (*pnote) == REG_DEAD
- || REG_NOTE_KIND (*pnote) == REG_UNUSED)
+ || REG_NOTE_KIND (*pnote) == REG_UNUSED
+ || REG_NOTE_KIND (*pnote) == REG_RETVAL
+ || REG_NOTE_KIND (*pnote) == REG_LIBCALL)
*pnote = XEXP (*pnote, 1);
else
pnote = &XEXP (*pnote, 1);