[llvm] Enable logf128 constant folding for hosts with 128bit long double (PR #96287)
Eli Friedman via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 16 16:36:05 PDT 2024
================
@@ -271,6 +260,64 @@ if(C_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW)
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=unguarded-availability-new")
endif()
+function(logf128_test testname definition)
+ unset(LOGF128_TEST_RUN CACHE)
+ unset(LOGF128_TEST_COMPILE CACHE)
+ try_run(
+ LOGF128_TEST_RUN
+ LOGF128_TEST_COMPILE
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}/logf128_${testname}.cpp
+ LINK_LIBRARIES m
+ )
+ if(LOGF128_TEST_RUN)
+ set (LLVM_HAS_LOGF128 true CACHE INTERNAL "")
+ set(${definition} true CACHE INTERNAL "")
+ message(STATUS "LLVM: found logf128 with type ${testname}")
+ add_compile_definitions(${definition})
+ endif()
+endfunction()
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/logf128_long_double.cpp"
+"
+extern \"C\" {
+long double logf128(long double);
----------------
efriedma-quic wrote:
For the initial patch, let's just handle the case where logf128 is actually declared in math.h. The case where glibc actually provides logf128, but doesn't declare it, is a weird edge case, and I'd prefer to handle it in a followup patch.
https://github.com/llvm/llvm-project/pull/96287
More information about the llvm-commits
mailing list