aboutsummaryrefslogtreecommitdiff
path: root/gcc/sched.c
diff options
context:
space:
mode:
authorMichael Meissner <meissner@gcc.gnu.org>1997-06-05 20:35:53 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1997-06-05 20:35:53 +0000
commit7eb136d6cc3c9624f6cd6cee5aaefbb9c237f553 (patch)
treea0824028e49cab21fc8f6f163e744e8b2fa0d0d8 /gcc/sched.c
parentcb1009434066d5c1882d4c381cb79409a096ee72 (diff)
downloadgcc-7eb136d6cc3c9624f6cd6cee5aaefbb9c237f553.zip
gcc-7eb136d6cc3c9624f6cd6cee5aaefbb9c237f553.tar.gz
gcc-7eb136d6cc3c9624f6cd6cee5aaefbb9c237f553.tar.bz2
Fix urgent bug
From-SVN: r14150
Diffstat (limited to 'gcc/sched.c')
-rw-r--r--gcc/sched.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/sched.c b/gcc/sched.c
index 1fa338f..78f9b21 100644
--- a/gcc/sched.c
+++ b/gcc/sched.c
@@ -3857,12 +3857,13 @@ schedule_block (b, file)
attach_deaths_insn (insn);
/* Find registers now made live by that instruction. */
- EXECUTE_IF_SET_IN_REG_SET (bb_live_regs, 0, i,
- {
- sometimes_max
- = new_sometimes_live (regs_sometimes_live,
- i, sometimes_max);
- });
+ EXECUTE_IF_AND_COMPL_IN_REG_SET (bb_live_regs, old_live_regs, 0, i,
+ {
+ sometimes_max
+ = new_sometimes_live (regs_sometimes_live,
+ i, sometimes_max);
+ });
+ IOR_REG_SET (old_live_regs, bb_live_regs);
/* Count lengths of all regs we are worrying about now,
and handle registers no longer live. */
@@ -3874,7 +3875,7 @@ schedule_block (b, file)
p->live_length += 1;
- if (REGNO_REG_SET_P (bb_live_regs, p->regno))
+ if (!REGNO_REG_SET_P (bb_live_regs, p->regno))
{
/* This is the end of one of this register's lifetime
segments. Save the lifetime info collected so far,