Delete REG_RETVAL and REG_LIBCALL notes after completeing reload
authorNick Clifton <nickc@cygnus.com>
Mon, 14 Dec 1998 14:13:26 +0000 (14:13 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Mon, 14 Dec 1998 14:13:26 +0000 (14:13 +0000)
From-SVN: r24310

gcc/ChangeLog
gcc/reload1.c
gcc/rtl.texi

index 9b0f0ddcdc70eb6405bb0f833a88313f4d071276..bb45298682cc33fd41b6aed12fa08a92b071bf00 100644 (file)
@@ -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.
index 5f1e7b9ba4fd3689f54891533e9562917ad65a1a..fb740aa0f882e6c385e18c369b460997ad104a05 100644 (file)
@@ -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);
index 2e8e69a5de107dc794d01a7244f9171795964913..ef768af40f3b4b0fe71babc9fa6f1438025b96b8 100644 (file)
@@ -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