haifa life analysis buglet
Richard Henderson
rth@cygnus.com
Fri Jan 28 13:56:00 GMT 2000
A buglet I introduced when I did the life analysis conversion.
PROP_REG_INFO updates regs_ever_live, which must remain constant
after reload.
r~
* haifa-sched.c (schedule_insns): Don't recompute reg info
after reload.
Index: haifa-sched.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/haifa-sched.c,v
retrieving revision 1.139
diff -c -p -d -r1.139 haifa-sched.c
*** haifa-sched.c 2000/01/17 15:28:04 1.139
--- haifa-sched.c 2000/01/28 21:52:51
*************** schedule_insns (dump_file)
*** 6975,6982 ****
SET_BIT (blocks, rgn_bb_table[RGN_BLOCKS (rgn)]);
RESET_BIT (large_region_blocks, rgn_bb_table[RGN_BLOCKS (rgn)]);
update_life_info (blocks, UPDATE_LIFE_LOCAL,
! PROP_DEATH_NOTES | PROP_REG_INFO);
/* In the single block case, the count of registers that died should
not have changed during the schedule. */
--- 6975,6985 ----
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,
! (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. */
More information about the Gcc-patches
mailing list