diff options
Diffstat (limited to 'llvm/cmake/modules/HandleLLVMOptions.cmake')
-rw-r--r-- | llvm/cmake/modules/HandleLLVMOptions.cmake | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index 99b23180bbb..8156e8c83ae 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -656,12 +656,18 @@ append_if(LLVM_BUILD_INSTRUMENTED "-fprofile-instr-generate" CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS) -option(LLVM_ENABLE_LTO "Enable link-time optimization" OFF) -append_if(LLVM_ENABLE_LTO "-flto" - CMAKE_CXX_FLAGS - CMAKE_C_FLAGS - CMAKE_EXE_LINKER_FLAGS - CMAKE_SHARED_LINKER_FLAGS) +option(LLVM_ENABLE_LTO "Build LLVM with LTO. May be specified as Thin or Full to use a particular kind of LTO" OFF) +string(TOUPPER "${LLVM_ENABLE_LTO}" uppercase_LLVM_ENABLE_LTO) +if(uppercase_LLVM_ENABLE_LTO STREQUAL "THIN") + append("-flto=thin" CMAKE_CXX_FLAGS CMAKE_C_FLAGS + CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS) +elseif(uppercase_LLVM_ENABLE_LTO STREQUAL "FULL") + append("-flto=full" CMAKE_CXX_FLAGS CMAKE_C_FLAGS + CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS) +elseif(LLVM_ENABLE_LTO) + append("-flto" CMAKE_CXX_FLAGS CMAKE_C_FLAGS + CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS) +endif() # Plugin support # FIXME: Make this configurable. |