Lines Matching refs:Rewriter
132 void simplifyAndExtend(Loop *L, SCEVExpander &Rewriter, LoopInfo *LI);
135 void rewriteLoopExitValues(Loop *L, SCEVExpander &Rewriter);
138 PHINode *IndVar, SCEVExpander &Rewriter);
142 Value *expandSCEVIfNeeded(SCEVExpander &Rewriter, const SCEV *S, Loop *L,
162 /// Return true if the SCEV expansion generated by the rewriter can replace the
514 Value *IndVarSimplify::expandSCEVIfNeeded(SCEVExpander &Rewriter, const SCEV *S,
519 if (Value *ExistingValue = Rewriter.findExistingExpansion(S, InsertPt, L))
524 return Rewriter.expandCodeFor(S, ResultTy, InsertPt);
542 void IndVarSimplify::rewriteLoopExitValues(Loop *L, SCEVExpander &Rewriter) {
659 bool HighCost = Rewriter.isHighCostExpansion(ExitValue, L, Inst);
661 expandSCEVIfNeeded(Rewriter, ExitValue, L, Inst, PN->getType());
711 // so that the rewriter doesn't trip over it later.
712 Rewriter.clearInsertPoint();
890 PHINode *createWideIV(SCEVExpander &Rewriter);
908 Instruction *widenIVUse(NarrowIVDefUse DU, SCEVExpander &Rewriter);
1232 Instruction *WidenIV::widenIVUse(NarrowIVDefUse DU, SCEVExpander &Rewriter) {
1321 && Rewriter.hoistIVInc(WideInc, DU.NarrowUse))
1372 PHINode *WidenIV::createWideIV(SCEVExpander &Rewriter) {
1398 // The rewriter provides a value for the desired IV expression. This may
1403 WidePhi = cast<PHINode>(Rewriter.expandCodeFor(AddRec, WideType, InsertPt));
1429 Instruction *WideUse = widenIVUse(DU, Rewriter);
1482 SCEVExpander &Rewriter,
1516 if (PHINode *WidePhi = Widener.createWideIV(Rewriter)) {
1542 SCEVExpander &Rewriter) {
1555 if (Rewriter.isHighCostExpansion(BackedgeTakenCount, L))
1804 SCEVExpander &Rewriter, ScalarEvolution *SE) {
1829 Value *GEPOffset = Rewriter.expandCodeFor(IVOffset, OfsTy, BI);
1880 return Rewriter.expandCodeFor(IVLimit, LimitTy, BI);
1893 SCEVExpander &Rewriter) {
1894 assert(canExpandBackedgeTakenCount(L, SE, Rewriter) && "precondition");
1915 Value *ExitCnt = genLoopLimit(IndVar, IVCount, L, Rewriter, SE);
2110 // Create a rewriter object which we'll use to transform the code with.
2111 SCEVExpander Rewriter(*SE, DL, "indvars");
2113 Rewriter.setDebugType(DEBUG_TYPE);
2122 Rewriter.disableCanonicalMode();
2123 simplifyAndExtend(L, Rewriter, LI);
2133 rewriteLoopExitValues(L, Rewriter);
2136 NumElimIV += Rewriter.replaceCongruentIVs(L, DT, DeadInsts);
2140 if (canExpandBackedgeTakenCount(L, SE, Rewriter) && needsLFTR(L, DT)) {
2154 Rewriter);
2157 // Clear the rewriter cache, because values that are in the rewriter's cache
2160 Rewriter.clear();
2169 // The Rewriter may not be used from this point on.