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