[libc-commits] [libc] [libc] change PREFER_GENERIC to EXPLICIT_SIMD_OPT (PR #79486)
via libc-commits
libc-commits at lists.llvm.org
Thu Jan 25 10:55:43 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: Schrodinger ZHU Yifan (SchrodingerZhu)
<details>
<summary>Changes</summary>
fixes #<!-- -->79474.
---
Full diff: https://github.com/llvm/llvm-project/pull/79486.diff
4 Files Affected:
- (modified) libc/cmake/modules/LLVMLibCFlagRules.cmake (+1-1)
- (modified) libc/cmake/modules/LLVMLibCObjectRules.cmake (+9-9)
- (modified) libc/src/__support/HashTable/CMakeLists.txt (+1-1)
- (modified) libc/src/__support/HashTable/bitmask.h (+1-1)
``````````diff
diff --git a/libc/cmake/modules/LLVMLibCFlagRules.cmake b/libc/cmake/modules/LLVMLibCFlagRules.cmake
index 7d663f0682e1f25..3e0776e04596c97 100644
--- a/libc/cmake/modules/LLVMLibCFlagRules.cmake
+++ b/libc/cmake/modules/LLVMLibCFlagRules.cmake
@@ -134,7 +134,7 @@ set(FMA_OPT_FLAG "FMA_OPT")
set(ROUND_OPT_FLAG "ROUND_OPT")
# This flag will define macros that gated away vectorization code such that
# one can always test the fallback generic code path.
-set(PREFER_GENERIC_FLAG "PREFER_GENERIC")
+set(EXPLICIT_SIMD_OPT_FLAG "EXPLICIT_SIMD_OPT")
# Skip FMA_OPT flag for targets that don't support fma.
if(NOT((LIBC_TARGET_ARCHITECTURE_IS_X86 AND (LIBC_CPU_FEATURES MATCHES "FMA")) OR
diff --git a/libc/cmake/modules/LLVMLibCObjectRules.cmake b/libc/cmake/modules/LLVMLibCObjectRules.cmake
index 667d7548f783163..c5c9f7c09a144bb 100644
--- a/libc/cmake/modules/LLVMLibCObjectRules.cmake
+++ b/libc/cmake/modules/LLVMLibCObjectRules.cmake
@@ -18,12 +18,12 @@ function(_get_common_compile_options output_var flags)
set(ADD_SSE4_2_FLAG TRUE)
endif()
- list(FIND flags ${PREFER_GENERIC_FLAG} prefer_generic)
- if(${prefer_generic} LESS 0)
- list(FIND flags "${PREFER_GENERIC_FLAG}__ONLY" prefer_generic)
+ list(FIND flags ${EXPLICIT_SIMD_OPT_FLAG} explicit_simd)
+ if(${explicit_simd} LESS 0)
+ list(FIND flags "${EXPLICIT_SIMD_OPT_FLAG}__ONLY" explicit_simd)
endif()
- if(${prefer_generic} GREATER -1)
- set(ADD_PREFER_GENERIC_FLAG TRUE)
+ if(${explicit_simd} GREATER -1)
+ set(ADD_EXPLICIT_SIMD_OPT_FLAG TRUE)
endif()
set(compile_options ${LIBC_COMPILE_OPTIONS_DEFAULT})
@@ -73,8 +73,8 @@ function(_get_common_compile_options output_var flags)
if(ADD_SSE4_2_FLAG)
list(APPEND compile_options "-msse4.2")
endif()
- if(ADD_PREFER_GENERIC_FLAG)
- list(APPEND compile_options "-D__LIBC_PREFER_GENERIC")
+ if(ADD_EXPLICIT_SIMD_OPT_FLAG)
+ list(APPEND compile_options "-D__LIBC_EXPLICIT_SIMD_OPT")
endif()
elseif(MSVC)
list(APPEND compile_options "/EHs-c-")
@@ -82,8 +82,8 @@ function(_get_common_compile_options output_var flags)
if(ADD_FMA_FLAG)
list(APPEND compile_options "/arch:AVX2")
endif()
- if(ADD_PREFER_GENERIC_FLAG)
- list(APPEND compile_options "/D__LIBC_PREFER_GENERIC")
+ if(ADD_EXPLICIT_SIMD_OPT_FLAG)
+ list(APPEND compile_options "/D__LIBC_EXPLICIT_SIMD_OPT")
endif()
endif()
if (LIBC_TARGET_ARCHITECTURE_IS_GPU)
diff --git a/libc/src/__support/HashTable/CMakeLists.txt b/libc/src/__support/HashTable/CMakeLists.txt
index dce37fdb5143ffa..6fa90c780c90d32 100644
--- a/libc/src/__support/HashTable/CMakeLists.txt
+++ b/libc/src/__support/HashTable/CMakeLists.txt
@@ -3,7 +3,7 @@ add_header_library(
HDRS
bitmask.h
FLAGS
- PREFER_GENERIC
+ EXPLICIT_SIMD_OPT
DEPENDS
libc.src.__support.common
libc.src.__support.CPP.bit
diff --git a/libc/src/__support/HashTable/bitmask.h b/libc/src/__support/HashTable/bitmask.h
index f97a7bccde3276e..afdf7c2c43bfba3 100644
--- a/libc/src/__support/HashTable/bitmask.h
+++ b/libc/src/__support/HashTable/bitmask.h
@@ -83,7 +83,7 @@ template <class BitMask> struct IteratableBitMaskAdaptor : public BitMask {
} // namespace internal
} // namespace LIBC_NAMESPACE
-#if defined(LIBC_TARGET_CPU_HAS_SSE2) && !defined(__LIBC_PREFER_GENERIC)
+#if defined(LIBC_TARGET_CPU_HAS_SSE2) && defined(__LIBC_EXPLICIT_SIMD_OPT)
#include "sse2/bitmask_impl.inc"
#else
#include "generic/bitmask_impl.inc"
``````````
</details>
https://github.com/llvm/llvm-project/pull/79486
More information about the libc-commits
mailing list