[clang] [llvm] [OpenMP][Clang] Add no-loop SPMD kernel promotion (PR #205325)

Robert Imschweiler via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 23 09:28:08 PDT 2026


================
@@ -746,9 +758,14 @@ void CGOpenMPRuntimeGPU::emitKernelInit(const OMPExecutableDirective &D,
                                         CodeGenFunction &CGF,
                                         EntryFunctionState &EST, bool IsSPMD) {
   llvm::OpenMPIRBuilder::TargetKernelDefaultAttrs Attrs;
-  Attrs.ExecFlags =
-      IsSPMD ? llvm::omp::OMPTgtExecModeFlags::OMP_TGT_EXEC_MODE_SPMD
-             : llvm::omp::OMPTgtExecModeFlags::OMP_TGT_EXEC_MODE_GENERIC;
+  if (IsSPMD && canPromoteToNoLoop(CGM.getLangOpts(), D))
+    Attrs.ExecFlags =
----------------
ro-i wrote:

You set the exec flag, which optimizes the grid size selection, but you didn't actually change the codegen, no? Do you plan this as part of another PR?

https://github.com/llvm/llvm-project/pull/205325


More information about the cfe-commits mailing list