/llvm-project/mlir/lib/Dialect/SCF/Transforms/ |
H A D | WrapInZeroTripCheck.cpp | 67 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 D | ForToWhile.cpp | 53 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 D | BufferizableOpInterfaceImpl.cpp | 100 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 D | SCFToControlFlow.cpp | 281 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 D | TestWhileOpBuilder.cpp | 46 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 D | ControlFlowConverter.cpp | 232 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 D | SparseIterationToScf.cpp | 158 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 D | SparseBufferRewriting.cpp | 340 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 D | Sparsification.cpp | 1244 } 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 D | ControlFlowToSCF.cpp | 88 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 D | SCFToSPIRV.cpp | 340 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 D | LoopEmitter.cpp | 807 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 D | SparseTensorIterator.cpp | 1061 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 D | TosaInferShapes.cpp | 173 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 D | Transforms.h | 234 /// 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 D | AsyncParallelFor.cpp | 511 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 D | SCF.cpp | 298 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()
|