This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Disable IPA-SRA for always_inline functions
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, Richard Biener <rguenther at suse dot de>
- Date: Thu, 3 Apr 2014 00:23:27 +0200
- Subject: Re: [PATCH] Disable IPA-SRA for always_inline functions
- Authentication-results: sourceware.org; auth=none
- References: <20140402122742 dot GA19304 at virgil dot suse>
> 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?
Actually are the attributes copied to the clone?
The patch looks OK to me, even at this stage.
Honza
>
> 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;
> }
>