aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.vnet.ibm.com>2017-06-28 13:07:12 +0000
committerMichael Meissner <meissner@gcc.gnu.org>2017-06-28 13:07:12 +0000
commit926c786507a69f31253d6c904cf582b9ba162ded (patch)
treecb7b4d9f83b9ee232667adcb13ea8c5b404016f7
parent62cf73356918189f84ad9fcc83c1ffe8f86d7595 (diff)
downloadgcc-926c786507a69f31253d6c904cf582b9ba162ded.zip
gcc-926c786507a69f31253d6c904cf582b9ba162ded.tar.gz
gcc-926c786507a69f31253d6c904cf582b9ba162ded.tar.bz2
re PR ipa/81238 (Target clone support does not make default clone static.)
[gcc] 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> PR ipa/81238 * multiple_target.c (create_dispatcher_calls): Set the default clone to be static, not public. [gcc/testsuite] 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/81193 * lib/target-supports.exp (check_ppc_cpu_supports_hw_available): New test to make sure __builtin_cpu_supports works on power7 and newer. From-SVN: r249737
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/multiple_target.c1
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/lib/target-supports.exp32
4 files changed, 46 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dc94164..e2d7261 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR ipa/81238
+ * multiple_target.c (create_dispatcher_calls): Set the default
+ clone to be static, not public.
+
2017-06-28 Richard Biener <rguenther@suse.de>
* tree-vect-loop.c (vectorizable_reduction): Move special
diff --git a/gcc/multiple_target.c b/gcc/multiple_target.c
index 38d6892..eddc7d3 100644
--- a/gcc/multiple_target.c
+++ b/gcc/multiple_target.c
@@ -148,6 +148,7 @@ create_dispatcher_calls (struct cgraph_node *node)
}
}
+ TREE_PUBLIC (node->decl) = 0;
symtab->change_decl_assembler_name (node->decl,
clone_function_name (node->decl,
"default"));
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ed6f8a6..d50a9d8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/81193
+ * lib/target-supports.exp
+ (check_ppc_cpu_supports_hw_available): New test to make sure
+ __builtin_cpu_supports works on power7 and newer.
+
2017-06-28 Martin Liska <mliska@suse.cz>
PR ipa/81128
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index f6e2440..1583b27 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -1930,6 +1930,37 @@ proc check_effective_target_powerpc64_no_dm { } {
} {-O2}]
}
+# Return 1 if the target supports the __builtin_cpu_supports built-in,
+# including having a new enough library to support the test. Cache the result.
+# Require at least a power7 to run on.
+
+proc check_ppc_cpu_supports_hw_available { } {
+ return [check_cached_effective_target ppc_cpu_supports_hw_available {
+ # Some simulators are known to not support VSX/power8 instructions.
+ # For now, disable on Darwin
+ if { [istarget powerpc-*-eabi]
+ || [istarget powerpc*-*-eabispe]
+ || [istarget *-*-darwin*]} {
+ expr 0
+ } else {
+ set options "-mvsx"
+ check_runtime_nocache ppc_cpu_supports_hw_available {
+ int main()
+ {
+ #ifdef __MACH__
+ asm volatile ("xxlor vs0,vs0,vs0");
+ #else
+ asm volatile ("xxlor 0,0,0");
+ #endif
+ if (!__builtin_cpu_supports ("vsx"))
+ return 1;
+ return 0;
+ }
+ } $options
+ }
+ }]
+}
+
# Return 1 if the target supports executing power8 vector instructions, 0
# otherwise. Cache the result.
@@ -6955,6 +6986,7 @@ proc is-effective-target { arg } {
"ppc_float128_sw" { set selected [check_ppc_float128_sw_available] }
"ppc_float128_hw" { set selected [check_ppc_float128_hw_available] }
"ppc_recip_hw" { set selected [check_ppc_recip_hw_available] }
+ "ppc_cpu_supports_hw" { set selected [check_ppc_cpu_supports_hw_available] }
"dfp_hw" { set selected [check_dfp_hw_available] }
"htm_hw" { set selected [check_htm_hw_available] }
"named_sections" { set selected [check_named_sections_available] }