Skip to content

Commit 46c4845

Browse files
authored
[libc][cmake] Do not overwrite SKIP_FLAG_EXPANSION_*. (#125762)
So that users can set these manually if needed.
1 parent 718cdeb commit 46c4845

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

libc/cmake/modules/LLVMLibCFlagRules.cmake

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -268,23 +268,29 @@ set(EXPLICIT_SIMD_OPT_FLAG "EXPLICIT_SIMD_OPT")
268268
set(MISC_MATH_BASIC_OPS_OPT_FLAG "MISC_MATH_BASIC_OPS_OPT")
269269

270270
# Skip FMA_OPT flag for targets that don't support fma.
271-
if(NOT((LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "FMA")) OR
272-
LIBC_TARGET_ARCHITECTURE_IS_RISCV64))
273-
set(SKIP_FLAG_EXPANSION_FMA_OPT TRUE)
271+
if(NOT DEFINED SKIP_FLAG_EXPANSION_FMA_OPT)
272+
if(NOT((LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "FMA")) OR
273+
LIBC_TARGET_ARCHITECTURE_IS_RISCV64))
274+
set(SKIP_FLAG_EXPANSION_FMA_OPT TRUE)
275+
endif()
274276
endif()
275277

276278
# Skip EXPLICIT_SIMD_OPT flag for targets that don't support SSE2.
277279
# Note: one may want to revisit it if they want to control other explicit SIMD
278-
if(NOT(LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "SSE2")))
279-
set(SKIP_FLAG_EXPANSION_EXPLICIT_SIMD_OPT TRUE)
280+
if(NOT DEFINED SKIP_FLAG_EXPANSION_EXPLICIT_SIMD_OPT)
281+
if(NOT(LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "SSE2")))
282+
set(SKIP_FLAG_EXPANSION_EXPLICIT_SIMD_OPT TRUE)
283+
endif()
280284
endif()
281285

282286
# Skip ROUND_OPT flag for targets that don't support rounding instructions. On
283287
# x86, these are SSE4.1 instructions, but we already had code to check for
284288
# SSE4.2 support.
285-
if(NOT((LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "SSE4_2")) OR
286-
LIBC_TARGET_ARCHITECTURE_IS_AARCH64 OR LIBC_TARGET_OS_IS_GPU))
287-
set(SKIP_FLAG_EXPANSION_ROUND_OPT TRUE)
289+
if(NOT DEFINED SKIP_FLAG_EXPANSION_ROUND_OPT)
290+
if(NOT((LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "SSE4_2")) OR
291+
LIBC_TARGET_ARCHITECTURE_IS_AARCH64 OR LIBC_TARGET_OS_IS_GPU))
292+
set(SKIP_FLAG_EXPANSION_ROUND_OPT TRUE)
293+
endif()
288294
endif()
289295

290296
# Choose whether time_t is 32- or 64-bit, based on target architecture

0 commit comments

Comments
 (0)