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)); } _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
