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]
Other format: [Raw text]

Re: [PATCH] Disable IPA-SRA for always_inline functions


On Wed, 2 Apr 2014, Martin Jambor wrote:

> Hi,
> 
> when dealing with a PR yesterday I have noticed that IPA-SRA was
> modifying an always_inline function which is useless work since the
> function must then be inlined anyway.  Thus I'd like to propose the
> following simple change disabling it in such cases.
> 
> Included in a bootstrap and testing on x86_64-linux.  OK for trunk now
> or in the next stsge1?

Ok for next stage1, but please short-cut the lookup_attribute
with a DECL_DISREGARD_INLINE_LIMITS () check.  Maybe even
abstract this away into a predicate on the cgraph node.

Thanks,
Richard.

> Thanks,
> 
> Martin
> 
> 
> 2014-04-01  Martin Jambor  <mjambor@suse.cz>
> 
> 	* tree-sra.c (ipa_sra_preliminary_function_checks): Skip
> 	always_inline functions.
> 
> Index: src/gcc/tree-sra.c
> ===================================================================
> --- src.orig/gcc/tree-sra.c
> +++ src/gcc/tree-sra.c
> @@ -4960,6 +4960,15 @@ ipa_sra_preliminary_function_checks (str
>    if (TYPE_ATTRIBUTES (TREE_TYPE (node->decl)))
>      return false;
>  
> +  if (lookup_attribute ("always_inline",
> +			DECL_ATTRIBUTES (node->decl)) != NULL)
> +    {
> +      if (dump_file)
> +	fprintf (dump_file, "Allways inline function will be inlined "
> +		 "anyway. \n");
> +      return false;
> +    }
> +
>    return true;
>  }
>  
> 
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imend"orffer


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