/external/llvm/lib/Transforms/Scalar/ |
D | LoopRotation.cpp | 486 BasicBlock *Latch = L->getLoopLatch(); in simplifyLoopLatch() local 487 if (!Latch || Latch->hasAddressTaken()) in simplifyLoopLatch() 490 BranchInst *Jmp = dyn_cast<BranchInst>(Latch->getTerminator()); in simplifyLoopLatch() 494 BasicBlock *LastExit = Latch->getSinglePredecessor(); in simplifyLoopLatch() 502 if (!shouldSpeculateInstrs(Latch->begin(), Jmp->getIterator(), L)) in simplifyLoopLatch() 505 DEBUG(dbgs() << "Folding loop latch " << Latch->getName() << " into " in simplifyLoopLatch() 509 LastExit->getInstList().splice(BI->getIterator(), Latch->getInstList(), in simplifyLoopLatch() 510 Latch->begin(), Jmp->getIterator()); in simplifyLoopLatch() 512 unsigned FallThruPath = BI->getSuccessor(0) == Latch ? 0 : 1; in simplifyLoopLatch() 518 Latch->replaceSuccessorsPhiUsesWith(LastExit); in simplifyLoopLatch() [all …]
|
D | InductiveRangeCheckElimination.cpp | 443 BasicBlock *Latch; member 457 : Tag(""), Header(nullptr), Latch(nullptr), LatchBr(nullptr), in LoopStructure() 465 Result.Latch = cast<BasicBlock>(Map(Latch)); in map() 656 BasicBlock *Latch = L.getLoopLatch(); in parseLoopStructure() local 657 if (!L.isLoopExiting(Latch)) { in parseLoopStructure() 669 BranchInst *LatchBr = dyn_cast<BranchInst>(&*Latch->rbegin()); in parseLoopStructure() 691 const SCEV *LatchCount = SE.getExitCount(&L, Latch); in parseLoopStructure() 843 Result.Latch = Latch; in parseLoopStructure() 1052 auto BBInsertLocation = std::next(Function::iterator(LS.Latch)); in changeIterationSpaceEnd() 1108 NewPHI->addIncoming(PN->getIncomingValueForBlock(LS.Latch), in changeIterationSpaceEnd() [all …]
|
D | LoopLoadElimination.cpp | 108 [&](const BasicBlock *Latch) { in doesStoreDominatesAllLatches() argument 109 return DT->dominates(StoreBlock, Latch); in doesStoreDominatesAllLatches()
|
D | LoopUnswitch.cpp | 1218 BasicBlock *Latch = L->getLoopLatch(); in RewriteLoopBodyWithConditionConstant() local 1226 if (Latch && DT->dominates(SISucc, Latch)) in RewriteLoopBodyWithConditionConstant()
|
D | LoopStrengthReduce.cpp | 1852 unsigned Entry, Latch; in OptimizeShadowIV() local 1855 Latch = 1; in OptimizeShadowIV() 1858 Latch = 0; in OptimizeShadowIV() 1868 dyn_cast<BinaryOperator>(PH->getIncomingValue(Latch)); in OptimizeShadowIV() 1900 NewPH->addIncoming(NewIncr, PH->getIncomingBlock(Latch)); in OptimizeShadowIV()
|
/external/llvm/lib/Transforms/Utils/ |
D | LoopUnrollRuntime.cpp | 67 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog() local 68 assert(Latch && "Loop must have a latch"); in ConnectProlog() 75 for (succ_iterator SBI = succ_begin(Latch), SBE = succ_end(Latch); in ConnectProlog() 92 Value *V = PN->getIncomingValueForBlock(Latch); in ConnectProlog() 149 BasicBlock *Latch = L->getLoopLatch(); in CloneLoopBlocks() local 181 if (Latch == *BB) { in CloneLoopBlocks() 216 BasicBlock *NewLatch = cast<BasicBlock>(VMap[Latch]); in CloneLoopBlocks() 217 idx = NewPHI->getBasicBlockIndex(Latch); in CloneLoopBlocks() 335 BasicBlock *Latch = L->getLoopLatch(); in UnrollRuntimeLoopProlog() local 410 BasicBlock *LastLoopBB = cast<BasicBlock>(VMap[Latch]); in UnrollRuntimeLoopProlog()
|
/external/llvm/lib/Target/Hexagon/ |
D | HexagonHardwareLoops.cpp | 371 if (MachineBasicBlock *Latch = L->getLoopLatch()) { in getExitingBlock() local 372 if (L->isLoopExiting(Latch)) in getExitingBlock() 373 return Latch; in getExitingBlock() 387 MachineBasicBlock *Latch = L->getLoopLatch(); in findInductionRegister() local 389 if (!Header || !Preheader || !Latch || !ExitingBlock) in findInductionRegister() 413 if (Phi->getOperand(i+1).getMBB() != Latch) in findInductionRegister() 571 MachineBasicBlock *Latch = L->getLoopLatch(); in getLoopTripCount() local 576 else if (MBB == Latch) in getLoopTripCount() 593 if (ExitingBlock != Latch && (TB == Latch || FB == Latch)) { in getLoopTripCount() 596 bool NotAnalyzed = TII->AnalyzeBranch(*Latch, LTB, LFB, LCond, false); in getLoopTripCount() [all …]
|
/external/llvm/include/llvm/Analysis/ |
D | LoopInfoImpl.h | 163 BlockT *Latch = nullptr; in getLoopLatch() local 167 if (Latch) return nullptr; in getLoopLatch() 168 Latch = N; in getLoopLatch() 172 return Latch; in getLoopLatch()
|
/external/llvm/lib/Analysis/ |
D | ScalarEvolution.cpp | 5193 BasicBlock *Latch = L->getLoopLatch(); // may be NULL. in computeBackedgeTakenCount() local 5221 if (EL.Max != getCouldNotCompute() && Latch && in computeBackedgeTakenCount() 5222 DT.dominates(ExitBB, Latch)) { in computeBackedgeTakenCount() 5644 const BasicBlock *Latch = L->getLoopLatch(); in computeShiftCompareExitLimit() local 5645 if (!Latch) in computeShiftCompareExitLimit() 5707 Value *BEValue = PNOut->getIncomingValueForBlock(Latch); in computeShiftCompareExitLimit() 5962 BasicBlock *Latch = L->getLoopLatch(); in getConstantEvolutionLoopExitValue() local 5963 if (!Latch) in getConstantEvolutionLoopExitValue() 5969 auto *StartCST = getOtherIncomingValue(PHI, Latch); in getConstantEvolutionLoopExitValue() 5976 Value *BEValue = PN->getIncomingValueForBlock(Latch); in getConstantEvolutionLoopExitValue() [all …]
|
D | LoopAccessAnalysis.cpp | 1592 BasicBlock* Latch = TheLoop->getLoopLatch(); in blockNeedsPredication() local 1593 return !DT->dominates(BB, Latch); in blockNeedsPredication()
|
/external/llvm/lib/Transforms/Vectorize/ |
D | LoopVectorize.cpp | 2616 BasicBlock *Latch = L->getLoopLatch(); in createInductionVariable() local 2619 if (!Latch) in createInductionVariable() 2620 Latch = Header; in createInductionVariable() 2626 Builder.SetInsertPoint(Latch->getTerminator()); in createInductionVariable() 2631 Induction->addIncoming(Next, Latch); in createInductionVariable() 2637 Latch->getTerminator()->eraseFromParent(); in createInductionVariable() 3364 BasicBlock *Latch = OrigLoop->getLoopLatch(); in vectorizeLoop() local 3365 Value *LoopVal = RdxPhi->getIncomingValueForBlock(Latch); in vectorizeLoop() 4419 BasicBlock *Latch = TheLoop->getLoopLatch(); in collectLoopUniforms() local 4422 Worklist.push_back(Latch->getTerminator()->getOperand(0)); in collectLoopUniforms()
|