Do not create a constprop clone for calls_comdat_local nodes (PR ipa/80212).
authorMartin Liska <mliska@suse.cz>
Tue, 11 Apr 2017 16:37:31 +0000 (18:37 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Tue, 11 Apr 2017 16:37:31 +0000 (16:37 +0000)
2017-04-11  Martin Liska  <mliska@suse.cz>

PR ipa/80212
* ipa-cp.c (determine_versionability): Handle calls_comdat_local
flags.

From-SVN: r246847

gcc/ChangeLog
gcc/ipa-cp.c

index fa7471e707ad814888e560ad4a1341c48b747427..1536626851af95065fd6a05d520a822836cdd366 100644 (file)
@@ -1,3 +1,9 @@
+2017-04-11  Martin Liska  <mliska@suse.cz>
+
+       PR ipa/80212
+       * ipa-cp.c (determine_versionability): Handle calls_comdat_local
+       flags.
+
 2017-04-11  Martin Sebor  <msebor@redhat.com>
 
        PR middle-end/80364
index 0b408149a88dd728329f23435fa03923fc0eaf2c..fa3d5fd7548496c525a0241e9a8af2c1bc43ef43 100644 (file)
@@ -614,6 +614,12 @@ determine_versionability (struct cgraph_node *node,
      decloned constructors, inlining is always better anyway.  */
   else if (node->comdat_local_p ())
     reason = "comdat-local function";
+  else if (node->calls_comdat_local)
+    {
+      /* TODO: call is versionable if we make sure that all
+        callers are inside of a comdat group.  */
+      reason = "calls comdat-local function";
+    }
 
   if (reason && dump_file && !node->alias && !node->thunk.thunk_p)
     fprintf (dump_file, "Function %s/%i is not versionable, reason: %s.\n",