diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -856,8 +856,6 @@ set(CLANGXX_PATH ${CLANG_PATH}++) set(CLANG_INSTRUMENTED ${CLANG_PATH}-bolt.inst) set(CLANGXX_INSTRUMENTED ${CLANGXX_PATH}-bolt.inst) - set(CLANG_OPTIMIZED ${CLANG_PATH}-bolt) - set(CLANGXX_OPTIMIZED ${CLANGXX_PATH}-bolt) # Instrument clang with BOLT add_custom_target(clang-instrumented @@ -935,6 +933,7 @@ ) # 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} ) @@ -945,22 +944,10 @@ -data ${CMAKE_CURRENT_BINARY_DIR}/prof.fdata -reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions -split-all-cold -split-eh -dyno-stats -icf=1 -use-gnu-stack + COMMAND ${CMAKE_COMMAND} -E rename ${CLANG_OPTIMIZED} $ COMMENT "Optimizing Clang with BOLT" VERBATIM ) - - # Make a symlink from clang-bolt to clang++-bolt - add_custom_target(clang++-bolt - DEPENDS ${CLANGXX_OPTIMIZED} - ) - add_custom_command(OUTPUT ${CLANGXX_OPTIMIZED} - DEPENDS clang-bolt - COMMAND ${CMAKE_COMMAND} -E create_symlink - ${CLANG_OPTIMIZED} - ${CLANGXX_OPTIMIZED} - COMMENT "Creating symlink from BOLT optimized clang to clang++" - VERBATIM - ) endif() if (LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION) diff --git a/clang/cmake/caches/BOLT-PGO.cmake b/clang/cmake/caches/BOLT-PGO.cmake --- a/clang/cmake/caches/BOLT-PGO.cmake +++ b/clang/cmake/caches/BOLT-PGO.cmake @@ -2,11 +2,9 @@ set(CLANG_BOOTSTRAP_TARGETS stage2-clang-bolt - stage2-clang++-bolt CACHE STRING "") set(BOOTSTRAP_CLANG_BOOTSTRAP_TARGETS clang-bolt - clang++-bolt CACHE STRING "") set(PGO_BUILD_CONFIGURATION ${CMAKE_CURRENT_LIST_DIR}/BOLT.cmake CACHE STRING "") diff --git a/llvm/docs/AdvancedBuilds.rst b/llvm/docs/AdvancedBuilds.rst --- a/llvm/docs/AdvancedBuilds.rst +++ b/llvm/docs/AdvancedBuilds.rst @@ -224,7 +224,7 @@ .. code-block:: console - $ ninja clang++-bolt + $ ninja clang-bolt If you're seeing errors in the build process, try building with a recent version of Clang/LLVM by setting the CMAKE_C_COMPILER and @@ -243,12 +243,11 @@ -DBOOTSTRAP_BOOTSTRAP_LLVM_ENABLE_LLD=ON \ -DPGO_INSTRUMENT_LTO=Thin -Then, to build the final optimized binary, build the stage2-clang++-bolt -target: +Then, to build the final optimized binary, build the stage2-clang-bolt target: .. code-block:: console - $ ninja stage2-clang++-bolt + $ ninja stage2-clang-bolt 3-Stage Non-Determinism =======================