aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2017-04-11 18:37:31 +0200
committerMartin Liska <marxin@gcc.gnu.org>2017-04-11 16:37:31 +0000
commit58928b3589e98d5db034d9700b12d15015c36346 (patch)
treec3d082ea4ffd3cc4e7be063a8bcdb834ac0158de /gcc
parent3812f460464251b944255065422bd2755efad659 (diff)
downloadgcc-58928b3589e98d5db034d9700b12d15015c36346.zip
gcc-58928b3589e98d5db034d9700b12d15015c36346.tar.gz
gcc-58928b3589e98d5db034d9700b12d15015c36346.tar.bz2
Do not create a constprop clone for calls_comdat_local nodes (PR ipa/80212).
2017-04-11 Martin Liska <mliska@suse.cz> PR ipa/80212 * ipa-cp.c (determine_versionability): Handle calls_comdat_local flags. From-SVN: r246847
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-cp.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fa7471e..1536626 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 0b40814..fa3d5fd 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -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",