OSDN Git Service

Fix ia64 abort while compiling gcc.c-torture/unsorted/logic.c.
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 7 Dec 1999 00:24:38 +0000 (00:24 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 7 Dec 1999 00:24:38 +0000 (00:24 +0000)
* regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
and handle REG_UNUSED note on insn.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30813 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/regmove.c

index 505c799..76b1836 100644 (file)
@@ -1,5 +1,8 @@
 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
 
+       * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
+       and handle REG_UNUSED note on insn.
+
        * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
        inner_mask instead of mask.
 
index b464781..b78ea16 100644 (file)
@@ -528,6 +528,14 @@ optimize_reg_copy_1 (insn, dest, src)
              REG_NOTES (insn) = note;
            }
 
+         /* DEST is also dead if INSN has a REG_UNUSED note for DEST.  */
+         if (! dest_death
+             && (dest_death = find_regno_note (insn, REG_UNUSED, dregno)))
+           {
+             PUT_REG_NOTE_KIND (dest_death, REG_DEAD);
+             remove_note (insn, dest_death);
+           }
+
          /* Put death note of DEST on P if we saw it die.  */
          if (dest_death)
            {