OSDN Git Service

* loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Jul 2002 16:31:40 +0000 (16:31 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Jul 2002 16:31:40 +0000 (16:31 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55590 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/loop.c

index 7e943e4..b0b5810 100644 (file)
@@ -1,3 +1,7 @@
+2002-07-19  Richard Henderson  <rth@redhat.com>
+
+       * loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn.
+
 2002-07-19  Alan Modra  <amodra@bigpond.net.au>
 
        * prefix.c (update_path): Don't zap single `.' path components
index 5966324..c943c6d 100644 (file)
@@ -4875,6 +4875,7 @@ loop_givs_rescan (loop, bl, reg_map)
       else
        {
          rtx original_insn = v->insn;
+         rtx note;
 
          /* Not replaceable; emit an insn to set the original giv reg from
             the reduced giv, same as above.  */
@@ -4882,12 +4883,13 @@ loop_givs_rescan (loop, bl, reg_map)
                                          gen_move_insn (v->dest_reg,
                                                         v->new_reg));
 
-         /* The original insn may have a REG_EQUAL note.  This note is
-            now incorrect and may result in invalid substitutions later.
-            We could just delete the note, but we know that the entire
-            insn is dead, so we might as well save ourselves the bother
-            and remove the whole thing.  */
-         delete_insn (original_insn);
+         /* The original insn may have a REG_EQUAL note.  This note is
+            now incorrect and may result in invalid substitutions later.
+            The original insn is dead, but may be part of a libcall
+            sequence, which doesn't seem worth the bother of handling.  */
+         note = find_reg_note (original_insn, REG_EQUAL, NULL_RTX);
+         if (note)
+           remove_note (original_insn, note);
        }
 
       /* When a loop is reversed, givs which depend on the reversed