aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2000-11-22 11:22:58 -0800
committerRichard Henderson <rth@gcc.gnu.org>2000-11-22 11:22:58 -0800
commita165f034f9475245783ff7949b28ee3134bcc21a (patch)
tree2e8de6d245b0c67e4c2cf64e912c841cc8338a4b
parent10ebf5fe407fda5d092f23e50b26272d13bb1106 (diff)
downloadgcc-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/ChangeLog19
-rw-r--r--gcc/haifa-sched.c14
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);
}