aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/haifa-sched.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c39ab7f..c1e8282 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -4,6 +4,9 @@
* flow.c (mark_regs_live_at_end): Likewise. Force BLKmode
FUNCTION_VALUE result to DECL_RESULT's mode.
+ * haifa-sched.c (schedule_insns): Don't recompute reg info
+ after reload.
+
2000-01-28 Zack Weinberg <zack@wolery.cumb.org>
* configure.in: Make --enable-cpplib the default.
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index b2ff9d6..2c9adf2 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -6975,8 +6975,11 @@ schedule_insns (dump_file)
SET_BIT (blocks, rgn_bb_table[RGN_BLOCKS (rgn)]);
RESET_BIT (large_region_blocks, rgn_bb_table[RGN_BLOCKS (rgn)]);
+ /* Don't update reg info after reload, since that affects
+ regs_ever_live, which should not change after reload. */
update_life_info (blocks, UPDATE_LIFE_LOCAL,
- PROP_DEATH_NOTES | PROP_REG_INFO);
+ (reload_completed ? PROP_DEATH_NOTES
+ : PROP_DEATH_NOTES | PROP_REG_INFO));
/* In the single block case, the count of registers that died should
not have changed during the schedule. */