[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