condexec merge part 13

Richard Henderson rth@cygnus.com
Thu Apr 27 00:43:00 GMT 2000


We had (or perhaps will soon cease to have) a hack in mark_used_reg
to keep from adding REG_DEAD notes to the stack pointer.  Better is
to just make sure the thing is considered live.  That way the death
notes match the other life information.


r~

        * flow.c (calculate_global_regs_live): Force stack pointer
        live at end.

Index: flow.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/flow.c,v
retrieving revision 1.266
retrieving revision 1.267
diff -c -p -d -r1.266 -r1.267
*** flow.c	2000/04/27 07:38:40	1.266
--- flow.c	2000/04/27 07:39:51	1.267
*************** calculate_global_regs_live (blocks_in, b
*** 3050,3055 ****
--- 3050,3059 ----
  	  IOR_REG_SET (new_live_at_end, sb->global_live_at_start);
  	}
  
+       /* Force the stack pointer to be live -- which might not already be 
+ 	 the case for blocks within infinite loops.  */
+       SET_REGNO_REG_SET (new_live_at_end, STACK_POINTER_REGNUM);
+ 
        /* Regs used in phi nodes are not included in
  	 global_live_at_start, since they are live only along a
  	 particular edge.  Set those regs that are live because of a


More information about the Gcc-patches mailing list