[llvm] benchmarks: Skip runtime libcalls benchmark for llvm-driver build (PR #159513)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 17 23:25:15 PDT 2025
https://github.com/arsenm updated https://github.com/llvm/llvm-project/pull/159513
>From bc91e81335495673cdbd8ed6e29221a27e30efd4 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Thu, 18 Sep 2025 15:17:58 +0900
Subject: [PATCH] benchmarks: Skip runtime libcalls benchmark for llvm-driver
build
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.
---
llvm/benchmarks/CMakeLists.txt | 46 +++++++++++++++++++---------------
1 file changed, 26 insertions(+), 20 deletions(-)
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