Home
last modified time | relevance | path

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

/external/llvm/lib/Transforms/Scalar/
DLoopRotation.cpp486 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 …]
DInductiveRangeCheckElimination.cpp443 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 …]
DLoopLoadElimination.cpp108 [&](const BasicBlock *Latch) { in doesStoreDominatesAllLatches() argument
109 return DT->dominates(StoreBlock, Latch); in doesStoreDominatesAllLatches()
DLoopUnswitch.cpp1218 BasicBlock *Latch = L->getLoopLatch(); in RewriteLoopBodyWithConditionConstant() local
1226 if (Latch && DT->dominates(SISucc, Latch)) in RewriteLoopBodyWithConditionConstant()
DLoopStrengthReduce.cpp1852 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/
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()
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/
DHexagonHardwareLoops.cpp371 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/
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/
DScalarEvolution.cpp5193 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 …]
DLoopAccessAnalysis.cpp1592 BasicBlock* Latch = TheLoop->getLoopLatch(); in blockNeedsPredication() local
1593 return !DT->dominates(BB, Latch); in blockNeedsPredication()
/external/llvm/lib/Transforms/Vectorize/
DLoopVectorize.cpp2616 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()