[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