[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)
Sergio Afonso via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Aug 8 03:03:26 PDT 2024
================
@@ -1825,11 +1843,17 @@ LogicalResult DistributeOp::verify() {
return emitOpError() << "must be a loop wrapper";
if (LoopWrapperInterface nested = getNestedWrapper()) {
+ if (!llvm::cast<ComposableOpInterface>(getOperation()).isComposite())
+ return emitError()
+ << "'omp.composite' attribute missing from composite wrapper";
// Check for the allowed leaf constructs that may appear in a composite
// construct directly after DISTRIBUTE.
if (!isa<ParallelOp, SimdOp>(nested))
return emitError() << "only supported nested wrappers are 'omp.parallel' "
"and 'omp.simd'";
+ } else if (llvm::cast<ComposableOpInterface>(getOperation()).isComposite()) {
----------------
skatrak wrote:
This is fine, because when `distribute` is part of a composite construct it always has other leaf constructs after it (we don't have to consider the case of it being the last leaf). Same situation with `taskloop`.
https://github.com/llvm/llvm-project/pull/102341
More information about the llvm-branch-commits
mailing list