Lines Matching refs:ForOp
40 scf::ForOp
41 mlir::replaceLoopWithNewYields(OpBuilder &builder, scf::ForOp loop, in replaceLoopWithNewYields()
49 scf::ForOp newLoop = builder.create<scf::ForOp>( in replaceLoopWithNewYields()
105 SmallVector<scf::ForOp> mlir::replaceLoopNestWithNewYields( in replaceLoopNestWithNewYields()
106 OpBuilder &builder, ArrayRef<scf::ForOp> loopNest, in replaceLoopNestWithNewYields()
110 SmallVector<scf::ForOp> newLoopNest(loopNest.size()); in replaceLoopNestWithNewYields()
319 static void replaceIterArgsAndYieldResults(scf::ForOp forOp) { in replaceIterArgsAndYieldResults()
335 LogicalResult mlir::promoteIfSingleIteration(scf::ForOp forOp) { in promoteIfSingleIteration()
419 scf::ForOp forOp, uint64_t unrollFactor, in loopUnrollByFactor()
502 auto epilogueForOp = cast<scf::ForOp>(epilogueBuilder.clone(*forOp)); in loopUnrollByFactor()
600 static void normalizeLoop(scf::ForOp loop, scf::ForOp outer, scf::ForOp inner) { in normalizeLoop()
612 void mlir::coalesceLoops(MutableArrayRef<scf::ForOp> loops) { in coalesceLoops()
616 scf::ForOp innermost = loops.back(); in coalesceLoops()
617 scf::ForOp outermost = loops.front(); in coalesceLoops()
660 scf::ForOp second = loops[1]; in coalesceLoops()
756 static LogicalResult hoistOpsBetween(scf::ForOp outer, scf::ForOp inner) { in hoistOpsBetween()
773 if (isa<scf::ForOp>(op)) in hoistOpsBetween()
835 static Loops stripmineSink(scf::ForOp forOp, Value factor, in stripmineSink()
836 ArrayRef<scf::ForOp> targets) { in stripmineSink()
858 auto newForOp = b.create<scf::ForOp>(t.getLoc(), iv, ub, originalStep); in stripmineSink()
874 static scf::ForOp stripmineSink(scf::ForOp forOp, SizeType factor, in stripmineSink()
875 scf::ForOp target) { in stripmineSink()
880 auto res = stripmineSink(forOp, factor, ArrayRef<scf::ForOp>(target)); in stripmineSink()
885 SmallVector<Loops, 8> mlir::tile(ArrayRef<scf::ForOp> forOps, in tile()
887 ArrayRef<scf::ForOp> targets) { in tile()
888 SmallVector<SmallVector<scf::ForOp, 8>, 8> res; in tile()
889 SmallVector<scf::ForOp, 8> currentTargets(targets.begin(), targets.end()); in tile()
898 Loops mlir::tile(ArrayRef<scf::ForOp> forOps, ArrayRef<Value> sizes, in tile()
899 scf::ForOp target) { in tile()
900 SmallVector<scf::ForOp, 8> res; in tile()
901 for (auto loops : tile(forOps, sizes, ArrayRef<scf::ForOp>(target))) { in tile()
908 Loops mlir::tilePerfectlyNested(scf::ForOp rootForOp, ArrayRef<Value> sizes) { in tilePerfectlyNested()
911 SmallVector<scf::ForOp, 4> forOps; in tilePerfectlyNested()
920 void mlir::getPerfectlyNestedLoops(SmallVectorImpl<scf::ForOp> &nestedLoops, in getPerfectlyNestedLoops()
921 scf::ForOp root) { in getPerfectlyNestedLoops()
925 TileLoops mlir::extractFixedOuterLoops(scf::ForOp rootForOp, in extractFixedOuterLoops()
929 SmallVector<scf::ForOp, 4> forOps; in extractFixedOuterLoops()