Home
last modified time | relevance | path

Searched refs:getLoopLatch (Results 1 – 25 of 52) sorted by relevance

123

/llvm-project-15.0.7/llvm/lib/Transforms/Scalar/
H A DLoopInterchange.cpp602 BasicBlock *OuterLoopLatch = OuterLoop->getLoopLatch(); in tightlyNested()
683 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in isLoopStructureUnderstood()
783 if (!L->getLoopLatch() || !L->getLoopPredecessor()) in findInductionAndReductions()
824 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in currentLimitations()
829 OuterLoop->getExitingBlock() != OuterLoop->getLoopLatch() || in currentLimitations()
968 if (OuterLoop->getLoopLatch()->getUniquePredecessor() != nullptr) in areInnerLoopLatchPHIsSupported()
977 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in areInnerLoopLatchPHIsSupported()
1270 BasicBlock *OuterLatch = NewOuter->getLoopLatch(); in restructureLoops()
1319 SplitBlock(InnerLoop->getLoopLatch(), in transform()
1571 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in adjustLoopBranches()
[all …]
H A DLoopBoundSplit.cpp75 Cond.NonPHIAddRecValue = PN->getIncomingValueForBlock(L.getLoopLatch()); in analyzeICmp()
248 if (L.getLoopLatch() == BB) in findSplitCandidate()
363 (L.getExitingBlock() == L.getLoopLatch()) ? true : false; in splitLoopBound()
373 isExitingLatch ? PN.getIncomingValueForBlock(L.getLoopLatch()) : &PN, in splitLoopBound()
388 PN.getIncomingValueForBlock(L.getLoopLatch())) in splitLoopBound()
H A DIndVarSimplify.cpp462 if (!L->getLoopLatch() || in rewriteFirstIterationLoopExitValues()
463 !DT->dominates(IncomingBB, L->getLoopLatch())) in rewriteFirstIterationLoopExitValues()
717 assert(L->getLoopLatch() && "Must be in simplified form"); in needsLFTR()
754 int Idx = Phi->getBasicBlockIndex(L->getLoopLatch()); in needsLFTR()
867 assert(L->getLoopLatch()); in isLoopCounter()
880 int LatchIdx = Phi->getBasicBlockIndex(L->getLoopLatch()); in isLoopCounter()
903 BasicBlock *LatchBlock = L->getLoopLatch(); in FindLoopCounter()
1064 assert(L->getLoopLatch() && "Loop no longer in simplified form?"); in linearFunctionTestReplace()
1076 if (ExitingBB == L->getLoopLatch()) { in linearFunctionTestReplace()
1582 if (!DT->dominates(ExitingBB, L->getLoopLatch())) in optimizeLoopExits()
[all …]
H A DLoopSimplifyCFG.cpp280 DeleteCurrentLoop = !IsEdgeLive(L.getLoopLatch(), L.getHeader()); in analyze()
289 BlocksInLoopAfterFolding.insert(L.getLoopLatch()); in analyze()
534 assert(L.getLoopLatch() && "Should be single latch!"); in run()
648 if (!L.getLoopLatch()) in constantFoldTerminators()
H A DLoopFlatten.cpp372 BasicBlock *Latch = L->getLoopLatch(); in findLoopComponents()
465 InnerPHI.getIncomingValueForBlock(FI.InnerLoop->getLoopLatch()); in checkPHIs()
481 OuterPHI->getIncomingValueForBlock(FI.OuterLoop->getLoopLatch())); in checkPHIs()
725 FI.InnerInductionPHI->removeIncomingValue(FI.InnerLoop->getLoopLatch()); in DoFlattenLoopPair()
730 PHI->removeIncomingValue(FI.InnerLoop->getLoopLatch()); in DoFlattenLoopPair()
H A DLoopVersioningLICM.cpp250 if (CurLoop->getExitingBlock() != CurLoop->getLoopLatch()) { in legalLoopStructure()
549 Instruction *I = VerLoop->getLoopLatch()->getTerminator(); in setNoAliasToLoop()
H A DLoopPredication.cpp857 BasicBlock *LoopLatch = L->getLoopLatch(); in parseLoopLatchICmp()
938 auto *LatchBlock = L->getLoopLatch(); in isLoopProfitableToPredicate()
1076 assert(DT.dominates(ExitingBB, L->getLoopLatch()) && in getMinAnalyzeableBackedgeTakenCount()
1117 auto *Latch = L->getLoopLatch(); in predicateLoopExits()
H A DLoopUnrollAndJamPass.cpp379 BasicBlock *Latch = L->getLoopLatch(); in tryToUnrollAndJamLoop()
380 BasicBlock *SubLoopLatch = SubLoop->getLoopLatch(); in tryToUnrollAndJamLoop()
H A DLoopDeletion.cpp226 BasicBlock *Latch = L->getLoopLatch(); in canProveExitOnFirstIteration()
407 if (!L->getLoopLatch()) in breakBackedgeIfNotTaken()
/llvm-project-15.0.7/llvm/lib/Analysis/
H A DLoopNestAnalysis.cpp54 const BasicBlock *Latch = OuterLoop.getLoopLatch(); in getOuterLoopLatchCmp()
162 const BasicBlock *OuterLoopLatch = OuterLoop.getLoopLatch(); in analyzeLoopNestForPerfectNest()
226 const BasicBlock *OuterLoopLatch = OuterLoop.getLoopLatch(); in getInterveningInstructions()
327 const BasicBlock *OuterLoopLatch = OuterLoop.getLoopLatch(); in checkLoopsStructure()
329 const BasicBlock *InnerLoopLatch = InnerLoop.getLoopLatch(); in checkLoopsStructure()
H A DLoopInfo.cpp171 if (BasicBlock *Latch = getLoopLatch()) in getLatchCmpInst()
229 BasicBlock *Latch = L.getLoopLatch(); in getCanonicalPredicate()
308 BasicBlock *Latch = getLoopLatch(); in getInductionVariable()
368 assert(Preheader && getLoopLatch() && in getLoopGuardBranch()
478 return getLoopPreheader() && getLoopLatch() && hasDedicatedExits(); in isLoopSimplifyForm()
H A DIVUsers.cpp103 BasicBlock *LatchBlock = L->getLoopLatch(); in IVUseShouldUsePostIncValue()
/llvm-project-15.0.7/llvm/lib/Transforms/Utils/
H A DLoopPeel.cpp86 const BasicBlock *Latch = L->getLoopLatch(); in canPeel()
125 assert(BackEdge == L->getLoopLatch() && "Wrong latch?"); in calculateIterationsToInvariance()
184 BasicBlock *Latch = L.getLoopLatch(); in peelToTurnInvariantLoadsDerefencebale()
239 if (L.getLoopLatch() == BB) in countToEliminateCompares()
336 BasicBlock *Latch = L->getLoopLatch(); in violatesLegacyMultiExitLoopCheck()
413 BasicBlock *BackEdge = L->getLoopLatch(); in computePeelCount()
583 BasicBlock *Latch = L->getLoopLatch(); in cloneLoopBlocks()
750 BasicBlock *Latch = L->getLoopLatch(); in peelLoop()
H A DLoopRotationUtils.cpp210 BasicBlock *Latch = L->getLoopLatch(); in canRotateDeoptimizingLatchExit()
268 BasicBlock *OrigLatch = L->getLoopLatch(); in rotateLoop()
627 SplitLatchEdge |= L->getLoopLatch() == ExitPred; in rotateLoop()
653 assert(L->getLoopLatch() && "Invalid loop latch after loop rotation"); in rotateLoop()
766 BasicBlock *Latch = L->getLoopLatch(); in simplifyLoopLatch()
812 assert((!MadeChange || L->isLoopExiting(L->getLoopLatch())) && in processLoop()
H A DLoopUnrollRuntime.cpp89 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog()
198 BasicBlock *Latch = L->getLoopLatch(); in ConnectEpilog()
322 BasicBlock *Latch = L->getLoopLatch(); in CloneLoopBlocks()
473 cast<BranchInst>(OrigLoop->getLoopLatch()->getTerminator()); in updateLatchBranchWeightsForRemainderLoop()
482 BasicBlock *Latch = RemainderLoop->getLoopLatch(); in updateLatchBranchWeightsForRemainderLoop()
579 BasicBlock *Latch = L->getLoopLatch(); in UnrollRuntimeLoopRemainder()
951 BasicBlock *RemainderLatch = remainderLoop->getLoopLatch(); in UnrollRuntimeLoopRemainder()
H A DLoopUnrollAndJam.cpp74 BasicBlock *SubLoopLatch = SubLoop->getLoopLatch(); in partitionLoopBlocks()
301 BasicBlock *LatchBlock = L->getLoopLatch(); in UnrollAndJamLoop()
309 SubLoop->getLoopLatch()->getTerminator()->getSuccessor(0)); in UnrollAndJamLoop()
969 BasicBlock *Latch = L->getLoopLatch(); in isSafeToUnrollAndJam()
H A DLoopSimplify.cpp560 BasicBlock *LoopLatch = L->getLoopLatch(); in simplifyOneLoop()
886 if (!L->getLoopPreheader() || !L->getLoopLatch()) {
H A DLoopUnroll.cpp282 if (!L->getLoopLatch()) { in UnrollLoop()
306 BasicBlock *LatchBlock = L->getLoopLatch(); in UnrollLoop()
/llvm-project-15.0.7/llvm/lib/CodeGen/
H A DMachineLoopInfo.cpp92 if (MachineBasicBlock *Latch = getLoopLatch()) { in findLoopControlBlock()
126 MachineBasicBlock *HB = L->getHeader(), *LB = L->getLoopLatch(); in findLoopPreheader()
/llvm-project-15.0.7/llvm/lib/Target/ARM/
H A DMVETPAndVPTOptimisationsPass.cpp115 MachineBasicBlock *Latch = ML->getLoopLatch(); in findLoopComponents()
399 if (LoopPhi->getOperand(2).getMBB() == ML->getLoopLatch()) { in MergeLoopEnd()
496 (Phi->getOperand(2).getMBB() != ML->getLoopLatch() && in ConvertTailPredLoop()
497 Phi->getOperand(4).getMBB() != ML->getLoopLatch())) { in ConvertTailPredLoop()
501 CountReg = Phi->getOperand(2).getMBB() == ML->getLoopLatch() in ConvertTailPredLoop()
H A DMVETailPredication.cpp387 Processed->addIncoming(Remaining, L->getLoopLatch()); in InsertVCTPIntrinsic()
/llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/
H A DLoopVectorizationLegality.cpp333 assert(Lp->getLoopLatch() && "Expected loop with a single latch."); in isUniformLoop()
348 BasicBlock *Latch = Lp->getLoopLatch(); in isUniformLoop()
583 AllowedExit.insert(Phi->getIncomingValueForBlock(TheLoop->getLoopLatch())); in addInductionPhi()
890 BasicBlock *LoopLatch = TheLoop->getLoopLatch(); in canVectorizeInstrs()
H A DVPlanHCFGBuilder.cpp344 BasicBlock *Exiting = L->getLoopLatch(); in buildPlainCFG()
/llvm-project-15.0.7/llvm/lib/Target/Hexagon/
H A DHexagonHardwareLoops.cpp409 MachineBasicBlock *Latch = L->getLoopLatch(); in findInductionRegister()
606 MachineBasicBlock *Latch = L->getLoopLatch(); in getLoopTripCount()
1218 if (ExitingBlock != L->getLoopLatch()) { in convertToHardwareLoop()
1592 MachineBasicBlock *Latch = L->getLoopLatch(); in fixupInductionVariable()
1840 MachineBasicBlock *Latch = L->getLoopLatch(); in createPreheaderForLoop()
/llvm-project-15.0.7/llvm/include/llvm/Analysis/
H A DLoopInfoImpl.h130 const BlockT *Latch = getLoopLatch(); in getUniqueNonLatchExitBlocks()
215 BlockT *LoopBase<BlockT, LoopT>::getLoopLatch() const { in getLoopLatch() function

123