[Mlir-commits] [mlir] [MLIR][OpenMP] Fix standalone distribute on the device (PR #133094)
Michael Kruse
llvmlistbot at llvm.org
Wed Mar 26 16:14:14 PDT 2025
================
@@ -4646,7 +4646,17 @@ initTargetDefaultAttrs(omp::TargetOp targetOp, Operation *capturedOp,
combinedMaxThreadsVal = maxThreadsVal;
// Update kernel bounds structure for the `OpenMPIRBuilder` to use.
- attrs.ExecFlags = targetOp.getKernelExecFlags(capturedOp);
+ omp::TargetRegionFlags kernelFlags = targetOp.getKernelExecFlags(capturedOp);
+ assert(
+ omp::bitEnumContainsAny(kernelFlags, omp::TargetRegionFlags::generic |
+ omp::TargetRegionFlags::spmd) &&
+ "invalid kernel flags");
+ attrs.ExecFlags =
+ omp::bitEnumContainsAny(kernelFlags, omp::TargetRegionFlags::generic)
+ ? omp::bitEnumContainsAny(kernelFlags, omp::TargetRegionFlags::spmd)
+ ? llvm::omp::OMP_TGT_EXEC_MODE_GENERIC_SPMD
+ : llvm::omp::OMP_TGT_EXEC_MODE_GENERIC
+ : llvm::omp::OMP_TGT_EXEC_MODE_SPMD;
----------------
Meinersbur wrote:
What happens if a `trip_count` hits here (or why isn' it possible)?
https://github.com/llvm/llvm-project/pull/133094
More information about the Mlir-commits
mailing list