llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang @llvm/pr-subscribers-clang-driver Author: Shilei Tian (shiltian) <details> <summary>Changes</summary> --- Full diff: https://github.com/llvm/llvm-project/pull/135690.diff 2 Files Affected: - (modified) clang/lib/Driver/ToolChains/Clang.cpp (+10-1) - (modified) clang/test/Driver/openmp-offload-gpu.c (+15) ``````````diff diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index a330972045550..65910e7fdaaa6 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -9270,9 +9270,18 @@ void LinkerWrapper::ConstructJob(Compilation &C, const JobAction &JA, if (C.getDriver().getOffloadLTOMode() == LTOK_Full) CmdArgs.push_back(Args.MakeArgString( "--device-compiler=" + TC->getTripleString() + "=-flto=full")); - else if (C.getDriver().getOffloadLTOMode() == LTOK_Thin) + else if (C.getDriver().getOffloadLTOMode() == LTOK_Thin) { CmdArgs.push_back(Args.MakeArgString( "--device-compiler=" + TC->getTripleString() + "=-flto=thin")); + if (TC->getTriple().isAMDGPU()) { + CmdArgs.push_back( + Args.MakeArgString("--device-linker=" + TC->getTripleString() + + "=-plugin-opt=-force-import-all")); + CmdArgs.push_back( + Args.MakeArgString("--device-linker=" + TC->getTripleString() + + "=-plugin-opt=-avail-extern-to-local")); + } + } } } diff --git a/clang/test/Driver/openmp-offload-gpu.c b/clang/test/Driver/openmp-offload-gpu.c index 1f7e2996068c4..8a7edaef7cc45 100644 --- a/clang/test/Driver/openmp-offload-gpu.c +++ b/clang/test/Driver/openmp-offload-gpu.c @@ -378,3 +378,18 @@ // RUN: --offload-arch=sm_52 -nogpulibc -nogpuinc %s 2>&1 \ // RUN: | FileCheck --check-prefix=LIBC-GPU %s // LIBC-GPU-NOT: clang-linker-wrapper{{.*}}"--device-linker" + +// +// Check that ThinLTO works for OpenMP offloading. +// +// RUN: %clang -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp \ +// RUN: --offload-arch=gfx906 -foffload-lto=thin -nogpulib -nogpuinc %s 2>&1 \ +// RUN: | FileCheck --check-prefix=THINLTO-GFX906 %s +// THINLTO-GFX906: --device-compiler=amdgcn-amd-amdhsa=-flto=thin +// THINLTO-GFX906-SAME: --device-linker=amdgcn-amd-amdhsa=-plugin-opt=-force-import-all +// THINLTO-GFX906-SAME: --device-linker=amdgcn-amd-amdhsa=-plugin-opt=-avail-extern-to-local +// +// RUN: %clang -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp \ +// RUN: --offload-arch=sm_52 -foffload-lto=thin -nogpulib -nogpuinc %s 2>&1 \ +// RUN: | FileCheck --check-prefix=THINLTO-SM52 %s +// THINLTO-SM52: --device-compiler=nvptx64-nvidia-cuda=-flto=thin `````````` </details> https://github.com/llvm/llvm-project/pull/135690 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits