Skip to content

Commit 5653ae0

Browse files
committed
Address review comments
1 parent dc1ac96 commit 5653ae0

File tree

1 file changed

+8
-16
lines changed

1 file changed

+8
-16
lines changed

mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2053,24 +2053,16 @@ TargetRegionFlags TargetOp::getKernelExecFlags(Operation *capturedOp) {
20532053
if (!isa_and_present<LoopNestOp>(capturedOp))
20542054
return TargetRegionFlags::generic;
20552055

2056-
auto getInnermostWrapper = [](LoopNestOp loopOp, int &numWrappers) {
2057-
SmallVector<LoopWrapperInterface> wrappers;
2058-
loopOp.gatherWrappers(wrappers);
2059-
assert(!wrappers.empty());
2060-
2061-
// Ignore optional SIMD leaf construct.
2062-
auto *wrapper = wrappers.begin();
2063-
if (isa<SimdOp>(wrapper))
2064-
wrapper = std::next(wrapper);
2065-
2066-
numWrappers = static_cast<int>(std::distance(wrapper, wrappers.end()));
2067-
return wrapper;
2068-
};
2056+
// Get the innermost non-simd loop wrapper.
2057+
SmallVector<LoopWrapperInterface> loopWrappers;
2058+
cast<LoopNestOp>(capturedOp).gatherWrappers(loopWrappers);
2059+
assert(!loopWrappers.empty());
20692060

2070-
int numWrappers;
2071-
LoopWrapperInterface *innermostWrapper =
2072-
getInnermostWrapper(cast<LoopNestOp>(capturedOp), numWrappers);
2061+
LoopWrapperInterface *innermostWrapper = loopWrappers.begin();
2062+
if (isa<SimdOp>(innermostWrapper))
2063+
innermostWrapper = std::next(innermostWrapper);
20732064

2065+
auto numWrappers = std::distance(innermostWrapper, loopWrappers.end());
20742066
if (numWrappers != 1 && numWrappers != 2)
20752067
return TargetRegionFlags::generic;
20762068

0 commit comments

Comments
 (0)