[clang] [Clang][AMDGPU] Search both amdgcn and amdgpu libraries (PR #209770)

Joseph Huber via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 15 07:22:45 PDT 2026


https://github.com/jhuber6 created https://github.com/llvm/llvm-project/pull/209770

Summary:
Temporary workaround as we transition triples from amdgcn to amdgpu.


>From bd1bbcf0d38fed43f76b6894321e2ab4098b02f1 Mon Sep 17 00:00:00 2001
From: Joseph Huber <huberjn at outlook.com>
Date: Wed, 15 Jul 2026 09:11:52 -0500
Subject: [PATCH] [Clang][AMDGPU] Search both amdgcn and amdgpu libraries

Summary:
Temporary workaround as we transition triples from amdgcn to amdgpu.
---
 clang/lib/Driver/ToolChain.cpp                            | 8 ++++++++
 .../lib/amdgpu-amd-amdhsa/libclang_rt.profile.a           | 0
 clang/test/Driver/amdgpu-toolchain.c                      | 6 ++++++
 3 files changed, 14 insertions(+)
 create mode 100644 clang/test/Driver/Inputs/resource_dir_with_amdgpu_per_target_subdir/lib/amdgpu-amd-amdhsa/libclang_rt.profile.a

diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index f894a0635de13..53e4583e5d9d0 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -1122,6 +1122,14 @@ ToolChain::getTargetSubDirPath(StringRef BaseDir) const {
   if (auto Path = getPathForTriple(T))
     return *Path;
 
+  // Handle the legacy AMDGPU triple case as well.
+  if (T.getArchName() == "amdgcn") {
+    llvm::Triple Canon(T);
+    Canon.setArchName("amdgpu");
+    if (auto Path = getPathForTriple(Canon))
+      return *Path;
+  }
+
   if (T.isOSAIX()) {
     llvm::Triple AIXTriple;
     if (T.getEnvironment() == Triple::UnknownEnvironment) {
diff --git a/clang/test/Driver/Inputs/resource_dir_with_amdgpu_per_target_subdir/lib/amdgpu-amd-amdhsa/libclang_rt.profile.a b/clang/test/Driver/Inputs/resource_dir_with_amdgpu_per_target_subdir/lib/amdgpu-amd-amdhsa/libclang_rt.profile.a
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/amdgpu-toolchain.c b/clang/test/Driver/amdgpu-toolchain.c
index 78b76aa8bc8c5..cb49e7311445c 100644
--- a/clang/test/Driver/amdgpu-toolchain.c
+++ b/clang/test/Driver/amdgpu-toolchain.c
@@ -71,3 +71,9 @@
 // RUN:   | FileCheck -check-prefixes=UBSAN %s
 //      UBSAN: ld.lld
 // UBSAN-SAME: "[[RESOURCE_DIR:.+]]{{/|\\\\}}lib{{/|\\\\}}amdgcn-amd-amdhsa{{/|\\\\}}libclang_rt.ubsan_minimal.a"
+
+// RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx906 -nogpulib \
+// RUN:   -resource-dir=%S/Inputs/resource_dir_with_amdgpu_per_target_subdir \
+// RUN:   -fprofile-generate %s 2>&1 | FileCheck -check-prefixes=PROFILE-AMDGPU %s
+//      PROFILE-AMDGPU: ld.lld
+// PROFILE-AMDGPU-SAME: "[[RESOURCE_DIR:.+]]{{/|\\\\}}lib{{/|\\\\}}amdgpu-amd-amdhsa{{/|\\\\}}libclang_rt.profile.a"



More information about the cfe-commits mailing list