reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/Scalar/LoopStrengthReduce.cpp
 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);