Home
last modified time | relevance | path

Searched refs:whileOp (Results 1 – 17 of 17) sorted by relevance

/llvm-project/mlir/lib/Dialect/SCF/Transforms/
H A DWrapInZeroTripCheck.cpp67 scf::WhileOp whileOp, RewriterBase &rewriter, bool forceCreateCheck) { in wrapWhileLoopInZeroTripCheck() argument
70 if (!forceCreateCheck && isa<scf::YieldOp>(whileOp.getAfterBody()->front())) { in wrapWhileLoopInZeroTripCheck()
71 return whileOp; in wrapWhileLoopInZeroTripCheck()
77 Block *beforeBlock = whileOp.getBeforeBody(); in wrapWhileLoopInZeroTripCheck()
80 llvm::zip_equal(beforeBlock->getArguments(), whileOp.getInits())) { in wrapWhileLoopInZeroTripCheck()
83 rewriter.setInsertionPoint(whileOp); in wrapWhileLoopInZeroTripCheck()
93 scf::ConditionOp condOp = whileOp.getConditionOp(); in wrapWhileLoopInZeroTripCheck()
100 whileOp.getLoc(), whileOp.getResultTypes(), clonedCondArgs, in wrapWhileLoopInZeroTripCheck()
104 rewriter.mergeBlocks(whileOp.getAfterBody(), newBlock, args); in wrapWhileLoopInZeroTripCheck()
106 rewriter.mergeBlocks(whileOp.getBeforeBody(), newBlock, in wrapWhileLoopInZeroTripCheck()
[all …]
H A DForToWhile.cpp53 auto whileOp = rewriter.create<WhileOp>(forOp.getLoc(), lcvTypes, initArgs, in matchAndRewrite() local
59 &whileOp.getBefore(), whileOp.getBefore().begin(), lcvTypes, lcvLocs); in matchAndRewrite()
60 rewriter.setInsertionPointToStart(whileOp.getBeforeBody()); in matchAndRewrite()
62 whileOp.getLoc(), arith::CmpIPredicate::slt, in matchAndRewrite()
64 rewriter.create<scf::ConditionOp>(whileOp.getLoc(), cmpOp.getResult(), in matchAndRewrite()
71 &whileOp.getAfter(), whileOp.getAfter().begin(), lcvTypes, lcvLocs); in matchAndRewrite()
76 whileOp.getLoc(), afterBlock->getArgument(0), forOp.getStep()); in matchAndRewrite()
102 whileOp in matchAndRewrite()
[all...]
H A DBufferizableOpInterfaceImpl.cpp100 auto whileOp = cast<scf::WhileOp>(conditionOp->getParentOp()); in bufferize() local
110 whileOp.getAfterArguments()[it.index()], options); in bufferize()
833 auto whileOp = cast<scf::WhileOp>(op); in getAliasingValues()
843 OpResult opResult = whileOp->getResult(idx);
855 auto whileOp = cast<scf::WhileOp>(op); in bufferRelation()
858 if (resultNumber >= whileOp.getBeforeArguments().size()) in bufferRelation()
861 whileOp.getBeforeArguments()[resultNumber].getType()) in bufferRelation()
864 auto conditionOp = whileOp.getConditionOp(); in bufferRelation()
865 BlockArgument conditionBbArg = whileOp.getBeforeArguments()[resultNumber]; in bufferRelation()
870 auto yieldOp = whileOp in bufferRelation()
828 auto whileOp = cast<scf::WhileOp>(op); getAliasingValues() local
850 auto whileOp = cast<scf::WhileOp>(op); bufferRelation() local
903 auto whileOp = cast<scf::WhileOp>(op); resolveConflicts() local
940 auto whileOp = cast<scf::WhileOp>(op); bufferize() local
1022 auto whileOp = cast<scf::WhileOp>(op); getBufferType() local
1070 auto whileOp = cast<scf::WhileOp>(op); verifyAnalysis() local
1164 } else if (auto whileOp = bufferize() local
[all...]
/llvm-project/mlir/lib/Conversion/SCFToControlFlow/
H A DSCFToControlFlow.cpp281 LogicalResult matchAndRewrite(WhileOp whileOp,
292 LogicalResult matchAndRewrite(WhileOp whileOp,
557 LogicalResult WhileLowering::matchAndRewrite(WhileOp whileOp, in matchAndRewrite()
560 Location loc = whileOp.getLoc(); in matchAndRewrite()
568 Block *after = whileOp.getAfterBody(); in matchAndRewrite()
569 Block *before = whileOp.getBeforeBody(); in matchAndRewrite()
570 rewriter.inlineRegionBefore(whileOp.getAfter(), continuation); in matchAndRewrite()
571 rewriter.inlineRegionBefore(whileOp.getBefore(), after); in matchAndRewrite()
575 rewriter.create<cf::BranchOp>(loc, before, whileOp.getInits()); in matchAndRewrite()
593 rewriter.replaceOp(whileOp, condO in matchAndRewrite()
544 matchAndRewrite(WhileOp whileOp,PatternRewriter & rewriter) const matchAndRewrite() argument
586 matchAndRewrite(WhileOp whileOp,PatternRewriter & rewriter) const matchAndRewrite() argument
[all...]
/llvm-project/mlir/test/lib/Dialect/SCF/
H A DTestWhileOpBuilder.cpp46 func.walk([&](WhileOp whileOp) { in runOnOperation() argument
47 Location loc = whileOp->getLoc(); in runOnOperation()
48 ImplicitLocOpBuilder builder(loc, whileOp); in runOnOperation()
51 TypeRange resultTypes = whileOp->getResultTypes(); in runOnOperation()
52 ValueRange operands = whileOp->getOperands(); in runOnOperation()
/llvm-project/flang/lib/Optimizer/Transforms/
H A DControlFlowConverter.cpp232 matchAndRewrite(fir::IterWhileOp whileOp, in matchAndRewrite() argument
234 auto loc = whileOp.getLoc(); in matchAndRewrite()
253 auto *conditionBlock = &whileOp.getRegion().front(); in matchAndRewrite()
256 auto *lastBodyBlock = &whileOp.getRegion().back(); in matchAndRewrite()
257 rewriter.inlineRegionBefore(whileOp.getRegion(), endBlock); in matchAndRewrite()
266 auto step = whileOp.getStep(); in matchAndRewrite()
273 auto begin = whileOp.getFinalValue() in matchAndRewrite()
282 auto lowerBound = whileOp.getLowerBound(); in matchAndRewrite()
283 auto upperBound = whileOp.getUpperBound(); in matchAndRewrite()
290 auto iterOperands = whileOp in matchAndRewrite()
[all...]
/llvm-project/mlir/lib/Dialect/SparseTensor/Transforms/
H A DSparseIterationToScf.cpp158 auto whileOp = rewriter.create<scf::WhileOp>(loc, types, ivs); in matchAndRewrite()
163 Block *before = rewriter.createBlock(&whileOp.getBefore(), {}, types, l); in matchAndRewrite()
170 Region &dstRegion = whileOp.getAfter(); in matchAndRewrite()
172 ValueRange aArgs = whileOp.getAfterArguments(); in matchAndRewrite()
186 return whileOp.getResults().drop_front(it->getCursor().size()); in SparseIterationTypeConverter()
130 auto whileOp = rewriter.create<scf::WhileOp>(loc, types, ivs); matchAndRewrite() local
H A DSparseBufferRewriting.cpp340 scf::WhileOp whileOp = builder.create<scf::WhileOp>( in createBinarySearchFunc()
345 builder.createBlock(&whileOp.getBefore(), {}, types, {loc, loc}); in createBinarySearchFunc()
354 builder.createBlock(&whileOp.getAfter(), {}, types, {loc, loc}); in createBinarySearchFunc()
379 builder.setInsertionPointAfter(whileOp); in createBinarySearchFunc()
380 builder.create<func::ReturnOp>(loc, whileOp.getResult(0)); in createBinarySearchFunc()
395 scf::WhileOp whileOp = in createScanLoop()
399 builder.createBlock(&whileOp.getBefore(), {}, {i.getType()}, {loc}); in createScanLoop()
415 builder.createBlock(&whileOp.getAfter(), {}, {i.getType()}, {loc}); in createScanLoop()
420 i = whileOp.getResult(0); in createScanLoop()
422 builder.setInsertionPointAfter(whileOp); in createScanLoop()
341 scf::WhileOp whileOp = builder.create<scf::WhileOp>( createBinarySearchFunc() local
396 scf::WhileOp whileOp = createScanLoop() local
604 scf::WhileOp whileOp = builder.create<scf::WhileOp>(loc, types, operands); createPartitionFunc() local
807 scf::WhileOp whileOp = builder.create<scf::WhileOp>( createShiftDownFunc() local
1130 scf::WhileOp whileOp = createQuickSortFunc() local
1336 scf::WhileOp whileOp = matchAndRewrite() local
[all...]
H A DSparsification.cpp1244 } else if (auto whileOp = dyn_cast<scf::WhileOp>(loop)) { in genStmt()
1207 } else if (auto whileOp = dyn_cast<scf::WhileOp>(loop)) { endLoop() local
/llvm-project/mlir/lib/Conversion/ControlFlowToSCF/
H A DControlFlowToSCF.cpp88 auto whileOp = builder.create<scf::WhileOp>(loc, loopVariablesInit.getTypes(), in createStructuredDoWhileLoopOp()
91 whileOp.getBefore().takeBody(loopBody); in createStructuredDoWhileLoopOp()
93 builder.setInsertionPointToEnd(&whileOp.getBefore().back()); in createStructuredDoWhileLoopOp()
100 Block *afterBlock = builder.createBlock(&whileOp.getAfter()); in createStructuredDoWhileLoopOp()
106 return whileOp.getOperation(); in createStructuredDoWhileLoopOp()
89 auto whileOp = builder.create<scf::WhileOp>(loc, loopVariablesInit.getTypes(), createStructuredDoWhileLoopOp() local
/llvm-project/mlir/lib/Conversion/SCFToSPIRV/
H A DSCFToSPIRV.cpp340 matchAndRewrite(scf::WhileOp whileOp, OpAdaptor adaptor, in matchAndRewrite()
342 auto loc = whileOp.getLoc(); in matchAndRewrite()
346 Region &beforeRegion = whileOp.getBefore(); in matchAndRewrite()
347 Region &afterRegion = whileOp.getAfter(); in matchAndRewrite()
351 return rewriter.notifyMatchFailure(whileOp, in matchAndRewrite()
429 rewriter.replaceOp(whileOp, resultValues); in matchAndRewrite()
/llvm-project/mlir/lib/Dialect/SparseTensor/Transforms/Utils/
H A DLoopEmitter.cpp807 auto whileOp = llvm::cast<scf::WhileOp>(loopInfo.loop); in exitWhileLoop()
817 ValueRange whileRes = whileOp.getResults(); in exitWhileLoop()
826 // const Value newPos = whileOp->getResult(o++); in exitWhileLoop()
833 Value uniIdx = whileOp.getResults().back(); in exitWhileLoop()
847 if (operands.size() < whileOp.getNumResults()) { in exitWhileLoop()
848 assert(operands.size() + 1 == whileOp.getNumResults()); in exitWhileLoop()
852 loopSeqStack.back().first = whileOp->getResults().back(); in exitWhileLoop()
858 builder.setInsertionPointAfter(whileOp); in exitWhileLoop()
935 auto whileOp = builder.create<scf::WhileOp>(loc, types, ivs);
938 Block *before = builder.createBlock(&whileOp
548 auto whileOp = builder.create<scf::WhileOp>(loc, types, ivs); emitWhileLoopOverTensorsAtLvls() local
810 auto whileOp = llvm::cast<scf::WhileOp>(loopInfo.loop); exitWhileLoop() local
[all...]
H A DSparseTensorIterator.cpp1061 auto whileOp = b.create<scf::WhileOp>( in genSegmentHigh() local
1087 return whileOp.getResult(0); in genSegmentHigh()
1143 auto whileOp = b.create<scf::WhileOp>( in forwardImpl() local
1172 b.setInsertionPointAfter(whileOp); in forwardImpl()
1173 linkNewScope(whileOp.getResults()); in forwardImpl()
1243 auto whileOp = b.create<scf::WhileOp>( in inflateSubSectTree() local
1262 ValueRange res = helper.wrap.linkNewScope(whileOp.getResults()); in inflateSubSectTree()
/llvm-project/mlir/lib/Dialect/Tosa/Transforms/
H A DTosaInferShapes.cpp173 WhileOp whileOp = dyn_cast<WhileOp>(op); in propagateShapesToTosaWhile()
174 if (!whileOp) in propagateShapesToTosaWhile()
321 WhileOp whileOp = dyn_cast<WhileOp>(op);
323 if (whileOp || ifOp) {
324 // recurse into whileOp's regions
155 WhileOp whileOp = dyn_cast<WhileOp>(op); propagateShapesToTosaWhile() local
/llvm-project/mlir/include/mlir/Dialect/SCF/Transforms/
H A DTransforms.h234 /// place or the input `whileOp` if the loop was already in a `do-while` form
236 FailureOr<WhileOp> wrapWhileLoopInZeroTripCheck(WhileOp whileOp,
/llvm-project/mlir/lib/Dialect/Async/Transforms/
H A DAsyncParallelFor.cpp511 scf::WhileOp whileOp = b.create<scf::WhileOp>(types, operands); in createAsyncDispatchFunction()
512 Block *before = b.createBlock(&whileOp.getBefore(), {}, types, locations); in createAsyncDispatchFunction()
513 Block *after = b.createBlock(&whileOp.getAfter(), {}, types, locations); in createAsyncDispatchFunction()
560 b.setInsertionPointAfter(whileOp); in createAsyncDispatchFunction()
516 scf::WhileOp whileOp = b.create<scf::WhileOp>(types, operands); createAsyncDispatchFunction() local
/llvm-project/mlir/lib/Dialect/SCF/IR/
H A DSCF.cpp298 WhileOp whileOp = getParentOp(); in getSuccessorRegions() local
304 regions.emplace_back(&whileOp.getAfter(), in getSuccessorRegions()
305 whileOp.getAfter().getArguments()); in getSuccessorRegions()
307 regions.emplace_back(whileOp.getResults()); in getSuccessorRegions()