diff mbox

Disable IPA-SRA for always_inline functions

Message ID 20140414171532.GD8020@virgil.suse
State New
Headers show

Commit Message

Martin Jambor April 14, 2014, 5:15 p.m. UTC
Hi,

On Wed, Apr 02, 2014 at 02:29:55PM +0200, Richard Biener wrote:
> 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, after discussing it with Honza, this is what I am going to
commit after re-testing.

Martin


2014-04-14  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (ipa_sra_preliminary_function_checks): Skip
	always_inline functions.
diff mbox

Patch

Index: src/gcc/tree-sra.c
===================================================================
--- src.orig/gcc/tree-sra.c
+++ src/gcc/tree-sra.c
@@ -4960,6 +4960,14 @@  ipa_sra_preliminary_function_checks (str
   if (TYPE_ATTRIBUTES (TREE_TYPE (node->decl)))
     return false;
 
+  if (DECL_DISREGARD_INLINE_LIMITS (node->decl))
+    {
+      if (dump_file)
+	fprintf (dump_file, "Always inline function will be inlined "
+		 "anyway. \n");
+      return false;
+    }
+
   return true;
 }