diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2000-11-22 11:22:58 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-11-22 11:22:58 -0800 |
commit | a165f034f9475245783ff7949b28ee3134bcc21a (patch) | |
tree | 2e8de6d245b0c67e4c2cf64e912c841cc8338a4b | |
parent | 10ebf5fe407fda5d092f23e50b26272d13bb1106 (diff) | |
download | gcc-a165f034f9475245783ff7949b28ee3134bcc21a.zip gcc-a165f034f9475245783ff7949b28ee3134bcc21a.tar.gz gcc-a165f034f9475245783ff7949b28ee3134bcc21a.tar.bz2 |
haifa-sched.c (sched_analyze_1): Don't special-case calls for clobbering registers.
* haifa-sched.c (sched_analyze_1): Don't special-case calls
for clobbering registers.
(sched_analyze_2): Likewise.
(sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
From-SVN: r37668
-rw-r--r-- | gcc/ChangeLog | 19 | ||||
-rw-r--r-- | gcc/haifa-sched.c | 14 |
2 files changed, 16 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d6187a5..c8bde8c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,10 +1,17 @@ +2000-11-22 Richard Henderson <rth@redhat.com> + + * haifa-sched.c (sched_analyze_1): Don't special-case calls + for clobbering registers. + (sched_analyze_2): Likewise. + (sched_analyze): Zap reg_last_uses and reg_last_sets after calls. + 2000-11-22 Chris Demetriou <cgd@sibyte.com> -2000-11-22 Neil Booth <neilb@earthling.net> + Neil Booth <neilb@earthling.net> - * gcc.c (validate_switches): Validate multiple switches named - in '|' (or) expressions in specs. - (handle_braces): If more than 1 alternative in a '|' spec - matches, call do_spec1 just once. + * gcc.c (validate_switches): Validate multiple switches named + in '|' (or) expressions in specs. + (handle_braces): If more than 1 alternative in a '|' spec + matches, call do_spec1 just once. 2000-11-22 Michael Meissner <meissner@redhat.com> @@ -107,7 +114,7 @@ Wed Nov 22 00:52:55 2000 J"orn Rennecke <amylaar@redhat.com> 2000-11-21 Neil Booth <neilb@earthling.net> - * do_includes: Revert to using cpp_read_file. + * do_includes: Revert to using cpp_read_file. 2000-11-21 Bernd Schmidt <bernds@redhat.co.uk> diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 01f08b5..cf8fe2b 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -3384,11 +3384,6 @@ 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 @@ -3540,11 +3535,6 @@ 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 @@ -3987,9 +3977,11 @@ 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_ANTI); + add_dependence (insn, XEXP (u, 0), REG_DEP_OUTPUT); + free_INSN_LIST_list (&deps->reg_last_sets[i]); SET_REGNO_REG_SET (reg_pending_clobbers, i); } |