diff options
author | Richard Henderson <rth@redhat.com> | 2000-11-25 10:54:33 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-11-25 10:54:33 -0800 |
commit | 3e8aa6e31c6a745edcec9395021ef13ca0f0122f (patch) | |
tree | 20c5d44c3811b744f3123b532991006530c7ad14 | |
parent | 59a9e22e8e4f24f7dcf30e90ca39c620b0743170 (diff) | |
download | gcc-3e8aa6e31c6a745edcec9395021ef13ca0f0122f.zip gcc-3e8aa6e31c6a745edcec9395021ef13ca0f0122f.tar.gz gcc-3e8aa6e31c6a745edcec9395021ef13ca0f0122f.tar.bz2 |
haifa-sched.c (sched_analyze_1, [...]): Revert 2000-11-22 change.
* haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
Revert 2000-11-22 change.
From-SVN: r37741
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/haifa-sched.c | 14 |
2 files changed, 16 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 92b48f6..97cd49a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-11-25 Richard Henderson <rth@redhat.com> + + * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze): + Revert 2000-11-22 change. + 2000-11-25 Bernd Schmidt <bernds@redhat.co.uk> * config/i386/i386.h (FIXED_REGS): Make the three flags registers diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 6ad7441..477eec3f 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -3405,6 +3405,11 @@ sched_analyze_1 (deps, x, insn) } else SET_REGNO_REG_SET (reg_pending_clobbers, r); + + /* Function calls clobber all call_used regs. */ + if (global_regs[r] || (code == SET && call_used_regs[r])) + for (u = deps->last_function_call; u; u = XEXP (u, 1)) + add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI); } } else @@ -3556,6 +3561,11 @@ sched_analyze_2 (deps, x, insn) /* ??? This should never happen. */ for (u = deps->reg_last_clobbers[r]; u; u = XEXP (u, 1)) add_dependence (insn, XEXP (u, 0), 0); + + if (call_used_regs[r] || global_regs[r]) + /* Function calls clobber all call_used regs. */ + for (u = deps->last_function_call; u; u = XEXP (u, 1)) + add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI); } } else @@ -3998,11 +4008,9 @@ sched_analyze (deps, head, tail) { for (u = deps->reg_last_uses[i]; u; u = XEXP (u, 1)) add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI); - free_INSN_LIST_list (&deps->reg_last_uses[i]); for (u = deps->reg_last_sets[i]; u; u = XEXP (u, 1)) - add_dependence (insn, XEXP (u, 0), REG_DEP_OUTPUT); - free_INSN_LIST_list (&deps->reg_last_sets[i]); + add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI); SET_REGNO_REG_SET (reg_pending_clobbers, i); } |