mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 17:26:41 +00:00

Bolt currently links and initializes all LLVM targets. This substantially increases the binary size, and link time if LTO is used. Instead, only link the targets specified by BOLT_TARGETS_TO_BUILD. We also have to only initialize those targets, so generate a TargetConfig.def file with the necessary information. The way the initialization is done mirrors what llvm-exegesis does. This reduces llvm-bolt size from 137MB to 78MB for me.
14 lines
255 B
CMake
14 lines
255 B
CMake
set(LLVM_LINK_COMPONENTS
|
|
${BOLT_TARGETS_TO_BUILD}
|
|
)
|
|
|
|
add_llvm_fuzzer(llvm-bolt-fuzzer
|
|
llvm-bolt-fuzzer.cpp
|
|
|
|
DISABLE_LLVM_LINK_LLVM_DYLIB
|
|
)
|
|
|
|
if (TARGET llvm-bolt-fuzzer)
|
|
target_link_libraries(llvm-bolt-fuzzer PRIVATE LLVMBOLTRewrite)
|
|
endif()
|