From 80599fd90cc3b730255b71d0fe904cd68b68f2ec Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 14 Dec 1998 14:13:26 +0000 Subject: [PATCH] Delete REG_RETVAL and REG_LIBCALL notes after completeing reload From-SVN: r24310 --- gcc/ChangeLog | 8 ++++++++ gcc/reload1.c | 8 ++++++-- gcc/rtl.texi | 6 ++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9b0f0ddcdc7..bb45298682c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +Mon Dec 14 14:09:34 1998 Nick Clifton + + * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes + after completeing reload. + + * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are + deleted after reload. + Mon Dec 14 01:39:28 1998 Jeffrey A Law (law@cygnus.com) * rtl.h (multiple_sets): Fix prototype. diff --git a/gcc/reload1.c b/gcc/reload1.c index 5f1e7b9ba4f..fb740aa0f88 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); diff --git a/gcc/rtl.texi b/gcc/rtl.texi index 2e8e69a5de1..ef768af40f3 100644 --- a/gcc/rtl.texi +++ b/gcc/rtl.texi @@ -2664,11 +2664,17 @@ delete such sequences whose results are dead. A @code{REG_EQUAL} note will also usually be attached to this insn to provide the expression being computed by the sequence. +These notes will be deleted after reload, since they are no longer +accurate or useful. + @findex REG_LIBCALL @item REG_LIBCALL This is the inverse of @code{REG_RETVAL}: it is placed on the first insn of a multi-insn sequence, and it points to the last one. +These notes are deleted after reload, since they are no longer useful or +accurate. + @findex REG_CC_SETTER @findex REG_CC_USER @item REG_CC_SETTER