(wipe_dead_reg): Make a register mentioned in a REG_INC note die after
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 21 Aug 1995 17:15:57 +0000 (13:15 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 21 Aug 1995 17:15:57 +0000 (13:15 -0400)
the instruction.

From-SVN: r10264

gcc/local-alloc.c

index 3ab26aeff9e821386a19f2526e6938a1433fe9f3..647b2d53304b092d6b692c62227544e601b410bd 100644 (file)
@@ -1,5 +1,5 @@
 /* Allocate registers within a basic block, for GNU compiler.
-   Copyright (C) 1987, 1988, 1991, 1993, 1994 Free Software Foundation, Inc.
+   Copyright (C) 1987, 88, 91, 93, 94, 1995 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -2035,6 +2035,12 @@ wipe_dead_reg (reg, output_p)
        }
     }
 
+  /* If this register is used in an auto-increment address, then extend its
+     life to after this insn, so that it won't get allocated together with
+     the result of this insn.  */
+  if (! output_p && find_regno_note (this_insn, REG_INC, regno))
+    output_p = 1;
+
   if (regno < FIRST_PSEUDO_REGISTER)
     {
       mark_life (regno, GET_MODE (reg), 0);