Author: Yury Plyakhin
Date: 2026-05-26T07:02:52-07:00
New Revision: cb96a3edf7a81e75169fdcc057f3e19a1d09f73b

URL: 
https://github.com/llvm/llvm-project/commit/cb96a3edf7a81e75169fdcc057f3e19a1d09f73b
DIFF: 
https://github.com/llvm/llvm-project/commit/cb96a3edf7a81e75169fdcc057f3e19a1d09f73b.diff

LOG: [clang][test] Move offload tools tests to clang/test/OffloadTools (#198434)

Tests for clang-offload-bundler, clang-linker-wrapper,
clang-nvlink-wrapper, and clang-sycl-linker were scattered across
clang/test/Driver/ and clang/test/Tooling/. Neither location was
appropriate: Driver/ is for testing the compiler driver, and Tooling/ is
for testing the LibTooling infrastructure.

Move them to clang/test/OffloadTools/ with one subdirectory per tool,
following the convention used by llvm/test/tools/. The tool-name prefix
is dropped from filenames since the containing directory already
identifies the tool.

The spirv-tools feature/substitution setup is carried over from
Tooling's lit.local.cfg into a new lit.local.cfg in
clang-linker-wrapper/, since the parent clang/test/lit.cfg.py does not
set up that feature. The dead spirv-tools block is removed from
Tooling/lit.local.cfg now that no tests there depend on it.

`clang-linker-wrapper-spirv.cpp` was relying on libomp in the
environment. It is now rewritten to run the `clang-linker-wrapper`
directly rather than going through the driver and added stub symbols
allow avoiding linking against OpenMP runtime libraries.

Added: 
    
clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-canonical-prefixes.c
    
clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-amdgcnspirv.c
    clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-no-rdc.c
    clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-image.c
    clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-llvm-help.c
    clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper.c
    clang/test/OffloadTools/clang-linker-wrapper/lit.local.cfg
    clang/test/OffloadTools/clang-linker-wrapper/openmp-spirv.cpp
    clang/test/OffloadTools/clang-nvlink-wrapper/nvlink-wrapper.c
    clang/test/OffloadTools/clang-offload-bundler/asserts-on.c
    clang/test/OffloadTools/clang-offload-bundler/basic.c
    clang/test/OffloadTools/clang-offload-bundler/fat-archive-unbundle-ext.c
    clang/test/OffloadTools/clang-offload-bundler/standardize.c
    clang/test/OffloadTools/clang-offload-bundler/zlib.c
    clang/test/OffloadTools/clang-offload-bundler/zstd.c
    clang/test/OffloadTools/clang-sycl-linker/basic.ll
    clang/test/OffloadTools/clang-sycl-linker/split-mode.ll
    clang/test/OffloadTools/clang-sycl-linker/triple.ll

Modified: 
    clang/test/Tooling/lit.local.cfg

Removed: 
    clang/test/Driver/clang-offload-bundler-asserts-on.c
    clang/test/Driver/clang-offload-bundler-standardize.c
    clang/test/Driver/clang-offload-bundler-zlib.c
    clang/test/Driver/clang-offload-bundler-zstd.c
    clang/test/Driver/clang-offload-bundler.c
    clang/test/Driver/fat-archive-unbundle-ext.c
    clang/test/Driver/linker-wrapper-canonical-prefixes.c
    clang/test/Driver/linker-wrapper-hip-amdgcnspirv.c
    clang/test/Driver/linker-wrapper-hip-no-rdc.c
    clang/test/Driver/linker-wrapper-image.c
    clang/test/Driver/linker-wrapper-llvm-help.c
    clang/test/Driver/linker-wrapper.c
    clang/test/Driver/nvlink-wrapper.c
    clang/test/Tooling/clang-linker-wrapper-spirv.cpp
    clang/test/Tooling/clang-sycl-linker-split-mode.ll
    clang/test/Tooling/clang-sycl-linker-triple.ll
    clang/test/Tooling/clang-sycl-linker.ll


################################################################################
diff  --git a/clang/test/Driver/linker-wrapper-canonical-prefixes.c 
b/clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-canonical-prefixes.c
similarity index 100%
rename from clang/test/Driver/linker-wrapper-canonical-prefixes.c
rename to 
clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-canonical-prefixes.c

diff  --git a/clang/test/Driver/linker-wrapper-hip-amdgcnspirv.c 
b/clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-amdgcnspirv.c
similarity index 100%
rename from clang/test/Driver/linker-wrapper-hip-amdgcnspirv.c
rename to 
clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-amdgcnspirv.c

diff  --git a/clang/test/Driver/linker-wrapper-hip-no-rdc.c 
b/clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-no-rdc.c
similarity index 100%
rename from clang/test/Driver/linker-wrapper-hip-no-rdc.c
rename to 
clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-no-rdc.c

diff  --git a/clang/test/Driver/linker-wrapper-image.c 
b/clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-image.c
similarity index 100%
rename from clang/test/Driver/linker-wrapper-image.c
rename to clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-image.c

diff  --git a/clang/test/Driver/linker-wrapper-llvm-help.c 
b/clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-llvm-help.c
similarity index 100%
rename from clang/test/Driver/linker-wrapper-llvm-help.c
rename to 
clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-llvm-help.c

diff  --git a/clang/test/Driver/linker-wrapper.c 
b/clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper.c
similarity index 100%
rename from clang/test/Driver/linker-wrapper.c
rename to clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper.c

diff  --git a/clang/test/OffloadTools/clang-linker-wrapper/lit.local.cfg 
b/clang/test/OffloadTools/clang-linker-wrapper/lit.local.cfg
new file mode 100644
index 0000000000000..c4c42b89f3ba8
--- /dev/null
+++ b/clang/test/OffloadTools/clang-linker-wrapper/lit.local.cfg
@@ -0,0 +1,10 @@
+from lit.llvm import llvm_config
+
+if llvm_config.use_lld(required=False):
+    config.available_features.add("lld")
+
+if config.spirv_tools_tests:
+    config.available_features.add("spirv-tools")
+    llvm_config.add_tool_substitutions(
+        ["spirv-dis", "spirv-val", "spirv-as", "spirv-link"]
+    )

diff  --git a/clang/test/OffloadTools/clang-linker-wrapper/openmp-spirv.cpp 
b/clang/test/OffloadTools/clang-linker-wrapper/openmp-spirv.cpp
new file mode 100644
index 0000000000000..8a79d146a69f6
--- /dev/null
+++ b/clang/test/OffloadTools/clang-linker-wrapper/openmp-spirv.cpp
@@ -0,0 +1,27 @@
+// Verify the ELF packaging of OpenMP SPIR-V device images.
+// REQUIRES: system-linux
+// REQUIRES: spirv-tools
+// REQUIRES: spirv-registered-target
+// REQUIRES: x86-registered-target
+
+// RUN: %clang_cc1 %s -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o %t.bc
+// RUN: %clang_cc1 %s -triple spirv64-intel -fopenmp-is-target-device 
-emit-obj -o %t.device.o
+// RUN: llvm-offload-binary -o %t.bundle 
--image=file=%t.device.o,triple=spirv64-intel,arch=generic,kind=openmp
+// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-obj 
-fembed-offload-object=%t.bundle -x ir %t.bc -o %t.host.o
+// RUN: clang-linker-wrapper --host-triple=x86_64-unknown-linux-gnu 
--linker-path=/usr/bin/ld %t.host.o -o %t
+// RUN: llvm-objdump --offloading %t | FileCheck -check-prefix=CHECK %s
+
+// CHECK: nested images   1
+// CHECK:   triple          spirv64-intel
+
+// Stub symbols required by the OpenMP offload descriptor registration code
+// emitted by clang-linker-wrapper; avoids linking -lomp/-lomptarget/-lc.
+extern "C" {
+void __tgt_register_lib(void *) {}
+void __tgt_unregister_lib(void *) {}
+int atexit(void (*)(void)) { return 0; }
+}
+
+int main(int argc, char** argv) {
+  return 0;
+}

diff  --git a/clang/test/Driver/nvlink-wrapper.c 
b/clang/test/OffloadTools/clang-nvlink-wrapper/nvlink-wrapper.c
similarity index 100%
rename from clang/test/Driver/nvlink-wrapper.c
rename to clang/test/OffloadTools/clang-nvlink-wrapper/nvlink-wrapper.c

diff  --git a/clang/test/Driver/clang-offload-bundler-asserts-on.c 
b/clang/test/OffloadTools/clang-offload-bundler/asserts-on.c
similarity index 100%
rename from clang/test/Driver/clang-offload-bundler-asserts-on.c
rename to clang/test/OffloadTools/clang-offload-bundler/asserts-on.c

diff  --git a/clang/test/Driver/clang-offload-bundler.c 
b/clang/test/OffloadTools/clang-offload-bundler/basic.c
similarity index 100%
rename from clang/test/Driver/clang-offload-bundler.c
rename to clang/test/OffloadTools/clang-offload-bundler/basic.c

diff  --git a/clang/test/Driver/fat-archive-unbundle-ext.c 
b/clang/test/OffloadTools/clang-offload-bundler/fat-archive-unbundle-ext.c
similarity index 100%
rename from clang/test/Driver/fat-archive-unbundle-ext.c
rename to 
clang/test/OffloadTools/clang-offload-bundler/fat-archive-unbundle-ext.c

diff  --git a/clang/test/Driver/clang-offload-bundler-standardize.c 
b/clang/test/OffloadTools/clang-offload-bundler/standardize.c
similarity index 100%
rename from clang/test/Driver/clang-offload-bundler-standardize.c
rename to clang/test/OffloadTools/clang-offload-bundler/standardize.c

diff  --git a/clang/test/Driver/clang-offload-bundler-zlib.c 
b/clang/test/OffloadTools/clang-offload-bundler/zlib.c
similarity index 100%
rename from clang/test/Driver/clang-offload-bundler-zlib.c
rename to clang/test/OffloadTools/clang-offload-bundler/zlib.c

diff  --git a/clang/test/Driver/clang-offload-bundler-zstd.c 
b/clang/test/OffloadTools/clang-offload-bundler/zstd.c
similarity index 100%
rename from clang/test/Driver/clang-offload-bundler-zstd.c
rename to clang/test/OffloadTools/clang-offload-bundler/zstd.c

diff  --git a/clang/test/Tooling/clang-sycl-linker.ll 
b/clang/test/OffloadTools/clang-sycl-linker/basic.ll
similarity index 100%
rename from clang/test/Tooling/clang-sycl-linker.ll
rename to clang/test/OffloadTools/clang-sycl-linker/basic.ll

diff  --git a/clang/test/Tooling/clang-sycl-linker-split-mode.ll 
b/clang/test/OffloadTools/clang-sycl-linker/split-mode.ll
similarity index 100%
rename from clang/test/Tooling/clang-sycl-linker-split-mode.ll
rename to clang/test/OffloadTools/clang-sycl-linker/split-mode.ll

diff  --git a/clang/test/Tooling/clang-sycl-linker-triple.ll 
b/clang/test/OffloadTools/clang-sycl-linker/triple.ll
similarity index 100%
rename from clang/test/Tooling/clang-sycl-linker-triple.ll
rename to clang/test/OffloadTools/clang-sycl-linker/triple.ll

diff  --git a/clang/test/Tooling/clang-linker-wrapper-spirv.cpp 
b/clang/test/Tooling/clang-linker-wrapper-spirv.cpp
deleted file mode 100644
index ecbfe626129db..0000000000000
--- a/clang/test/Tooling/clang-linker-wrapper-spirv.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-// Verify the ELF packaging of OpenMP SPIR-V device images.
-// REQUIRES: system-linux
-// REQUIRES: spirv-tools
-// REQUIRES: spirv-registered-target
-// RUN: %clangxx -fopenmp -fopenmp-targets=spirv64-intel -nogpulib -o %t %s
-// RUN: llvm-objdump --offloading %t | FileCheck -check-prefix=CHECK %s
-
-// CHECK: nested images   1
-// CHECK:   triple          spirv64-intel
-
-int main(int argc, char** argv) {
-  return 0;
-}

diff  --git a/clang/test/Tooling/lit.local.cfg 
b/clang/test/Tooling/lit.local.cfg
index 9cda4b31e81da..4cd8ba72fa767 100644
--- a/clang/test/Tooling/lit.local.cfg
+++ b/clang/test/Tooling/lit.local.cfg
@@ -1,11 +1,2 @@
-import lit.util
-
 if not config.root.clang_staticanalyzer:
     config.unsupported = True
-
-if config.spirv_tools_tests:
-    config.available_features.add("spirv-tools")
-    from lit.llvm import llvm_config
-    llvm_config.add_tool_substitutions(
-        ["spirv-dis", "spirv-val", "spirv-as", "spirv-link"]
-    )


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to