Lines Matching refs:SE
52 canFoldTermCondOfLoop(Loop *L, ScalarEvolution &SE, DominatorTree &DT, in canFoldTermCondOfLoop() argument
64 if (!SE.hasLoopInvariantBackedgeTakenCount(L)) { in canFoldTermCondOfLoop()
112 if (unsigned SmallTC = SE.getSmallConstantMaxTripCount(L)) in canFoldTermCondOfLoop()
120 const SCEV *BECount = SE.getBackedgeTakenCount(L); in canFoldTermCondOfLoop()
122 SCEVExpander Expander(SE, DL, "lsr_fold_term_cond"); in canFoldTermCondOfLoop()
132 if (!SE.isSCEVable(PN.getType())) { in canFoldTermCondOfLoop()
138 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in canFoldTermCondOfLoop()
157 !SE.isKnownNonZero(AddRec->getStepRecurrence(SE))) in canFoldTermCondOfLoop()
160 const SCEVAddRecExpr *PostInc = AddRec->getPostIncExpr(SE); in canFoldTermCondOfLoop()
161 const SCEV *TermValueSLocal = PostInc->evaluateAtIteration(BECount, SE); in canFoldTermCondOfLoop()
219 << " BECount (SCEV): " << *SE.getBackedgeTakenCount(L) << "\n" in canFoldTermCondOfLoop()
230 static bool RunTermFold(Loop *L, ScalarEvolution &SE, DominatorTree &DT, in RunTermFold() argument
237 auto Opt = canFoldTermCondOfLoop(L, SE, DT, LI, TTI); in RunTermFold()
264 SCEVExpander Expander(SE, DL, "lsr_fold_term_cond"); in RunTermFold()
339 auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE(); in runOnLoop() local
350 return RunTermFold(L, SE, DT, LI, TTI, TLI, MSSA); in runOnLoop()
356 if (!RunTermFold(&L, AR.SE, AR.DT, AR.LI, AR.TTI, AR.TLI, AR.MSSA)) in run()