Home
last modified time | relevance | path

Searched refs:Latch (Results 1 – 11 of 11) sorted by relevance

/external/llvm/lib/Transforms/Scalar/
DLoopRotation.cpp277 BasicBlock *Latch = L->getLoopLatch(); in simplifyLoopLatch() local
278 if (!Latch || Latch->hasAddressTaken()) in simplifyLoopLatch()
281 BranchInst *Jmp = dyn_cast<BranchInst>(Latch->getTerminator()); in simplifyLoopLatch()
285 BasicBlock *LastExit = Latch->getSinglePredecessor(); in simplifyLoopLatch()
293 if (!shouldSpeculateInstrs(Latch->begin(), Jmp, L)) in simplifyLoopLatch()
296 DEBUG(dbgs() << "Folding loop latch " << Latch->getName() << " into " in simplifyLoopLatch()
300 LastExit->getInstList().splice(BI, Latch->getInstList(), Latch->begin(), Jmp); in simplifyLoopLatch()
302 unsigned FallThruPath = BI->getSuccessor(0) == Latch ? 0 : 1; in simplifyLoopLatch()
308 Latch->replaceSuccessorsPhiUsesWith(LastExit); in simplifyLoopLatch()
312 assert(Latch->empty() && "unable to evacuate Latch"); in simplifyLoopLatch()
[all …]
DInductiveRangeCheckElimination.cpp436 BasicBlock *Latch; member
450 : Tag(""), Header(nullptr), Latch(nullptr), LatchBr(nullptr), in LoopStructure()
458 Result.Latch = cast<BasicBlock>(Map(Latch)); in map()
649 BasicBlock *Latch = L.getLoopLatch(); in parseLoopStructure() local
650 if (!L.isLoopExiting(Latch)) { in parseLoopStructure()
662 BranchInst *LatchBr = dyn_cast<BranchInst>(&*Latch->rbegin()); in parseLoopStructure()
684 const SCEV *LatchCount = SE.getExitCount(&L, Latch); in parseLoopStructure()
836 Result.Latch = Latch; in parseLoopStructure()
1045 auto BBInsertLocation = std::next(Function::iterator(LS.Latch)); in changeIterationSpaceEnd()
1101 NewPHI->addIncoming(PN->getIncomingValueForBlock(LS.Latch), in changeIterationSpaceEnd()
[all …]
DLoopInterchange.cpp523 BasicBlock *Latch = L->getLoopLatch(); in processLoopList() local
525 if (Latch && Latch != Header && isa<PHINode>(Latch->begin())) { in processLoopList()
DLoopUnswitch.cpp1029 BasicBlock *Latch = L->getLoopLatch(); in RewriteLoopBodyWithConditionConstant() local
1037 if (Latch && DT->dominates(SISucc, Latch)) in RewriteLoopBodyWithConditionConstant()
DLoopStrengthReduce.cpp1866 unsigned Entry, Latch; in OptimizeShadowIV() local
1869 Latch = 1; in OptimizeShadowIV()
1872 Latch = 0; in OptimizeShadowIV()
1882 dyn_cast<BinaryOperator>(PH->getIncomingValue(Latch)); in OptimizeShadowIV()
1914 NewPH->addIncoming(NewIncr, PH->getIncomingBlock(Latch)); in OptimizeShadowIV()
/external/llvm/lib/Transforms/Utils/
DLoopUnrollRuntime.cpp67 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()
217 BasicBlock *NewLatch = cast<BasicBlock>(VMap[Latch]); in CloneLoopBlocks()
218 idx = NewPHI->getBasicBlockIndex(Latch); in CloneLoopBlocks()
342 BasicBlock *Latch = L->getLoopLatch(); in UnrollRuntimeLoopProlog() local
417 BasicBlock *LastLoopBB = cast<BasicBlock>(VMap[Latch]); in UnrollRuntimeLoopProlog()
/external/llvm/lib/Target/Hexagon/
DHexagonHardwareLoops.cpp321 MachineBasicBlock *Latch = L->getLoopLatch(); in findInductionRegister() local
322 if (!Header || !Preheader || !Latch) in findInductionRegister()
346 if (Phi->getOperand(i+1).getMBB() != Latch) in findInductionRegister()
369 bool NotAnalyzed = TII->AnalyzeBranch(*Latch, TB, FB, Cond, false); in findInductionRegister()
450 MachineBasicBlock *Latch = L->getLoopLatch(); in getLoopTripCount() local
451 if (!Latch) in getLoopTripCount()
469 else if (MBB == Latch) in getLoopTripCount()
477 bool NotAnalyzed = TII->AnalyzeBranch(*Latch, TB, FB, Cond, false); in getLoopTripCount()
1242 MachineBasicBlock *Latch = L->getLoopLatch(); in fixupInductionVariable() local
1244 if (!Header || !Preheader || !Latch) in fixupInductionVariable()
[all …]
/external/llvm/include/llvm/Analysis/
DLoopInfoImpl.h163 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/
DLoopAccessAnalysis.cpp1191 BasicBlock* Latch = TheLoop->getLoopLatch(); in blockNeedsPredication() local
1192 return !DT->dominates(BB, Latch); in blockNeedsPredication()
DScalarEvolution.cpp4830 BasicBlock *Latch = L->getLoopLatch(); // may be NULL. in ComputeBackedgeTakenCount() local
4858 if (EL.Max != getCouldNotCompute() && Latch && in ComputeBackedgeTakenCount()
4859 DT->dominates(ExitBB, Latch)) { in ComputeBackedgeTakenCount()
6677 BasicBlock *Latch = L->getLoopLatch(); in isLoopBackedgeGuardedByCond() local
6678 if (!Latch) in isLoopBackedgeGuardedByCond()
6682 dyn_cast<BranchInst>(Latch->getTerminator()); in isLoopBackedgeGuardedByCond()
6694 if (!DT->dominates(CI, Latch->getTerminator())) in isLoopBackedgeGuardedByCond()
6726 for (DomTreeNode *DTN = (*DT)[Latch], *HeaderDTN = (*DT)[L->getHeader()]; in isLoopBackedgeGuardedByCond()
6752 assert(DT->dominates(DominatingEdge, Latch) && "should be!"); in isLoopBackedgeGuardedByCond()
/external/llvm/lib/Transforms/Vectorize/
DLoopVectorize.cpp2829 BasicBlock *Latch = OrigLoop->getLoopLatch(); in vectorizeLoop() local
2830 Value *LoopVal = RdxPhi->getIncomingValueForBlock(Latch); in vectorizeLoop()
3971 BasicBlock *Latch = TheLoop->getLoopLatch(); in collectLoopUniforms() local
3974 Worklist.push_back(Latch->getTerminator()->getOperand(0)); in collectLoopUniforms()