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
