diff options
author | Chris Bieneman <beanz@apple.com> | 2015-03-10 20:48:02 +0000 |
---|---|---|
committer | Chris Bieneman <beanz@apple.com> | 2015-03-10 20:48:02 +0000 |
commit | da91ceb8606a38624773e5a629aa9d4124e6866f (patch) | |
tree | 58416f242680d9b67dab8c060518f8aada6e9240 | |
parent | 4b7533a1ddc9a2ca6f2477b80cc5cff28ec8d229 (diff) | |
download | bcm5719-llvm-da91ceb8606a38624773e5a629aa9d4124e6866f.tar.gz bcm5719-llvm-da91ceb8606a38624773e5a629aa9d4124e6866f.zip |
Add new LLVM_OPTIMIZED_TABLEGEN build setting which configures, builds and uses a release tablegen build when LLVM is configured with assertions enabled.
Summary: This change leverages the cross-compiling functionality in the build system to build a release tablegen executable for use during the build.
Reviewers: resistor, rnk
Reviewed By: rnk
Subscribers: rnk, joker.eph, llvm-commits
Differential Revision: http://reviews.llvm.org/D7349
llvm-svn: 231842
-rw-r--r-- | llvm/CMakeLists.txt | 9 | ||||
-rw-r--r-- | llvm/cmake/modules/TableGen.cmake | 2 |
2 files changed, 8 insertions, 3 deletions
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index fe177259f0a..cfbf9562f03 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -350,6 +350,11 @@ if(LLVM_DISABLE_LLVM_DYLIB_ATEXIT) set(DISABLE_LLVM_DYLIB_ATEXIT 1) endif() +option(LLVM_OPTIMIZED_TABLEGEN "Force TableGen to be built with optimization" OFF) +if(CMAKE_CROSSCOMPILING OR (LLVM_OPTIMIZED_TABLEGEN AND LLVM_ENABLE_ASSERTIONS)) + set(LLVM_USE_HOST_TOOLS ON) +endif() + # All options referred to from HandleLLVMOptions have to be specified # BEFORE this include, otherwise options will not be correctly set on # first cmake run @@ -536,9 +541,9 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) include_directories( ${LLVM_INCLUDE_DIR} ${LLVM_MAIN_INCLUDE_DIR}) # when crosscompiling import the executable targets from a file -if(CMAKE_CROSSCOMPILING) +if(LLVM_USE_HOST_TOOLS) include(CrossCompile) -endif(CMAKE_CROSSCOMPILING) +endif(LLVM_USE_HOST_TOOLS) if( ${CMAKE_SYSTEM_NAME} MATCHES FreeBSD ) # On FreeBSD, /usr/local/* is not used by default. In order to build LLVM diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake index 67031a5d706..0a3e2b2e8c1 100644 --- a/llvm/cmake/modules/TableGen.cmake +++ b/llvm/cmake/modules/TableGen.cmake @@ -91,7 +91,7 @@ macro(add_tablegen target project) # Effective tblgen executable to be used: set(${project}_TABLEGEN_EXE ${${project}_TABLEGEN} PARENT_SCOPE) - if(CMAKE_CROSSCOMPILING) + if(LLVM_USE_HOST_TOOLS) if( ${${project}_TABLEGEN} STREQUAL "${target}" ) set(${project}_TABLEGEN_EXE "${LLVM_NATIVE_BUILD}/bin/${target}") set(${project}_TABLEGEN_EXE ${${project}_TABLEGEN_EXE} PARENT_SCOPE) |