[llvm] e7db709 - benchmarks: Skip runtime libcalls benchmark for llvm-driver build (#159513)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 18 00:17:36 PDT 2025
Author: Matt Arsenault
Date: 2025-09-18T16:17:30+09:00
New Revision: e7db709eab7999e6bdb40328c091b8432ae416cc
URL: https://github.com/llvm/llvm-project/commit/e7db709eab7999e6bdb40328c091b8432ae416cc
DIFF: https://github.com/llvm/llvm-project/commit/e7db709eab7999e6bdb40328c091b8432ae416cc.diff
LOG: 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.
Added:
Modified:
llvm/benchmarks/CMakeLists.txt
Removed:
################################################################################
diff --git a/llvm/benchmarks/CMakeLists.txt b/llvm/benchmarks/CMakeLists.txt
index 69e78e0776129..1d9bf6b244935 100644
--- a/llvm/benchmarks/CMakeLists.txt
+++ b/llvm/benchmarks/CMakeLists.txt
@@ -13,24 +13,30 @@ add_benchmark(SandboxIRBench SandboxIRBench.cpp PARTIAL_SOURCES_INTENDED)
add_benchmark(RuntimeLibcallsBench RuntimeLibcalls.cpp PARTIAL_SOURCES_INTENDED)
-
-# Extract the list of symbols in a random utility as sample data.
-set(SYMBOL_TEST_DATA_FILE "sample_symbol_list.txt")
-
-get_host_tool_path(llvm-nm LLVM_NM llvm_nm_exe llvm_nm_target)
-get_host_tool_path(llc LLC llc_exe llc_target)
-
-if(TARGET ${llc_target} AND TARGET ${llvm_nm_target})
- add_custom_command(OUTPUT ${SYMBOL_TEST_DATA_FILE}
- COMMAND ${llvm_nm_exe} --no-demangle --no-sort
- --format=just-symbols
- ${SYMBOL_TEST_DATA_SOURCE_BINARY} > ${SYMBOL_TEST_DATA_FILE}
- DEPENDS ${llvm_nm_target} ${llc_target})
-
- add_custom_target(generate-runtime-libcalls-sample-symbol-list
- DEPENDS ${SYMBOL_TEST_DATA_FILE})
-
- add_dependencies(RuntimeLibcallsBench generate-runtime-libcalls-sample-symbol-list)
- target_compile_definitions(RuntimeLibcallsBench PRIVATE
- -DSYMBOL_TEST_DATA_FILE="${CMAKE_CURRENT_BINARY_DIR}/${SYMBOL_TEST_DATA_FILE}")
+if(NOT LLVM_TOOL_LLVM_DRIVER_BUILD)
+ # TODO: Check if the tools aer in LLVM_DISTRIBUTION_COMPONENTS with
+ # the driver build. Also support the driver build by invoking the
+ # tools through llvm-driver
+ get_host_tool_path(llvm-nm LLVM_NM llvm_nm_exe llvm_nm_target)
+ get_host_tool_path(llc LLC llc_exe llc_target)
+
+ if(TARGET ${llc_target} AND TARGET ${llvm_nm_target})
+ # Extract the list of symbols in a random utility as sample data.
+ set(SYMBOL_TEST_DATA_FILE "sample_symbol_list.txt")
+ set(SYMBOL_TEST_DATA_SOURCE_BINARY ${llc_exe})
+
+ add_custom_command(OUTPUT ${SYMBOL_TEST_DATA_FILE}
+ COMMAND ${llvm_nm_exe} --no-demangle --no-sort
+ --format=just-symbols
+ ${SYMBOL_TEST_DATA_SOURCE_BINARY} > ${SYMBOL_TEST_DATA_FILE}
+ DEPENDS ${llvm_nm_target} ${llc_target})
+
+ add_custom_target(generate-runtime-libcalls-sample-symbol-list
+ DEPENDS ${SYMBOL_TEST_DATA_FILE})
+
+ add_dependencies(RuntimeLibcallsBench
+ generate-runtime-libcalls-sample-symbol-list)
+ target_compile_definitions(RuntimeLibcallsBench PRIVATE
+ -DSYMBOL_TEST_DATA_FILE="${CMAKE_CURRENT_BINARY_DIR}/${SYMBOL_TEST_DATA_FILE}")
+ endif()
endif()
More information about the llvm-commits
mailing list