Author: Shilei Tian Date: 2025-05-05T13:10:46-04:00 New Revision: 8ae9a204f0cd7c6747519b3a222a60a7b15fb4f7
URL: https://github.com/llvm/llvm-project/commit/8ae9a204f0cd7c6747519b3a222a60a7b15fb4f7 DIFF: https://github.com/llvm/llvm-project/commit/8ae9a204f0cd7c6747519b3a222a60a7b15fb4f7.diff LOG: [Clang][Driver] Only enable internalization for OpenMP target offloading with ThinLTO on AMDGPU (#138547) Added: Modified: clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/hip-options.hip 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 093f6fe9d5c77..b2e0e5c857228 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -9284,12 +9284,6 @@ void LinkerWrapper::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back(Args.MakeArgString( "--device-linker=" + TC->getTripleString() + "=" + Arg)); - // Enable internalization for AMDGPU. - if (TC->getTriple().isAMDGPU()) - CmdArgs.push_back( - Args.MakeArgString("--device-linker=" + TC->getTripleString() + - "=-plugin-opt=-amdgpu-internalize-symbols")); - // Forward the LTO mode relying on the Driver's parsing. if (C.getDriver().getOffloadLTOMode() == LTOK_Full) CmdArgs.push_back(Args.MakeArgString( @@ -9304,6 +9298,11 @@ void LinkerWrapper::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back( Args.MakeArgString("--device-linker=" + TC->getTripleString() + "=-plugin-opt=-avail-extern-to-local")); + if (Kind == Action::OFK_OpenMP) { + CmdArgs.push_back( + Args.MakeArgString("--device-linker=" + TC->getTripleString() + + "=-plugin-opt=-amdgpu-internalize-symbols")); + } } } } diff --git a/clang/test/Driver/hip-options.hip b/clang/test/Driver/hip-options.hip index 2a4d7d2cfd8bb..a07dca3638565 100644 --- a/clang/test/Driver/hip-options.hip +++ b/clang/test/Driver/hip-options.hip @@ -259,9 +259,3 @@ // RUN: --offload-arch=gfx1100 --offload-new-driver --offload-jobs=0x4 %s 2>&1 | \ // RUN: FileCheck -check-prefix=INVJOBS %s // INVJOBS: clang: error: invalid integral value '0x4' in '--offload-jobs=0x4' - -// Check that internalization is enabled for offloading on AMDGPU. -// RUN: %clang -### -Werror --target=x86_64-unknown-linux-gnu -nogpuinc -nogpulib \ -// RUN: --offload-arch=gfx1100 --offload-new-driver %s 2>&1 | \ -// RUN: FileCheck -check-prefix=INTERNALIZATION %s -// INTERNALIZATION: --device-linker=amdgcn-amd-amdhsa=-plugin-opt=-amdgpu-internalize-symbols diff --git a/clang/test/Driver/openmp-offload-gpu.c b/clang/test/Driver/openmp-offload-gpu.c index 73dc5a7f75d5b..f67c2173cb144 100644 --- a/clang/test/Driver/openmp-offload-gpu.c +++ b/clang/test/Driver/openmp-offload-gpu.c @@ -388,15 +388,9 @@ // 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 +// THINLTO-GFX906-SAME: --device-linker=amdgcn-amd-amdhsa=-plugin-opt=-amdgpu-internalize-symbols // // 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 - -// Check that internalization is enabled for OpenMP offloading on AMDGPU. -// -// RUN: %clang -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp \ -// RUN: --offload-arch=gfx906 -nogpulib -nogpuinc %s 2>&1 \ -// RUN: | FileCheck --check-prefix=INTERNALIZATION-GFX906 %s -// INTERNALIZATION-GFX906: --device-linker=amdgcn-amd-amdhsa=-plugin-opt=-amdgpu-internalize-symbols _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits