IRA undoing scheduling decisions

Peter Bergner bergner@vnet.ibm.com
Tue Sep 1 20:34:00 GMT 2009


On Wed, 2009-08-26 at 17:12 -0500, Peter Bergner wrote:
> On Wed, 2009-08-26 at 23:30 +0200, Richard Guenther wrote:
> > Hmm.  I suppose if you conditionalize it on flag_schedule_insns it might be
> > an overall win.  Care to SPEC test that change?
> 
> I assume you mean like the change below?  Yeah, I can SPEC test that.
> 
> Peter
> 
> 
> Index: ira.c
> ===================================================================
> --- ira.c	(revision 151111)
> +++ ira.c	(working copy)
> @@ -2510,6 +2510,8 @@ update_equiv_regs (void)
>  		     calls.  */
> 
>  		  if (REG_N_REFS (regno) == 2
> +		      && (!flag_schedule_insns
> +			  || REG_BASIC_BLOCK (regno) < NUM_FIXED_BLOCKS)
>  		      && (rtx_equal_p (x, src)
>  			  || ! equiv_init_varies_p (src))
>  		      && NONJUMP_INSN_P (insn)

Pat ran the patch on SPEC2000 and it was very neutral.  The overall
SPECFP number didn't change and the SPECINT number only improved by
0.2%, which is pretty much in the noise.

I think Vlad's suggestion of moving update_equiv_regs() to its own pass
before sched1 sounds interesting.  If that works, it's probably better
than this patch.

Peter





More information about the Gcc mailing list