Skip to content

Commit

Permalink
Add CMake flag USE_LTO
Browse files Browse the repository at this point in the history
  • Loading branch information
ttuegel committed Nov 27, 2020
1 parent 4bdd0c3 commit 200689d
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 8 deletions.
18 changes: 15 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,28 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-stack-protector")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-stack-protector")
set(CMAKE_C_FLAGS_FASTBUILD "${CMAKE_C_FLAGS_RELEASE}")
set(CMAKE_C_FLAGS_GCSTATS "${CMAKE_C_FLAGS_DEBUG}")
if (USE_LTO)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -flto")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -flto -fno-omit-frame-pointer")
endif()
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -fno-omit-frame-pointer")
if (USE_LTO)
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -flto")
endif()
set(CMAKE_CXX_FLAGS_FASTBUILD "${CMAKE_CXX_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_GCSTATS "${CMAKE_CXX_FLAGS_DEBUG}")
if (USE_LTO)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -flto -fno-omit-frame-pointer")
endif()
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fno-omit-frame-pointer")
if (USE_LTO)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -flto")
endif()
set(CMAKE_EXE_LINKER_FLAGS_FASTBUILD "${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
set(CMAKE_EXE_LINKER_FLAGS_GCSTATS "${CMAKE_EXE_LINKER_FLAGS_DEBUG}")
if (USE_LTO)
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -flto")
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -flto")
endif()

if(APPLE)
set(BACKEND_TARGET_TRIPLE "x86_64-apple-darwin")
Expand All @@ -39,7 +51,7 @@ pkg_check_modules(FFI REQUIRED libffi)
include_directories(AFTER ${FFI_INCLUDE_DIRS})
link_directories(AFTER ${FFI_LIBRARY_DIRS})

if (CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
if (USE_LTO AND (CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
set(LLVM_KOMPILE_LTO "lto")
else()
set(LLVM_KOMPILE_LTO "nolto")
Expand Down
12 changes: 7 additions & 5 deletions nix/llvm-backend.nix
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,13 @@ stdenv.mkDerivation {
buildInputs = [ boost gmp libffi libyaml jemalloc mpfr ];

enableParallelBuilding = false;
cmakeFlags = [
''-DCMAKE_C_COMPILER=${lib.getBin stdenv.cc}/bin/cc''
''-DCMAKE_CXX_COMPILER=${lib.getBin stdenv.cc}/bin/c++''
''-DCMAKE_VERBOSE_MAKEFILE=ON''
];
cmakeFlags =
[
''-DCMAKE_C_COMPILER=${lib.getBin stdenv.cc}/bin/cc''
''-DCMAKE_CXX_COMPILER=${lib.getBin stdenv.cc}/bin/c++''
''-DCMAKE_VERBOSE_MAKEFILE=ON''
''-DUSE_LTO=${if stdenv.isDarwin then "FALSE" else "TRUE"}''
];
NIX_CFLAGS_COMPILE = [ "-Wno-error" ];

doCheck = true;
Expand Down

0 comments on commit 200689d

Please sign in to comment.