From 1a573266c135d8183cf0c52f1dc0e4ee4f3bf2b1 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 2 Feb 2020 13:50:39 +0100 Subject: [PATCH] Enable tree vectorization with GCC in Release and RelWithDebInfo build types --- CMakeLists.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a0a681bf..27d10fedf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -227,6 +227,16 @@ endif() gnsssdr_check_build_type(${CMAKE_BUILD_TYPE}) set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "") +# Enable optimization options in GCC for Release and RelWithDebInfo build types +if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + # flag -O3 enables tree vectorization + # See https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html + set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG") + set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG") +endif() + # allow 'large' files in 32 bit builds if(UNIX) add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES)