aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/reload1.c8
-rw-r--r--gcc/rtl.texi6
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