aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2000-11-25 10:54:33 -0800
committerRichard Henderson <rth@gcc.gnu.org>2000-11-25 10:54:33 -0800
commit3e8aa6e31c6a745edcec9395021ef13ca0f0122f (patch)
tree20c5d44c3811b744f3123b532991006530c7ad14 /gcc
parent59a9e22e8e4f24f7dcf30e90ca39c620b0743170 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/haifa-sched.c14
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);
}