OSDN Git Service

* reload1.c (delete_output_reload_insn): If a pseudo is set multiple
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 Nov 1998 02:12:55 +0000 (02:12 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 Nov 1998 02:12:55 +0000 (02:12 +0000)
times, then it can not be completely replaced.
Fixes mis-compilation of wave5 in spec92.

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

gcc/ChangeLog
gcc/reload1.c

index 1ff5cc4..3d40451 100644 (file)
@@ -1,3 +1,8 @@
+Mon Nov  9 03:06:24 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
+       times, then it can not be completely replaced.
+
 Mon Nov  9 00:39:02 1998  Richard Henderson  <rth@cygnus.com>
 
        * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
index 0d587ae..ea8bc1f 100644 (file)
@@ -7931,6 +7931,7 @@ delete_output_reload (insn, j, last_reload_reg)
      and forget we had a stack slot for the pseudo.  */
   if (reload_out[j] != reload_in[j]
       && REG_N_DEATHS (REGNO (reg)) == 1
+      && REG_N_SETS (REGNO (reg)) == 1
       && REG_BASIC_BLOCK (REGNO (reg)) >= 0
       && find_regno_note (insn, REG_DEAD, REGNO (reg)))
     {