[llvm] [LLVM] Specialize test suites for `TableGen` and `FileCheck` to use smaller set of dependencies (PR #155929)

Rahul Joshi via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 11 11:50:15 PDT 2025


https://github.com/jurahul updated https://github.com/llvm/llvm-project/pull/155929

>From b0664e809c4c406fdc7b832e7c4c1babc76ce8be Mon Sep 17 00:00:00 2001
From: Rahul Joshi <rjoshi at nvidia.com>
Date: Mon, 25 Aug 2025 19:16:35 -0700
Subject: [PATCH 1/2] Trim test deps

---
 llvm/test/CMakeLists.txt           | 197 +++++++++++++++--------------
 llvm/test/FileCheck/CMakeLists.txt |   4 +
 llvm/test/TableGen/CMakeLists.txt  |  10 ++
 3 files changed, 118 insertions(+), 93 deletions(-)
 create mode 100644 llvm/test/FileCheck/CMakeLists.txt
 create mode 100644 llvm/test/TableGen/CMakeLists.txt

diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt
index f6333d68a8ea5..82570c4e3f4ea 100644
--- a/llvm/test/CMakeLists.txt
+++ b/llvm/test/CMakeLists.txt
@@ -59,100 +59,104 @@ configure_lit_site_cfg(
 
 # Set the depends list as a variable so that it can grow conditionally.
 # NOTE: Sync the substitutions in test/lit.cfg when adding to this list.
+
+set(LLVM_TEST_DEPENDS_COMMON
+  FileCheck
+  count
+  llvm-config
+  not
+  )
+
 set(LLVM_TEST_DEPENDS
-          BugpointPasses
-          FileCheck
-          LLVMWindowsDriver
-          UnitTests
-          bugpoint
-          count
-          llc
-          lli
-          lli-child-target
-          llvm-addr2line
-          llvm-ar
-          llvm-as
-          llvm-bcanalyzer
-          llvm-bitcode-strip
-          llvm-c-test
-          llvm-cat
-          llvm-cfi-verify
-          llvm-cgdata
-          llvm-config
-          llvm-cov
-          llvm-ctxprof-util
-          llvm-cvtres
-          llvm-cxxdump
-          llvm-cxxfilt
-          llvm-cxxmap
-          llvm-debuginfo-analyzer
-          llvm-debuginfod-find
-          llvm-diff
-          llvm-dis
-          llvm-dlltool
-          dsymutil
-          llvm-dwarfdump
-          llvm-dwarfutil
-          llvm-dwp
-          llvm-exegesis
-          llvm-extract
-          llvm-gsymutil
-          llvm-ir2vec
-          llvm-isel-fuzzer
-          llvm-ifs
-          llvm-install-name-tool
-          llvm-jitlink
-          llvm-lib
-          llvm-libtool-darwin
-          llvm-link
-          llvm-lipo
-          llvm-locstats
-          llvm-lto2
-          llvm-mc
-          llvm-mca
-          llvm-ml
-          llvm-ml64
-          llvm-modextract
-          llvm-nm
-          llvm-objcopy
-          llvm-objdump
-          llvm-opt-fuzzer
-          llvm-opt-report
-          llvm-offload-wrapper
-          llvm-otool
-          llvm-pdbutil
-          llvm-profdata
-          llvm-profgen
-          llvm-ranlib
-          llvm-rc
-          llvm-readobj
-          llvm-readelf
-          llvm-reduce
-          llvm-remarkutil
-          llvm-rtdyld
-          llvm-sim
-          llvm-size
-          llvm-split
-          llvm-stress
-          llvm-strings
-          llvm-strip
-          llvm-symbolizer
-          llvm-tblgen
-          llvm-readtapi
-          llvm-tli-checker
-          llvm-undname
-          llvm-windres
-          llvm-xray
-          not
-          obj2yaml
-          opt
-          sancov
-          sanstats
-          split-file
-          verify-uselistorder
-          yaml-bench
-          yaml2obj
-        )
+  BugpointPasses
+  LLVMWindowsDriver
+  UnitTests
+  bugpoint
+  llc
+  lli
+  lli-child-target
+  llvm-addr2line
+  llvm-ar
+  llvm-as
+  llvm-bcanalyzer
+  llvm-bitcode-strip
+  llvm-c-test
+  llvm-cat
+  llvm-cfi-verify
+  llvm-cgdata
+  llvm-cov
+  llvm-ctxprof-util
+  llvm-cvtres
+  llvm-cxxdump
+  llvm-cxxfilt
+  llvm-cxxmap
+  llvm-debuginfo-analyzer
+  llvm-debuginfod-find
+  llvm-diff
+  llvm-dis
+  llvm-dlltool
+  dsymutil
+  llvm-dwarfdump
+  llvm-dwarfutil
+  llvm-dwp
+  llvm-exegesis
+  llvm-extract
+  llvm-gsymutil
+  llvm-ir2vec
+  llvm-isel-fuzzer
+  llvm-ifs
+  llvm-install-name-tool
+  llvm-jitlink
+  llvm-lib
+  llvm-libtool-darwin
+  llvm-link
+  llvm-lipo
+  llvm-locstats
+  llvm-lto2
+  llvm-mc
+  llvm-mca
+  llvm-ml
+  llvm-ml64
+  llvm-modextract
+  llvm-nm
+  llvm-objcopy
+  llvm-objdump
+  llvm-opt-fuzzer
+  llvm-opt-report
+  llvm-offload-wrapper
+  llvm-otool
+  llvm-pdbutil
+  llvm-profdata
+  llvm-profgen
+  llvm-ranlib
+  llvm-rc
+  llvm-readobj
+  llvm-readelf
+  llvm-reduce
+  llvm-remarkutil
+  llvm-rtdyld
+  llvm-sim
+  llvm-size
+  llvm-split
+  llvm-stress
+  llvm-strings
+  llvm-strip
+  llvm-symbolizer
+  llvm-tblgen
+  llvm-readtapi
+  llvm-tli-checker
+  llvm-undname
+  llvm-windres
+  llvm-xray
+  obj2yaml
+  opt
+  sancov
+  sanstats
+  split-file
+  verify-uselistorder
+  yaml-bench
+  yaml2obj
+  )
 
 if(TARGET llvm-lto)
   set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-lto)
@@ -259,11 +263,18 @@ add_lit_testsuite(check-llvm "Running the LLVM regression tests"
   )
 set_target_properties(check-llvm PROPERTIES FOLDER "LLVM/Tests")
 
+# Note, exclude TableGen and FileCheck directories as we define them with a
+# reduced set of dependencies in their individual CMakeLists.txt
 add_lit_testsuites(LLVM ${CMAKE_CURRENT_SOURCE_DIR}
   ${exclude_from_check_all}
+  DEPENDS ${LLVM_TEST_DEPENDS_COMMON}
   DEPENDS ${LLVM_TEST_DEPENDS}
   FOLDER "Tests/Subdirectories"
+  SKIP "^FileCheck"
+  SKIP "^TableGen"
   )
+add_subdirectory(FileCheck)
+add_subdirectory(TableGen)
 
 # Setup an alias for 'check-all'.
 add_custom_target(check)
diff --git a/llvm/test/FileCheck/CMakeLists.txt b/llvm/test/FileCheck/CMakeLists.txt
new file mode 100644
index 0000000000000..a5bd0daac9b7a
--- /dev/null
+++ b/llvm/test/FileCheck/CMakeLists.txt
@@ -0,0 +1,4 @@
+add_lit_testsuite(check-llvm-filecheck "Running lit suite for FileCheck"
+  ${CMAKE_CURRENT_BINARY_DIR}
+  DEPENDS ${LLVM_TEST_DEPENDS_COMMON}
+  )
diff --git a/llvm/test/TableGen/CMakeLists.txt b/llvm/test/TableGen/CMakeLists.txt
new file mode 100644
index 0000000000000..cc514402b1801
--- /dev/null
+++ b/llvm/test/TableGen/CMakeLists.txt
@@ -0,0 +1,10 @@
+# Subset of dependencies for TableGen lit test.
+set(LLVM_TEST_TABLEGEN_DEPENDS
+  llvm-tblgen
+  )
+
+add_lit_testsuite(check-llvm-tablegen "Running lit suite for TableGen"
+  ${CMAKE_CURRENT_BINARY_DIR}
+  DEPENDS ${LLVM_TEST_DEPENDS_COMMON}
+  DEPENDS ${LLVM_TEST_TABLEGEN_DEPENDS}
+  )

>From 1a382a40e4018486a9acf5ca7fe84478a2b3a604 Mon Sep 17 00:00:00 2001
From: Rahul Joshi <rjoshi at nvidia.com>
Date: Thu, 11 Sep 2025 11:49:51 -0700
Subject: [PATCH 2/2] Review feedback

---
 llvm/test/CMakeLists.txt          | 3 +--
 llvm/test/TableGen/CMakeLists.txt | 7 +------
 2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt
index 82570c4e3f4ea..b27f716a99a1d 100644
--- a/llvm/test/CMakeLists.txt
+++ b/llvm/test/CMakeLists.txt
@@ -270,8 +270,7 @@ add_lit_testsuites(LLVM ${CMAKE_CURRENT_SOURCE_DIR}
   DEPENDS ${LLVM_TEST_DEPENDS_COMMON}
   DEPENDS ${LLVM_TEST_DEPENDS}
   FOLDER "Tests/Subdirectories"
-  SKIP "^FileCheck"
-  SKIP "^TableGen"
+  SKIP "^FileCheck" "^TableGen"
   )
 add_subdirectory(FileCheck)
 add_subdirectory(TableGen)
diff --git a/llvm/test/TableGen/CMakeLists.txt b/llvm/test/TableGen/CMakeLists.txt
index cc514402b1801..65774bb4b45b5 100644
--- a/llvm/test/TableGen/CMakeLists.txt
+++ b/llvm/test/TableGen/CMakeLists.txt
@@ -1,10 +1,5 @@
-# Subset of dependencies for TableGen lit test.
-set(LLVM_TEST_TABLEGEN_DEPENDS
-  llvm-tblgen
-  )
-
 add_lit_testsuite(check-llvm-tablegen "Running lit suite for TableGen"
   ${CMAKE_CURRENT_BINARY_DIR}
   DEPENDS ${LLVM_TEST_DEPENDS_COMMON}
-  DEPENDS ${LLVM_TEST_TABLEGEN_DEPENDS}
+  DEPENDS llvm-tblgen
   )



More information about the llvm-commits mailing list