diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index c6496167d3828..94ce5968beb75 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -899,6 +899,7 @@ if (CLANG_BOLT AND NOT LLVM_BUILD_INSTRUMENTED) -instrument --instrumentation-file-append-pid --instrumentation-file=${BOLT_FDATA} COMMENT "Instrumenting clang binary with BOLT" + USES_TERMINAL VERBATIM ) add_custom_target(clang-bolt-training-deps DEPENDS clang-instrumented) @@ -907,20 +908,19 @@ if (CLANG_BOLT AND NOT LLVM_BUILD_INSTRUMENTED) endif() # Optimize original (pre-bolt) Clang using the collected profile - set(CLANG_OPTIMIZED ${CMAKE_CURRENT_BINARY_DIR}/clang.bolt) add_custom_target(clang-bolt - DEPENDS ${CLANG_OPTIMIZED} - ) - add_custom_command(OUTPUT ${CLANG_OPTIMIZED} DEPENDS clang-bolt-profile - COMMAND llvm-bolt ${CLANG_PATH} - -o ${CLANG_OPTIMIZED} + COMMAND ${CMAKE_COMMAND} -E rename $ ${CLANG_PATH}-prebolt + COMMAND ${CMAKE_COMMAND} -E create_symlink ${CLANG_PATH}-prebolt ${CLANG_PATH}++-prebolt + COMMAND llvm-bolt ${CLANG_PATH}-prebolt + -o $ -data ${BOLT_FDATA} - -reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions - -split-all-cold -split-eh -dyno-stats -icf=1 -use-gnu-stack + -reorder-blocks=ext-tsp -reorder-functions=cdsort -split-functions + -split-all-cold -split-eh -dyno-stats -use-gnu-stack + -split-strategy=cdsplit -update-debug-sections ${BOLT_NO_LBR} - COMMAND ${CMAKE_COMMAND} -E rename ${CLANG_OPTIMIZED} $ COMMENT "Optimizing Clang with BOLT" + USES_TERMINAL VERBATIM ) endif()