diff options
author | Michael Meissner <meissner@gcc.gnu.org> | 1997-06-05 20:35:53 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 1997-06-05 20:35:53 +0000 |
commit | 7eb136d6cc3c9624f6cd6cee5aaefbb9c237f553 (patch) | |
tree | a0824028e49cab21fc8f6f163e744e8b2fa0d0d8 /gcc/sched.c | |
parent | cb1009434066d5c1882d4c381cb79409a096ee72 (diff) | |
download | gcc-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.c | 15 |
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, |