summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-04-06 14:51:01 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-04-06 14:51:01 +0000
commite104aca94c964f1ffcc718da441c8bdfc18280fc (patch)
tree048aa84b063ca7ca3c8fee1b154ec56fbb5bdb39 /cmake
parent29072c8fab85f090d0482074c1d7bbb4565de8fd (diff)
Don't pass -O3 to the linker in debug builds.
This takes linking clang in a debug build with gold form 19.518925697 to 16.406388685 seconds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234160 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/AddLLVM.cmake6
1 files changed, 4 insertions, 2 deletions
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
index 5d906bbc1be..af51f731cee 100644
--- a/cmake/modules/AddLLVM.cmake
+++ b/cmake/modules/AddLLVM.cmake
@@ -159,8 +159,10 @@ endif()
function(add_link_opts target_name)
# Pass -O3 to the linker. This enabled different optimizations on different
- # linkers.
- if(NOT (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR WIN32))
+ # linkers. Don't do it in debug builds since it slows down the linker
+ # in a context where the optimizations are not important.
+ if(NOT (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR WIN32) AND
+ NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG")
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
LINK_FLAGS " -Wl,-O3")
endif()