[clang] db547e8 - [Clang][OpenMP][Driver] Make linker to link Device RTL when built for SPIRV (#180066)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 17 06:48:18 PST 2026
Author: fineg74
Date: 2026-02-17T14:48:13Z
New Revision: db547e8846c9830f6843d41c310f8f707a470914
URL: https://github.com/llvm/llvm-project/commit/db547e8846c9830f6843d41c310f8f707a470914
DIFF: https://github.com/llvm/llvm-project/commit/db547e8846c9830f6843d41c310f8f707a470914.diff
LOG: [Clang][OpenMP][Driver] Make linker to link Device RTL when built for SPIRV (#180066)
This is to make linker to link ompdevice library when building for
OpenMP using SPIRV
Added:
Modified:
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/openmp-offload-gpu.c
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index c16aa33f29ebb..1421c3b3b1ea4 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -9304,7 +9304,7 @@ void LinkerWrapper::ConstructJob(Compilation &C, const JobAction &JA,
// If this is OpenMP the device linker will need `-lompdevice`.
if (Kind == Action::OFK_OpenMP && !Args.hasArg(OPT_no_offloadlib) &&
- (TC->getTriple().isAMDGPU() || TC->getTriple().isNVPTX()))
+ TC->getTriple().isGPU())
LinkerArgs.emplace_back("-lompdevice");
// Forward all of these to the appropriate toolchain.
diff --git a/clang/test/Driver/openmp-offload-gpu.c b/clang/test/Driver/openmp-offload-gpu.c
index fb1bc9ffdbbd4..f12e79868fca2 100644
--- a/clang/test/Driver/openmp-offload-gpu.c
+++ b/clang/test/Driver/openmp-offload-gpu.c
@@ -410,3 +410,20 @@
// RUN: | FileCheck --check-prefix=SHOULD-EXTRACT %s
//
// SHOULD-EXTRACT: clang-linker-wrapper{{.*}}"--should-extract=gfx906"
+
+//
+// Check ompdevice is linked.
+//
+// RUN: %clang -### -fopenmp -fopenmp-targets=nvptx64 --offload-arch=sm_52 \
+// RUN: --cuda-path=%S/Inputs/CUDA_102/usr/local/cuda \
+// RUN: --libomptarget-nvptx-bc-path=%S/Inputs/libomptarget/libomptarget-nvptx-test.bc %s 2>&1 \
+// RUN: | FileCheck --check-prefix=OMPDEVICE %s
+//
+// RUN: %clang -### -fopenmp -fopenmp-targets=amdgcn --offload-arch=gfx908 \
+// RUN: --rocm-device-lib-path=%S/Inputs/rocm/amdgcn/bitcode %s 2>&1 \
+// RUN: | FileCheck --check-prefix=OMPDEVICE %s
+//
+// RUN: %clang -### -fopenmp -fopenmp-targets=spirv64 \
+// RUN: --libomptarget-spirv-bc-path=%S/Inputs/spirv-openmp/lib/libomptarget-spirv.bc %s 2>&1 \
+// RUN: | FileCheck --check-prefix=OMPDEVICE %s
+// OMPDEVICE: clang-linker-wrapper{{.*}}--device-linker{{.*}}-lompdevice
More information about the cfe-commits
mailing list