Lines Matching refs:forOp

111 static LogicalResult peelForLoop(RewriterBase &b, ForOp forOp,  in peelForLoop()  argument
114 auto lbInt = getConstantIntValue(forOp.getLowerBound()); in peelForLoop()
115 auto ubInt = getConstantIntValue(forOp.getUpperBound()); in peelForLoop()
116 auto stepInt = getConstantIntValue(forOp.getStep()); in peelForLoop()
125 auto loc = forOp.getLoc(); in peelForLoop()
130 b.setInsertionPoint(forOp); in peelForLoop()
132 ValueRange{forOp.getLowerBound(), in peelForLoop()
133 forOp.getUpperBound(), in peelForLoop()
134 forOp.getStep()}); in peelForLoop()
137 b.setInsertionPointAfter(forOp); in peelForLoop()
138 partialIteration = cast<ForOp>(b.clone(*forOp.getOperation())); in peelForLoop()
140 forOp.replaceAllUsesWith(partialIteration->getResults()); in peelForLoop()
141 partialIteration.getInitArgsMutable().assign(forOp->getResults()); in peelForLoop()
145 forOp, [&]() { forOp.getUpperBoundMutable().assign(splitBound); }); in peelForLoop()
151 static void rewriteAffineOpAfterPeeling(RewriterBase &rewriter, ForOp forOp, in rewriteAffineOpAfterPeeling() argument
154 Value mainIv = forOp.getInductionVar(); in rewriteAffineOpAfterPeeling()
156 assert(forOp.getStep() == partialIteration.getStep() && in rewriteAffineOpAfterPeeling()
158 Value step = forOp.getStep(); in rewriteAffineOpAfterPeeling()
160 forOp.walk([&](OpTy affineOp) { in rewriteAffineOpAfterPeeling()
176 ForOp forOp, in peelAndCanonicalizeForLoop() argument
178 Value previousUb = forOp.getUpperBound(); in peelAndCanonicalizeForLoop()
180 if (failed(peelForLoop(rewriter, forOp, partialIteration, splitBound))) in peelAndCanonicalizeForLoop()
185 rewriter, forOp, partialIteration, previousUb); in peelAndCanonicalizeForLoop()
187 rewriter, forOp, partialIteration, previousUb); in peelAndCanonicalizeForLoop()
200 LogicalResult matchAndRewrite(ForOp forOp, in matchAndRewrite()
203 if (forOp->hasAttr(kPeeledLoopLabel)) in matchAndRewrite()
208 Operation *op = forOp.getOperation(); in matchAndRewrite()
216 if (failed(peelAndCanonicalizeForLoop(rewriter, forOp, partialIteration))) in matchAndRewrite()
220 rewriter.updateRootInPlace(forOp, [&]() { in matchAndRewrite()
221 forOp->setAttr(kPeeledLoopLabel, rewriter.getUnitAttr()); in matchAndRewrite()