reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
2071 const SCEV *BackedgeTakenCount = SE.getBackedgeTakenCount(L); 2128 if (PH->getIncomingBlock(0) == L->getLoopPreheader()) { 2256 const SCEV *BackedgeTakenCount = SE.getBackedgeTakenCount(L); 2307 assert(AR->getLoop() == L && 2373 BasicBlock *LatchBlock = L->getLoopLatch(); 2375 L->getExitingBlocks(ExitingBlocks); 2428 const SCEV *A = IU.getStride(*CondUse, L); 2429 const SCEV *B = IU.getStride(*UI, L); 2482 Cond->setName(L->getHeader()->getName() + ".termcond"); 2494 CondUse->transformToPostInc(L); 2504 IVIncInsertPos = L->getLoopLatch()->getTerminator(); 2667 if (AR->getLoop() == L) 2937 if (!SE.isLoopInvariant(IncExpr, L)) 3042 BasicBlock *LoopHeader = L->getHeader(); 3043 for (DomTreeNode *Rung = DT.getNode(L->getLoopLatch()); 3070 User::op_iterator IVOpIter = findIVOperand(I.op_begin(), IVOpEnd, L, SE); 3075 IVOpIter = findIVOperand(std::next(IVOpIter), IVOpEnd, L, SE); 3080 for (PHINode &PN : L->getHeader()->phis()) { 3085 dyn_cast<Instruction>(PN.getIncomingValueForBlock(L->getLoopLatch())); 3146 IVOpEnd, L, SE); 3163 IVOpIter = findIVOperand(std::next(IVOpIter), IVOpEnd, L, SE); 3179 InsertPt = L->getLoopLatch()->getTerminator(); 3219 for (PHINode &Phi : L->getHeader()->phis()) { 3223 Phi.getIncomingValueForBlock(L->getLoopLatch())); 3230 IRBuilder<> Builder(L->getLoopLatch()->getTerminator()); 3242 bool SaveCmp = TTI.canSaveCmp(L, &ExitBranch, &SE, &LI, &DT, &AC, &LibInfo); 3289 if (SE.isLoopInvariant(N, L) && isSafeToExpand(N, SE)) { 3318 LU.AllFixupsOutsideLoop &= LF.isUseFullyOutsideLoop(L); 3344 F.initialMatch(S, L, SE); 3376 if (!LU.InsertFormula(F, *L)) 3411 if (L->contains(Inst)) continue; 3422 if (UserInst->getParent()->getParent() != L->getHeader()->getParent()) 3429 if (!DT.dominates(L->getHeader(), UseBB)) 3454 if (SE.hasComputableLoopEvolution(SE.getSCEV(OtherOp), L)) 3467 LU.AllFixupsOutsideLoop &= LF.isUseFullyOutsideLoop(L); 3578 if (TTI.shouldFavorPostInc() && mayUsePostIncMode(TTI, LU, BaseReg, L, SE)) 3581 const SCEV *Remainder = CollectSubexprs(BaseReg, nullptr, AddOps, L, SE); 3593 if (isa<SCEVUnknown>(*J) && !SE.isLoopInvariant(*J, L)) 3647 F.canonicalize(*L); 3664 assert(Base.isCanonical(*L) && "Input must be in the canonical form"); 3694 if (SE.properlyDominates(BaseReg, L->getHeader()) && 3695 !SE.hasComputableLoopEvolution(BaseReg, L)) { 3720 F.canonicalize(*L); 3793 F.canonicalize(*L); 3994 if (AR && (AR->getLoop() == L || LU.AllFixupsOutsideLoop)) { 4009 (AR->getLoop() != L && LU.AllFixupsOutsideLoop))) 4014 F.canonicalize(*L); 4063 F.canonicalize(*L); 4226 NewF.canonicalize(*this->L); 4239 mayUsePostIncMode(TTI, LU, OrigReg, this->L, SE)) 4261 NewF.canonicalize(*this->L); 4341 Cost CostF(L, SE, TTI); 4374 Cost CostBest(L, SE, TTI); 4627 Cost CostFA(L, SE, TTI); 4628 Cost CostFB(L, SE, TTI); 4920 Cost NewCost(L, SE, TTI); 4971 Cost SolutionCost(L, SE, TTI); 4973 Cost CurCost(L, SE, TTI); 5077 if (LF.PostIncLoops.count(L)) { 5078 if (LF.isUseFullyOutsideLoop(L)) 5079 Inputs.push_back(L->getLoopLatch()->getTerminator()); 5086 if (PIL == L) continue; 5343 if (L->contains(BB) && !L->contains(PN)) 5343 if (L->contains(BB) && !L->contains(PN)) 5462 SCEVExpander Rewriter(SE, L->getHeader()->getModule()->getDataLayout(), 5469 Rewriter.setIVIncInsertPos(L, IVIncInsertPos);