X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=CMakeLists.txt;h=d420e64228ad0659fa1e52a6712f55e28a581d6b;hp=cabb661dbd373055f36ff4454aff425b354cf016;hb=9c4cdfd521545cbd887382a9ee592710f87ce8a0;hpb=e7a8fe1967f295129b3118b1bc8a5cc210dcd528 diff --git a/CMakeLists.txt b/CMakeLists.txt index cabb661dbd3..d420e64228a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -543,6 +543,15 @@ else(UNIX) endif(NOT DEFINED CMAKE_INSTALL_RPATH) endif() +if(APPLE AND DARWIN_LTO_LIBRARY) + set(CMAKE_EXE_LINKER_FLAGS + "${CMAKE_EXE_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}") + set(CMAKE_SHARED_LINKER_FLAGS + "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}") + set(CMAKE_MODULE_LINKER_FLAGS + "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}") +endif() + # Work around a broken bfd ld behavior. When linking a binary with a # foo.so library, it will try to find any library that foo.so uses and # check its symbols. This is wasteful (the check was done when foo.so @@ -581,6 +590,17 @@ endif( ${CMAKE_SYSTEM_NAME} MATCHES SunOS ) # use export_executable_symbols(target). set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") +set(LLVM_PROFDATA_FILE "" CACHE FILEPATH + "Profiling data file to use when compiling in order to improve runtime performance.") + +if(LLVM_PROFDATA_FILE AND EXISTS ${LLVM_PROFDATA_FILE}) + if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" ) + add_definitions("-fprofile-instr-use=${LLVM_PROFDATA_FILE}") + else() + message(FATAL_ERROR "LLVM_PROFDATA_FILE can only be specified when compiling with clang") + endif() +endif() + include(AddLLVM) include(TableGen)