* haifa-sched.c (sched_analyze_1): Only clear reg_last_uses on a SET.
authorRichard Henderson <rth@cygnus.com>
Sat, 13 Mar 1999 17:38:17 +0000 (09:38 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Sat, 13 Mar 1999 17:38:17 +0000 (09:38 -0800)
From-SVN: r25752

gcc/ChangeLog
gcc/haifa-sched.c

index 5e2ec7a..3993efa 100644 (file)
@@ -1,3 +1,7 @@
+Sat Mar 13 17:37:18 1999  Richard Henderson  <rth@cygnus.com>
+
+       * haifa-sched.c (sched_analyze_1): Only clear reg_last_uses on a SET.
+
 Sat Mar 13 11:36:16 1999  Richard Earnshaw (rearnsha@arm.com)
 
        * arm.c (arm_split_constant): Don't try to force a constant to
index 8c7e8b5..cc8116b 100644 (file)
@@ -3357,7 +3357,6 @@ sched_analyze_1 (x, insn)
 
              for (u = reg_last_uses[regno + i]; u; u = XEXP (u, 1))
                add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI);
-             reg_last_uses[regno + i] = 0;
 
              for (u = reg_last_sets[regno + i]; u; u = XEXP (u, 1))
                add_dependence (insn, XEXP (u, 0), REG_DEP_OUTPUT);
@@ -3366,6 +3365,7 @@ sched_analyze_1 (x, insn)
                 but sets must be ordered with respect to a pending clobber. */
              if (code == SET)
                {
+                 reg_last_uses[regno + i] = 0;
                  for (u = reg_last_clobbers[regno + i]; u; u = XEXP (u, 1))
                    add_dependence (insn, XEXP (u, 0), REG_DEP_OUTPUT);
                  SET_REGNO_REG_SET (reg_pending_sets, regno + i);
@@ -3386,13 +3386,13 @@ sched_analyze_1 (x, insn)
 
          for (u = reg_last_uses[regno]; u; u = XEXP (u, 1))
            add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI);
-         reg_last_uses[regno] = 0;
 
          for (u = reg_last_sets[regno]; u; u = XEXP (u, 1))
            add_dependence (insn, XEXP (u, 0), REG_DEP_OUTPUT);
 
          if (code == SET)
            {
+             reg_last_uses[regno] = 0;
              for (u = reg_last_clobbers[regno]; u; u = XEXP (u, 1))
                add_dependence (insn, XEXP (u, 0), REG_DEP_OUTPUT);
              SET_REGNO_REG_SET (reg_pending_sets, regno);