]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Fix fast math usage
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 20 Dec 2019 14:07:54 +0000 (14:07 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 20 Dec 2019 14:07:54 +0000 (14:07 +0000)
cmake/Toolset.cmake

index f96fc39f9a3eedcaa42e9a8d21e67f3cc3ab5c97..dc4b17bf5b445aa2312719ba839d8051ecd0428d 100644 (file)
@@ -1,15 +1,21 @@
 option (ENABLE_FAST_MATH     "Build rspamd with fast math compiler flag [default: ON]" ON)
 
-SET (COMPILER_FAST_MATH "")
-if (ENABLE_FAST_MATH MATCHES "ON")
-    SET (COMPILER_FAST_MATH "-ffast-math")
-endif ()
-
 if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
     SET (COMPILER_GCC 1)
 elseif(CMAKE_C_COMPILER_ID MATCHES "Clang|AppleClang")
     SET (COMPILER_CLANG 1)
 endif()
+
+SET (COMPILER_FAST_MATH "")
+if (ENABLE_FAST_MATH MATCHES "ON")
+    # We need to keep nans and infinities, so cannot keep all fast math there
+    IF (COMPILER_CLANG)
+        SET (COMPILER_FAST_MATH "-fassociative-math -freciprocal-math -fno-signed-zeros -ffp-contract=fast")
+    ELSE()
+        SET (COMPILER_FAST_MATH "-funsafe-math-optimizations -fno-math-errno")
+    ENDIF ()
+endif ()
+
 if (CMAKE_GENERATOR STREQUAL "Ninja")
     # Turn on colored output. https://github.com/ninja-build/ninja/wiki/FAQ
     set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=always")