Lines Matching defs:L
36 IVUsers IVUsersAnalysis::run(Loop &L, LoopAnalysisManager &AM,
38 return IVUsers(&L, &AR.AC, &AR.LI, &AR.DT, &AR.SE);
56 static bool isInteresting(const SCEV *S, const Instruction *I, const Loop *L,
62 if (AR->getLoop() == L)
64 (!L->contains(I) &&
69 return isInteresting(AR->getStart(), I, L, SE, LI) &&
70 !isInteresting(AR->getStepRecurrence(*SE), I, L, SE, LI);
77 if (isInteresting(Op, I, L, SE, LI)) {
98 const Loop *L, DominatorTree *DT) {
100 if (L->contains(User))
103 BasicBlock *LatchBlock = L->getLoopLatch();
170 if (!isInteresting(ISE, I, L, SE, LI))
190 if (LI->getLoopFor(User->getParent()) != L) {
212 auto *L = AR->getLoop();
213 bool Result = IVUseShouldUsePostIncValue(User, I, L, DT);
215 NewUse.PostIncLoops.insert(L);
251 IVUsers::IVUsers(Loop *L, AssumptionCache *AC, LoopInfo *LI, DominatorTree *DT,
253 : L(L), AC(AC), LI(LI), DT(DT), SE(SE) {
256 CodeMetrics::collectEphemeralValues(L, AC, EphValues);
261 for (BasicBlock::iterator I = L->getHeader()->begin(); isa<PHINode>(I); ++I)
267 L->getHeader()->printAsOperand(OS, false);
268 if (SE->hasLoopInvariantBackedgeTakenCount(L)) {
269 OS << " with backedge-taken count " << *SE->getBackedgeTakenCount(L);
312 bool IVUsersWrapperPass::runOnLoop(Loop *L, LPPassManager &LPM) {
314 *L->getHeader()->getParent());
319 IU.reset(new IVUsers(L, AC, LI, DT, SE));
341 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) {
343 if (AR->getLoop() == L)
345 return findAddRecForLoop(AR->getStart(), L);
350 if (const SCEVAddRecExpr *AR = findAddRecForLoop(Op, L))
358 const SCEV *IVUsers::getStride(const IVStrideUse &IU, const Loop *L) const {
362 if (const SCEVAddRecExpr *AR = findAddRecForLoop(Expr, L))
367 void IVStrideUse::transformToPostInc(const Loop *L) {
368 PostIncLoops.insert(L);