diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5e2ec7ac1679..3993efabc091 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sat Mar 13 17:37:18 1999 Richard Henderson + + * 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 diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 8c7e8b58047e..cc8116b0ccfd 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -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);