Skip to content

Commit e7db709

Browse files
authored
benchmarks: Skip runtime libcalls benchmark for llvm-driver build (#159513)
Apparently if you enable LLVM_TOOL_LLVM_DRIVER_BUILD, many individual tool binaries are not built and instead create object targets which are linked into an llvm-driver tool which you need to use instead. In principle we could reconstruct this command with llvm-driver, but I can't get a build to complete when I turn this on as a standalone option.
1 parent 3044549 commit e7db709

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

llvm/benchmarks/CMakeLists.txt

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,30 @@ add_benchmark(SandboxIRBench SandboxIRBench.cpp PARTIAL_SOURCES_INTENDED)
1313

1414
add_benchmark(RuntimeLibcallsBench RuntimeLibcalls.cpp PARTIAL_SOURCES_INTENDED)
1515

16-
17-
# Extract the list of symbols in a random utility as sample data.
18-
set(SYMBOL_TEST_DATA_FILE "sample_symbol_list.txt")
19-
20-
get_host_tool_path(llvm-nm LLVM_NM llvm_nm_exe llvm_nm_target)
21-
get_host_tool_path(llc LLC llc_exe llc_target)
22-
23-
if(TARGET ${llc_target} AND TARGET ${llvm_nm_target})
24-
add_custom_command(OUTPUT ${SYMBOL_TEST_DATA_FILE}
25-
COMMAND ${llvm_nm_exe} --no-demangle --no-sort
26-
--format=just-symbols
27-
${SYMBOL_TEST_DATA_SOURCE_BINARY} > ${SYMBOL_TEST_DATA_FILE}
28-
DEPENDS ${llvm_nm_target} ${llc_target})
29-
30-
add_custom_target(generate-runtime-libcalls-sample-symbol-list
31-
DEPENDS ${SYMBOL_TEST_DATA_FILE})
32-
33-
add_dependencies(RuntimeLibcallsBench generate-runtime-libcalls-sample-symbol-list)
34-
target_compile_definitions(RuntimeLibcallsBench PRIVATE
35-
-DSYMBOL_TEST_DATA_FILE="${CMAKE_CURRENT_BINARY_DIR}/${SYMBOL_TEST_DATA_FILE}")
16+
if(NOT LLVM_TOOL_LLVM_DRIVER_BUILD)
17+
# TODO: Check if the tools aer in LLVM_DISTRIBUTION_COMPONENTS with
18+
# the driver build. Also support the driver build by invoking the
19+
# tools through llvm-driver
20+
get_host_tool_path(llvm-nm LLVM_NM llvm_nm_exe llvm_nm_target)
21+
get_host_tool_path(llc LLC llc_exe llc_target)
22+
23+
if(TARGET ${llc_target} AND TARGET ${llvm_nm_target})
24+
# Extract the list of symbols in a random utility as sample data.
25+
set(SYMBOL_TEST_DATA_FILE "sample_symbol_list.txt")
26+
set(SYMBOL_TEST_DATA_SOURCE_BINARY ${llc_exe})
27+
28+
add_custom_command(OUTPUT ${SYMBOL_TEST_DATA_FILE}
29+
COMMAND ${llvm_nm_exe} --no-demangle --no-sort
30+
--format=just-symbols
31+
${SYMBOL_TEST_DATA_SOURCE_BINARY} > ${SYMBOL_TEST_DATA_FILE}
32+
DEPENDS ${llvm_nm_target} ${llc_target})
33+
34+
add_custom_target(generate-runtime-libcalls-sample-symbol-list
35+
DEPENDS ${SYMBOL_TEST_DATA_FILE})
36+
37+
add_dependencies(RuntimeLibcallsBench
38+
generate-runtime-libcalls-sample-symbol-list)
39+
target_compile_definitions(RuntimeLibcallsBench PRIVATE
40+
-DSYMBOL_TEST_DATA_FILE="${CMAKE_CURRENT_BINARY_DIR}/${SYMBOL_TEST_DATA_FILE}")
41+
endif()
3642
endif()

0 commit comments

Comments
 (0)