[libc-commits] [libc] c76a1d0 - [libc][NFC] Make cpu feature check tolerate non-x86 architectures.
Siva Chandra Reddy via libc-commits
libc-commits at lists.llvm.org
Wed Jun 10 11:11:35 PDT 2020
Author: Siva Chandra
Date: 2020-06-10T11:11:04-07:00
New Revision: c76a1d0fc0c148c8642397a6ec8a589256eb1dc2
URL: https://github.com/llvm/llvm-project/commit/c76a1d0fc0c148c8642397a6ec8a589256eb1dc2
DIFF: https://github.com/llvm/llvm-project/commit/c76a1d0fc0c148c8642397a6ec8a589256eb1dc2.diff
LOG: [libc][NFC] Make cpu feature check tolerate non-x86 architectures.
The feature check should probably be enhanced for non-x86 architectures,
but this change shields them from x86 specific pieces until then.
This patch has been split out from https://reviews.llvm.org/D81533.
Added:
Modified:
libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
Removed:
################################################################################
diff --git a/libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake b/libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
index 0bb4af869487..86c3822c864c 100644
--- a/libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
+++ b/libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
@@ -4,10 +4,9 @@
if(${LIBC_TARGET_MACHINE} MATCHES "x86|x86_64")
set(ALL_CPU_FEATURES SSE SSE2 AVX AVX2 AVX512F)
+ list(SORT ALL_CPU_FEATURES)
endif()
-list(SORT ALL_CPU_FEATURES)
-
# Function to check whether the host supports the provided set of features.
# Usage:
# host_supports(
@@ -126,4 +125,11 @@ function(_check_defined_cpu_feature output_var)
endfunction()
# Populates the HOST_CPU_FEATURES list.
-_check_defined_cpu_feature(HOST_CPU_FEATURES MARCH native)
+# Use -march=native only when the compiler supports it.
+include(CheckCXXCompilerFlag)
+CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
+if(COMPILER_SUPPORTS_MARCH_NATIVE)
+ _check_defined_cpu_feature(HOST_CPU_FEATURES MARCH native)
+else()
+ _check_defined_cpu_feature(HOST_CPU_FEATURES)
+endif()
More information about the libc-commits
mailing list