This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

haifa life analysis buglet


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.  */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]