This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Disable IPA-SRA for always_inline functions
- From: Martin Jambor <mjambor at suse dot cz>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Richard Biener <rguenther at suse dot de>
- Date: Wed, 2 Apr 2014 14:27:42 +0200
- Subject: [PATCH] Disable IPA-SRA for always_inline functions
- Authentication-results: sourceware.org; auth=none
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?
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;
}