Skip to content

Commit bbca451

Browse files
authored
[CMake] Preserve clang-prebolt
In Clang-BOLT step, preserve pre-BOLT Clang binary (as well as clang++ symlink). Also modify the default set of BOLT flags: - drop ICF (can mess with unwinders), - switch from hfsort+ to cdsort (aliases), - enable CDSplit, - update debug sections. Reviewers: maksfb Reviewed By: maksfb Pull Request: #109351
1 parent eaedbbc commit bbca451

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

clang/CMakeLists.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -899,6 +899,7 @@ if (CLANG_BOLT AND NOT LLVM_BUILD_INSTRUMENTED)
899899
-instrument --instrumentation-file-append-pid
900900
--instrumentation-file=${BOLT_FDATA}
901901
COMMENT "Instrumenting clang binary with BOLT"
902+
USES_TERMINAL
902903
VERBATIM
903904
)
904905
add_custom_target(clang-bolt-training-deps DEPENDS clang-instrumented)
@@ -907,20 +908,19 @@ if (CLANG_BOLT AND NOT LLVM_BUILD_INSTRUMENTED)
907908
endif()
908909

909910
# Optimize original (pre-bolt) Clang using the collected profile
910-
set(CLANG_OPTIMIZED ${CMAKE_CURRENT_BINARY_DIR}/clang.bolt)
911911
add_custom_target(clang-bolt
912-
DEPENDS ${CLANG_OPTIMIZED}
913-
)
914-
add_custom_command(OUTPUT ${CLANG_OPTIMIZED}
915912
DEPENDS clang-bolt-profile
916-
COMMAND llvm-bolt ${CLANG_PATH}
917-
-o ${CLANG_OPTIMIZED}
913+
COMMAND ${CMAKE_COMMAND} -E rename $<TARGET_FILE:clang> ${CLANG_PATH}-prebolt
914+
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CLANG_PATH}-prebolt ${CLANG_PATH}++-prebolt
915+
COMMAND llvm-bolt ${CLANG_PATH}-prebolt
916+
-o $<TARGET_FILE:clang>
918917
-data ${BOLT_FDATA}
919-
-reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions
920-
-split-all-cold -split-eh -dyno-stats -icf=1 -use-gnu-stack
918+
-reorder-blocks=ext-tsp -reorder-functions=cdsort -split-functions
919+
-split-all-cold -split-eh -dyno-stats -use-gnu-stack
920+
-split-strategy=cdsplit -update-debug-sections
921921
${BOLT_NO_LBR}
922-
COMMAND ${CMAKE_COMMAND} -E rename ${CLANG_OPTIMIZED} $<TARGET_FILE:clang>
923922
COMMENT "Optimizing Clang with BOLT"
923+
USES_TERMINAL
924924
VERBATIM
925925
)
926926
endif()

0 commit comments

Comments
 (0)