[llvm] RuntimeLibcalls: Use get_host_tool_path for executables used in benchmark (PR #153955)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 16 07:41:33 PDT 2025


https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/153955

Copied from what the llvm-shlib build is doing.

This reverts commit 0b1b567d9f84e67124c58d69b5aa375357d68c9e.

>From 647a78ed801596442d8074f4de34e37cb07d17c3 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Sat, 16 Aug 2025 23:29:44 +0900
Subject: [PATCH] RuntimeLibcalls: Use get_host_tool_path for executables used
 in benchmark

Copied from what the llvm-shlib build is doing.

This reverts commit 0b1b567d9f84e67124c58d69b5aa375357d68c9e.
---
 llvm/benchmarks/CMakeLists.txt | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/llvm/benchmarks/CMakeLists.txt b/llvm/benchmarks/CMakeLists.txt
index e32aba5ebff43..0a46008f391f8 100644
--- a/llvm/benchmarks/CMakeLists.txt
+++ b/llvm/benchmarks/CMakeLists.txt
@@ -14,3 +14,22 @@ 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")
+set(SYMBOL_TEST_DATA_SOURCE_BINARY $<TARGET_FILE:llc>)
+
+get_host_tool_path(llvm-nm LLVM_NM llvm_nm_exe llvm_nm_target)
+get_host_tool_path(llc LLC llc_exe llc_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}")



More information about the llvm-commits mailing list