mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 18:16:42 +00:00
[CMake][Release] Enable bolt optimization for clang on Linux (#128090)
Also stop buiding the bolt project on other platforms since bolt only supports ELF.
This commit is contained in:
parent
1affadb7c6
commit
148111fdcf
2
.github/workflows/release-binaries.yml
vendored
2
.github/workflows/release-binaries.yml
vendored
@ -142,7 +142,7 @@ jobs:
|
||||
# 2-3 hours to build on macOS, much slower than on Linux.
|
||||
# The long build time causes the release build to time out on x86_64,
|
||||
# so we need to disable flang there.
|
||||
target_cmake_flags="$target_cmake_flags -DLLVM_RELEASE_ENABLE_PROJECTS='clang;lld;lldb;clang-tools-extra;bolt;polly;mlir'"
|
||||
target_cmake_flags="$target_cmake_flags -DLLVM_RELEASE_ENABLE_PROJECTS='clang;lld;lldb;clang-tools-extra;polly;mlir'"
|
||||
fi
|
||||
target_cmake_flags="$target_cmake_flags -DBOOTSTRAP_BOOTSTRAP_DARWIN_osx_ARCHS=$arches -DBOOTSTRAP_BOOTSTRAP_DARWIN_osx_BUILTIN_ARCHS=$arches"
|
||||
fi
|
||||
|
@ -29,6 +29,13 @@ endfunction()
|
||||
# cache file to CMake via -C. e.g.
|
||||
#
|
||||
# cmake -D LLVM_RELEASE_ENABLE_PGO=ON -C Release.cmake
|
||||
|
||||
set (DEFAULT_PROJECTS "clang;lld;lldb;clang-tools-extra;polly;mlir;flang")
|
||||
# bolt only supports ELF, so only enable it for Linux.
|
||||
if (${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux")
|
||||
list(APPEND DEFAULT_PROJECTS "bolt")
|
||||
endif()
|
||||
|
||||
set (DEFAULT_RUNTIMES "compiler-rt;libcxx")
|
||||
if (NOT WIN32)
|
||||
list(APPEND DEFAULT_RUNTIMES "libcxxabi" "libunwind")
|
||||
@ -36,7 +43,7 @@ endif()
|
||||
set(LLVM_RELEASE_ENABLE_LTO THIN CACHE STRING "")
|
||||
set(LLVM_RELEASE_ENABLE_PGO ON CACHE BOOL "")
|
||||
set(LLVM_RELEASE_ENABLE_RUNTIMES ${DEFAULT_RUNTIMES} CACHE STRING "")
|
||||
set(LLVM_RELEASE_ENABLE_PROJECTS "clang;lld;lldb;clang-tools-extra;bolt;polly;mlir;flang" CACHE STRING "")
|
||||
set(LLVM_RELEASE_ENABLE_PROJECTS ${DEFAULT_PROJECTS} CACHE STRING "")
|
||||
# Note we don't need to add install here, since it is one of the pre-defined
|
||||
# steps.
|
||||
set(LLVM_RELEASE_FINAL_STAGE_TARGETS "clang;package;check-all;check-llvm;check-clang" CACHE STRING "")
|
||||
@ -118,6 +125,11 @@ if(NOT ${CMAKE_HOST_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(RELEASE_LINKER_FLAGS "${RELEASE_LINKER_FLAGS} -static-libgcc")
|
||||
endif()
|
||||
|
||||
# Set flags for bolt
|
||||
if (${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux")
|
||||
set(RELEASE_LINKER_FLAGS "${RELEASE_LINKER_FLAGS} -Wl,--emit-relocs,-znow")
|
||||
endif()
|
||||
|
||||
set_instrument_and_final_stage_var(CMAKE_EXE_LINKER_FLAGS ${RELEASE_LINKER_FLAGS} STRING)
|
||||
set_instrument_and_final_stage_var(CMAKE_SHARED_LINKER_FLAGS ${RELEASE_LINKER_FLAGS} STRING)
|
||||
set_instrument_and_final_stage_var(CMAKE_MODULE_LINKER_FLAGS ${RELEASE_LINKER_FLAGS} STRING)
|
||||
@ -125,6 +137,9 @@ set_instrument_and_final_stage_var(CMAKE_MODULE_LINKER_FLAGS ${RELEASE_LINKER_FL
|
||||
# Final Stage Config (stage2)
|
||||
set_final_stage_var(LLVM_ENABLE_RUNTIMES "${LLVM_RELEASE_ENABLE_RUNTIMES}" STRING)
|
||||
set_final_stage_var(LLVM_ENABLE_PROJECTS "${LLVM_RELEASE_ENABLE_PROJECTS}" STRING)
|
||||
if (${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux")
|
||||
set_final_stage_var(CLANG_BOLT "INSTRUMENT" STRING)
|
||||
endif()
|
||||
set_final_stage_var(CPACK_GENERATOR "TXZ" STRING)
|
||||
set_final_stage_var(CPACK_ARCHIVE_THREADS "0" STRING)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user