[clang] f366045 - [OpenMP][amdgpu] Use max teams for amdgpu-max-num-workgroups (#195203)
via cfe-commits
cfe-commits at lists.llvm.org
Wed May 6 10:22:03 PDT 2026
Author: Kevin Sala Penades
Date: 2026-05-06T10:21:57-07:00
New Revision: f366045a8859f43faec8a51f6636073118cbfd57
URL: https://github.com/llvm/llvm-project/commit/f366045a8859f43faec8a51f6636073118cbfd57
DIFF: https://github.com/llvm/llvm-project/commit/f366045a8859f43faec8a51f6636073118cbfd57.diff
LOG: [OpenMP][amdgpu] Use max teams for amdgpu-max-num-workgroups (#195203)
The min teams value was used to set the amdgpu-max-num-workgroups
attribute. This commit switches to max teams, as done for the nvptx's
attribute.
Added:
Modified:
clang/test/OpenMP/thread_limit_gpu.c
llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
Removed:
################################################################################
diff --git a/clang/test/OpenMP/thread_limit_gpu.c b/clang/test/OpenMP/thread_limit_gpu.c
index 4bcc14d070c22..4d4f9159fd4b4 100644
--- a/clang/test/OpenMP/thread_limit_gpu.c
+++ b/clang/test/OpenMP/thread_limit_gpu.c
@@ -32,8 +32,8 @@ void foo(int N) {
// CHECK-AMDGPU: attributes #[[ATTR1]] = { {{.*}} "amdgpu-flat-work-group-size"="1,256" {{.*}} }
// CHECK-AMDGPU: attributes #[[ATTR2]] = { {{.*}} "amdgpu-flat-work-group-size"="1,4" {{.*}} }
-// CHECK-AMDGPU: attributes #[[ATTR3]] = { {{.*}} "amdgpu-flat-work-group-size"="1,42" "amdgpu-max-num-workgroups"="42,1,1"{{.*}} }
-// CHECK-AMDGPU: attributes #[[ATTR4]] = { {{.*}} "amdgpu-flat-work-group-size"="1,22" "amdgpu-max-num-workgroups"="42,1,1"{{.*}} }
+// CHECK-AMDGPU: attributes #[[ATTR3]] = { {{.*}} "amdgpu-flat-work-group-size"="1,42" {{.*}} }
+// CHECK-AMDGPU: attributes #[[ATTR4]] = { {{.*}} "amdgpu-flat-work-group-size"="1,22" {{.*}} }
// CHECK-SPIRV: attributes #[[ATTR1]] = { {{.*}} "omp_target_thread_limit"="256" {{.*}} }
// CHECK-SPIRV: attributes #[[ATTR2]] = { {{.*}} "omp_target_thread_limit"="4" {{.*}} }
diff --git a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
index e59e44df4ce91..f00b4df505736 100644
--- a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+++ b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
@@ -8347,11 +8347,12 @@ OpenMPIRBuilder::readTeamBoundsForKernel(const Triple &, Function &Kernel) {
void OpenMPIRBuilder::writeTeamsForKernel(const Triple &T, Function &Kernel,
int32_t LB, int32_t UB) {
- if (T.isNVPTX())
- if (UB > 0)
+ if (UB > 0) {
+ if (T.isNVPTX())
Kernel.addFnAttr(NVVMAttr::MaxClusterRank, llvm::utostr(UB));
- if (T.isAMDGPU())
- Kernel.addFnAttr("amdgpu-max-num-workgroups", llvm::utostr(LB) + ",1,1");
+ if (T.isAMDGPU())
+ Kernel.addFnAttr("amdgpu-max-num-workgroups", llvm::utostr(UB) + ",1,1");
+ }
Kernel.addFnAttr("omp_target_num_teams", std::to_string(LB));
}
More information about the cfe-commits
mailing list