[Bug go/63560] __go_set_defer_retaddr shouldn't be split by IPA split

hubicka at ucw dot cz gcc-bugzilla@gcc.gnu.org
Thu Oct 16 14:32:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63560

--- Comment #1 from Jan Hubicka <hubicka at ucw dot cz> ---
Does something like this work?

Honza

Index: ipa-split.c
===================================================================
--- ipa-split.c    (revision 216318)
+++ ipa-split.c    (working copy)
@@ -1613,6 +1613,19 @@ execute_split_functions (void)
       return 0;
     }

+  if (lookup_attribute ("noinline", DECL_ATTRIBUTES (current_function_decl)))
+    {
+      if (dump_file)
+    fprintf (dump_file, "Not splitting: function is noinline.\n");
+      return 0;
+    }
+  if (lookup_attribute ("section", DECL_ATTRIBUTES (current_function_decl)))
+    {
+      if (dump_file)
+    fprintf (dump_file, "Not splitting: function is in user defined
section.\n");
+      return 0;
+    }
+
   /* We enforce splitting after loop headers when profile info is not
      available.  */
   if (profile_status_for_fn (cfun) != PROFILE_READ)



More information about the Gcc-bugs mailing list