Skip to content

Commit 3a3990c

Browse files
authored
[Flang][OpenMP] Move assert for wrapper syms and block args to genLoopNestOp (llvm#103731)
This patch adds an assert to `genLoopNestClauses` to ensure the number of symbols and corresponding loop wrapper entry block arguments have the same size. This is checked by some of the callers, but it makes more sense moving it into the function itself and avoid having to replicate it.
1 parent 7227b44 commit 3a3990c

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

flang/lib/Lower/OpenMP/OpenMP.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1371,6 +1371,9 @@ genLoopNestOp(lower::AbstractConverter &converter, lower::SymMap &symTable,
13711371
llvm::ArrayRef<const semantics::Symbol *> wrapperSyms,
13721372
llvm::ArrayRef<mlir::BlockArgument> wrapperArgs,
13731373
llvm::omp::Directive directive, DataSharingProcessor &dsp) {
1374+
assert(wrapperSyms.size() == wrapperArgs.size() &&
1375+
"Number of symbols and wrapper block arguments must match");
1376+
13741377
auto ivCallback = [&](mlir::Operation *op) {
13751378
genLoopVars(op, converter, loc, iv, wrapperSyms, wrapperArgs);
13761379
return llvm::SmallVector<const semantics::Symbol *>(iv);
@@ -2083,8 +2086,6 @@ static void genCompositeDistributeSimd(
20832086
llvm::concat<mlir::BlockArgument>(distributeOp.getRegion().getArguments(),
20842087
simdOp.getRegion().getArguments()));
20852088

2086-
assert(wrapperArgs.empty() &&
2087-
"Block args for omp.simd and omp.distribute currently not expected");
20882089
genLoopNestOp(converter, symTable, semaCtx, eval, loc, queue, item,
20892090
loopNestClauseOps, iv, /*wrapperSyms=*/{}, wrapperArgs,
20902091
llvm::omp::Directive::OMPD_distribute_simd, dsp);
@@ -2132,8 +2133,6 @@ static void genCompositeDoSimd(lower::AbstractConverter &converter,
21322133
auto wrapperArgs = llvm::to_vector(llvm::concat<mlir::BlockArgument>(
21332134
wsloopOp.getRegion().getArguments(), simdOp.getRegion().getArguments()));
21342135

2135-
assert(wsloopReductionSyms.size() == wrapperArgs.size() &&
2136-
"Number of symbols and wrapper block arguments must match");
21372136
genLoopNestOp(converter, symTable, semaCtx, eval, loc, queue, item,
21382137
loopNestClauseOps, iv, wsloopReductionSyms, wrapperArgs,
21392138
llvm::omp::Directive::OMPD_do_simd, dsp);

0 commit comments

Comments
 (0)