Nikita Popov e235fcb582
[BOLT] Only link and initialize supported targets (#127509)
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.
2025-02-18 09:17:51 +01:00

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()