From d0f511e825aeb076e19249df2969c3a23b545195 Mon Sep 17 00:00:00 2001 From: DarthArgus Date: Thu, 15 Dec 2016 21:27:41 +0000 Subject: [PATCH] cflag cleaning up..auditing...trying to find gcc's flag that doesn't play nice in O3/Ofast, as Ofast is fine with clang --- CMakeLists.txt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e5d2df2..9452ed34 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,26 +70,28 @@ elseif(UNIX) find_package(Curses REQUIRED) # linker flags - set(CMAKE_SHARED_LINKER_FLAGS "--sort-common,--as-needed,-z,relro") + set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-O1,--sort-common,--as-needed,-z,relro -s") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}") # don't put anything too crazy in debug...and any common flags go into CMAKE_CXX_FLAGS set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -DDEBUG_LEVEL=2 -DPRODUCTION=0 -Og -g3") + # funroll loops and everything else potentially crazy for performance here + set(CMAKE_CXX_FLAGS_RELEASE "-DDEBUG_LEVEL=0 -DPRODUCTION=1") + # Ofast doesn't work with gcc builds if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - set(CMAKE_CXX_FLAGS_RELEASE "-Ofast") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast") elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - set(CMAKE_CXX_FLAGS_RELEASE "-O2") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -fno-signed-zeros \ + -freciprocal-math -ffp-contract=fast") elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") - set(CMAKE_CXX_FLAGS_RELEASE "-Ofast") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") endif() - # funroll loops and everything else potentially crazy for performance here - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DDEBUG_LEVEL=0 -DPRODUCTION=1 -funroll-loops -ftree-vectorize") - # our "always on" flags set(CMAKE_CXX_FLAGS "-m32 -pipe -march=native -mtune=native \ + -msse -msse2 -msse3 -mmmx -m3dnow \ -Wformat -Wno-overloaded-virtual -Wno-missing-braces -Wno-format \ -Wno-write-strings -Wno-unknown-pragmas \ -Wno-uninitialized -Wno-reorder")