Author: Shilei Tian
Date: 2025-05-02T21:32:46-04:00
New Revision: 2b62a311d76cfe5cdceab73b3fe145ee50449d08

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

LOG: [Clang][Driver] Enable internalization by default for AMDGPU (#138365)

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 6dabf9d842b7b..093f6fe9d5c77 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -9284,6 +9284,12 @@ 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(

diff  --git a/clang/test/Driver/hip-options.hip 
b/clang/test/Driver/hip-options.hip
index a07dca3638565..2a4d7d2cfd8bb 100644
--- a/clang/test/Driver/hip-options.hip
+++ b/clang/test/Driver/hip-options.hip
@@ -259,3 +259,9 @@
 // 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 5ad038b7dbd37..73dc5a7f75d5b 100644
--- a/clang/test/Driver/openmp-offload-gpu.c
+++ b/clang/test/Driver/openmp-offload-gpu.c
@@ -393,3 +393,10 @@
 // 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

Reply via email to