Disable accumulate-outgoing-args for Generic and Buldozers

Jakub Jelinek jakub@redhat.com
Fri Jan 24 21:11:00 GMT 2014


On Wed, Jan 01, 2014 at 03:30:04PM +0100, Jan Hubicka wrote:
> 	* config/i38/x86-tune.def: Disable X86_TUNE_ACCUMULATE_OUTGOING_ARGS
> 	for generic and recent AMD chips
> Index: config/i386/x86-tune.def
> ===================================================================
> --- config/i386/x86-tune.def	(revision 206233)
> +++ config/i386/x86-tune.def	(working copy)
> @@ -143,7 +143,7 @@ DEF_TUNE (X86_TUNE_REASSOC_FP_TO_PARALLE
>     regression on mgrid due to IRA limitation leading to unecessary
>     use of the frame pointer in 32bit mode.  */
>  DEF_TUNE (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, "accumulate_outgoing_args",
> -	  m_PPRO | m_P4_NOCONA | m_BONNELL | m_SILVERMONT | m_AMD_MULTIPLE | m_GENERIC)
> +	  m_PPRO | m_P4_NOCONA | m_BONNELL | m_SILVERMONT | m_ATHLON_K8)
>  
>  /* X86_TUNE_PROLOGUE_USING_MOVE: Do not use push/pop in prologues that are
>     considered on critical path.  */

Are you sure this is a good idea even for 32-bit code (i.e. shouldn't we
have separate tunables for 32-bit and 64-bit code)?
I admit I haven't performed trunk bootstraps/regtests for 3 days, am doing
x86_64 and i686 bootstraps/regtests concurrently and it is yes,rtl checking,
but am quite surprised that compared to 3 days ago the bootstrap time of
i686-linux (all,obj-c++,go) went up from about 70 minutes or so to 140 minutes today,
while the x86_64-linux (all,obj-c++,go,ada) remained basically the same
around 2 hours.  This is on quad socket Quad-Core AMD Opteron(tm) Processor 8354,
perhaps it is just extremely undesirable there.

	Jakub



More information about the Gcc-patches mailing list