diff options
author | Chris Bieneman <beanz@apple.com> | 2016-08-16 22:16:29 +0000 |
---|---|---|
committer | Chris Bieneman <beanz@apple.com> | 2016-08-16 22:16:29 +0000 |
commit | a1aa4069d9b718197488ca3a075eafa827bc6164 (patch) | |
tree | 1d941494fb37b9333926c6641f72f650fc815afa /clang/cmake | |
parent | 992429843b768381484abfc0bf7b2c3dc1984ae5 (diff) | |
download | bcm5719-llvm-a1aa4069d9b718197488ca3a075eafa827bc6164.tar.gz bcm5719-llvm-a1aa4069d9b718197488ca3a075eafa827bc6164.zip |
[CMake] Workflow improvements to PGO generation
This patch adds a few new convenience options used by the PGO CMake cache to setup options on bootstrap stages. The new options are:
PGO_INSTRUMENT_LTO - Builds the instrumented and final builds with LTO
PGO_BUILD_CONFIGURATION - Accepts a CMake cache script that can be used for complex configuration of the stage2-instrumented and stage2 builds.
The patch also includes a fix for bootstrap dependencies so that the instrumented LTO tools don't get used when building the final stage, and it adds distribution targets to the passthrough.
llvm-svn: 278862
Diffstat (limited to 'clang/cmake')
-rw-r--r-- | clang/cmake/caches/PGO-stage2-instrumented.cmake | 24 | ||||
-rw-r--r-- | clang/cmake/caches/PGO.cmake | 12 |
2 files changed, 30 insertions, 6 deletions
diff --git a/clang/cmake/caches/PGO-stage2-instrumented.cmake b/clang/cmake/caches/PGO-stage2-instrumented.cmake index fe5e83d28a2..37b319c961c 100644 --- a/clang/cmake/caches/PGO-stage2-instrumented.cmake +++ b/clang/cmake/caches/PGO-stage2-instrumented.cmake @@ -1,9 +1,21 @@ -set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "") set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") -set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "") +set(CLANG_BOOTSTRAP_TARGETS + distribution + install-distribution + check-all + check-llvm + check-clang + test-suite CACHE STRING "") -set(CLANG_BOOTSTRAP_TARGETS check-all check-llvm check-clang test-suite CACHE STRING "") +if(PGO_BUILD_CONFIGURATION) + include(${PGO_BUILD_CONFIGURATION}) + set(CLANG_BOOTSTRAP_CMAKE_ARGS + -C ${PGO_BUILD_CONFIGURATION} + CACHE STRING "") +else() + include(${CMAKE_CURRENT_LIST_DIR}/PGO-stage2.cmake) -set(CLANG_BOOTSTRAP_CMAKE_ARGS - -C ${CMAKE_CURRENT_LIST_DIR}/PGO-stage2.cmake - CACHE STRING "") + set(CLANG_BOOTSTRAP_CMAKE_ARGS + -C ${CMAKE_CURRENT_LIST_DIR}/PGO-stage2.cmake + CACHE STRING "") +endif() diff --git a/clang/cmake/caches/PGO.cmake b/clang/cmake/caches/PGO.cmake index dc11173fae3..bca9ba0dea3 100644 --- a/clang/cmake/caches/PGO.cmake +++ b/clang/cmake/caches/PGO.cmake @@ -7,11 +7,23 @@ set(BOOTSTRAP_LLVM_BUILD_INSTRUMENTED ON CACHE BOOL "") set(CLANG_BOOTSTRAP_TARGETS generate-profdata stage2 + stage2-distribution + stage2-install-distribution stage2-check-all stage2-check-llvm stage2-check-clang stage2-test-suite CACHE STRING "") +if(PGO_INSTRUMENT_LTO) + set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") + set(BOOTSTRAP_BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") +endif() + +if(PGO_BUILD_CONFIGURATION) + set(EXTRA_ARGS -DPGO_BUILD_CONFIGURATION=${PGO_BUILD_CONFIGURATION}) +endif() + set(CLANG_BOOTSTRAP_CMAKE_ARGS + ${EXTRA_ARGS} -C ${CMAKE_CURRENT_LIST_DIR}/PGO-stage2-instrumented.cmake CACHE STRING "") |