diff options
author | Nick Clifton <nickc@cygnus.com> | 1998-12-14 14:13:26 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 1998-12-14 14:13:26 +0000 |
commit | 80599fd90cc3b730255b71d0fe904cd68b68f2ec (patch) | |
tree | b687af6807e7c2e99daf07c4d951b8b5349213fb | |
parent | 8c2dfb32b76245329231a8b435aff957340b863d (diff) | |
download | gcc-80599fd90cc3b730255b71d0fe904cd68b68f2ec.zip gcc-80599fd90cc3b730255b71d0fe904cd68b68f2ec.tar.gz gcc-80599fd90cc3b730255b71d0fe904cd68b68f2ec.tar.bz2 |
Delete REG_RETVAL and REG_LIBCALL notes after completeing reload
From-SVN: r24310
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/reload1.c | 8 | ||||
-rw-r--r-- | gcc/rtl.texi | 6 |
3 files changed, 20 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9b0f0dd..bb45298 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +Mon Dec 14 14:09:34 1998 Nick Clifton <nickc@cygnus.com> + + * 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 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); diff --git a/gcc/rtl.texi b/gcc/rtl.texi index 2e8e69a..ef768af 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 |