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]

[PATCH] PR ipa/81185, Improve naming of target_clone cloned function names


he June 19th, 2017 change from Martin Liska  <mliska@suse.cz>, made the
target_clones support more usable, in that it it changed the external name from
being the default function to being the ifunc handler.  This means that calls
from other modules will call the appropriate clone based on what machine it is
running on.

The name generated for each of the clone functions for non-default
architectures has the string ".default.<number>" added to it, while it already
has the various names for the different architectures.

I tracked this down to create_dispatcher_calls getting called for each of the
clone functions, since they have the DECL_FUNCTION_VERISIONED bit set.

I have done bootstrap builds on both x86_64 and PowerPC and this patch builds
the current GCC and has no regressions in the test suite.  Can I check it into
the trunk?

2017-06-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR ipa/81185
	* multiple_target.c (create_dispatcher_calls): Only create the
	dispatcher call if the function is the default clone of a
	versioned function.

Index: gcc/multiple_target.c
===================================================================
--- gcc/multiple_target.c	(revision 249569)
+++ gcc/multiple_target.c	(working copy)
@@ -64,7 +64,8 @@ create_dispatcher_calls (struct cgraph_n
 {
   ipa_ref *ref;
 
-  if (!DECL_FUNCTION_VERSIONED (node->decl))
+  if (!DECL_FUNCTION_VERSIONED (node->decl)
+      || !is_function_default_version (node->decl))
     return;
 
   auto_vec<cgraph_edge *> edges_to_redirect;

-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.vnet.ibm.com, phone: +1 (978) 899-4797


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