Home
last modified time | relevance | path

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

123

/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopInterchange.cpp654 BasicBlock *OuterLoopLatch = OuterLoop->getLoopLatch(); in tightlyNested()
735 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in isLoopStructureUnderstood()
895 if (!L->getLoopLatch() || !L->getLoopPredecessor()) in findInductionAndReductions()
915 Value *V = followLCSSA(PHI.getIncomingValueForBlock(L->getLoopLatch())); in findInductionAndReductions()
936 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in currentLimitations()
941 OuterLoop->getExitingBlock() != OuterLoop->getLoopLatch() || in currentLimitations()
943 !isa<BranchInst>(OuterLoop->getLoopLatch()->getTerminator())) { in currentLimitations()
1054 if (!IncomingI || IncomingI->getParent() != OuterLoop->getLoopLatch()) in areOuterLoopExitPHIsSupported()
1067 if (OuterLoop->getLoopLatch()->getUniquePredecessor() == nullptr) in areOuterLoopExitPHIsSupported()
1088 if (OuterLoop->getLoopLatch()->getUniquePredecessor() != nullptr) in areInnerLoopLatchPHIsSupported()
[all …]
H A DLoopBoundSplit.cpp75 Cond.NonPHIAddRecValue = PN->getIncomingValueForBlock(L.getLoopLatch()); in analyzeICmp()
247 if (L.getLoopLatch() == BB) in findSplitCandidate()
362 (L.getExitingBlock() == L.getLoopLatch()) ? true : false; in splitLoopBound()
372 isExitingLatch ? PN.getIncomingValueForBlock(L.getLoopLatch()) : &PN, in splitLoopBound()
387 PN.getIncomingValueForBlock(L.getLoopLatch())) in splitLoopBound()
H A DIndVarSimplify.cpp455 if (!L->getLoopLatch() || in rewriteFirstIterationLoopExitValues()
456 !DT->dominates(IncomingBB, L->getLoopLatch())) in rewriteFirstIterationLoopExitValues()
711 assert(L->getLoopLatch() && "Must be in simplified form"); in needsLFTR()
748 int Idx = Phi->getBasicBlockIndex(L->getLoopLatch()); in needsLFTR()
805 assert(L->getLoopLatch()); in isLoopCounter()
814 int LatchIdx = Phi->getBasicBlockIndex(L->getLoopLatch()); in isLoopCounter()
837 BasicBlock *LatchBlock = L->getLoopLatch(); in FindLoopCounter()
945 assert(L->getLoopLatch() && "Loop no longer in simplified form?"); in linearFunctionTestReplace()
948 cast<Instruction>(IndVar->getIncomingValueForBlock(L->getLoopLatch())); in linearFunctionTestReplace()
957 if (ExitingBB == L->getLoopLatch()) { in linearFunctionTestReplace()
[all …]
H A DLoopSimplifyCFG.cpp293 DeleteCurrentLoop = !IsEdgeLive(L.getLoopLatch(), L.getHeader()); in analyze()
302 BlocksInLoopAfterFolding.insert(L.getLoopLatch()); in analyze()
548 assert(L.getLoopLatch() && "Should be single latch!"); in run()
671 if (!L.getLoopLatch()) in constantFoldTerminators()
H A DLoopFlatten.cpp408 BasicBlock *Latch = L->getLoopLatch(); in findLoopComponents()
502 InnerPHI.getIncomingValueForBlock(FI.InnerLoop->getLoopLatch()); in checkPHIs()
518 OuterPHI->getIncomingValueForBlock(FI.OuterLoop->getLoopLatch())); in checkPHIs()
772 FI.InnerInductionPHI->removeIncomingValue(FI.InnerLoop->getLoopLatch()); in DoFlattenLoopPair()
777 PHI->removeIncomingValue(FI.InnerLoop->getLoopLatch()); in DoFlattenLoopPair()
H A DLoopTermFold.cpp69 BasicBlock *LoopLatch = L->getLoopLatch(); in canFoldTermCondOfLoop()
246 BasicBlock *LoopLatch = L->getLoopLatch(); in RunTermFold()
H A DLoopUnrollAndJamPass.cpp365 BasicBlock *Latch = L->getLoopLatch(); in tryToUnrollAndJamLoop()
366 BasicBlock *SubLoopLatch = SubLoop->getLoopLatch(); in tryToUnrollAndJamLoop()
H A DLoopPredication.cpp810 BasicBlock *LoopLatch = L->getLoopLatch(); in parseLoopLatchICmp()
890 auto *LatchBlock = L->getLoopLatch(); in isLoopProfitableToPredicate()
1014 assert(DT.dominates(ExitingBB, L->getLoopLatch()) && in getMinAnalyzeableBackedgeTakenCount()
1055 auto *Latch = L->getLoopLatch(); in predicateLoopExits()
H A DLoopDeletion.cpp223 BasicBlock *Latch = L->getLoopLatch(); in canProveExitOnFirstIteration()
404 if (!L->getLoopLatch()) in breakBackedgeIfNotTaken()
H A DLoopVersioningLICM.cpp197 if (CurLoop->getExitingBlock() != CurLoop->getLoopLatch()) { in legalLoopStructure()
/freebsd/contrib/llvm-project/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.cpp176 if (BasicBlock *Latch = getLoopLatch()) in getLatchCmpInst()
234 BasicBlock *Latch = L.getLoopLatch(); in getCanonicalPredicate()
313 BasicBlock *Latch = getLoopLatch(); in getInductionVariable()
373 assert(Preheader && getLoopLatch() && in getLoopGuardBranch()
483 return getLoopPreheader() && getLoopLatch() && hasDedicatedExits(); in isLoopSimplifyForm()
H A DIVUsers.cpp103 BasicBlock *LatchBlock = L->getLoopLatch(); in IVUseShouldUsePostIncValue()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DLoopRotationUtils.cpp239 BasicBlock *Latch = L->getLoopLatch(); in canRotateDeoptimizingLatchExit()
424 BasicBlock *OrigLatch = L->getLoopLatch(); in rotateLoop()
856 SplitLatchEdge |= L->getLoopLatch() == ExitPred; in rotateLoop()
882 assert(L->getLoopLatch() && "Invalid loop latch after loop rotation"); in rotateLoop()
992 BasicBlock *Latch = L->getLoopLatch(); in simplifyLoopLatch()
1043 assert((!MadeChange || L->isLoopExiting(L->getLoopLatch())) && in processLoop()
H A DLoopPeel.cpp229 Value *Input = Phi->getIncomingValueForBlock(L.getLoopLatch()); in calculate()
301 BasicBlock *Latch = L.getLoopLatch(); in peelToTurnInvariantLoadsDerefencebale()
342 BasicBlock *Latch = L.getLoopLatch(); in canPeelLastIteration()
569 if (L.getLoopLatch() == BB) in countToEliminateCompares()
583 BasicBlock *Latch = L->getLoopLatch(); in violatesLegacyMultiExitLoopCheck()
843 BasicBlock *Latch = L->getLoopLatch(); in cloneLoopBlocks()
1046 BasicBlock *Latch = L->getLoopLatch(); in peelLoop()
1227 cast<ICmpInst>(L->getLoopLatch()->getTerminator()->getOperand(0)); in peelLoop()
H A DLoopUnrollRuntime.cpp100 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog()
216 BasicBlock *Latch = L->getLoopLatch(); in ConnectEpilog()
347 BasicBlock *Latch = L->getLoopLatch(); in CloneLoopBlocks()
596 BasicBlock *Latch = L->getLoopLatch(); in UnrollRuntimeLoopRemainder()
976 BasicBlock *RemainderLatch = remainderLoop->getLoopLatch(); in UnrollRuntimeLoopRemainder()
H A DLoopUnrollAndJam.cpp73 BasicBlock *SubLoopLatch = SubLoop->getLoopLatch(); in partitionLoopBlocks()
294 BasicBlock *LatchBlock = L->getLoopLatch(); in UnrollAndJamLoop()
302 SubLoop->getLoopLatch()->getTerminator()->getSuccessor(0)); in UnrollAndJamLoop()
966 BasicBlock *Latch = L->getLoopLatch(); in isSafeToUnrollAndJam()
H A DLoopConstrainer.cpp118 SE.getExitCount(&L, L.getLoopLatch(), ScalarEvolution::SymbolicMaximum); in getNarrowestLatchMaxTakenCountEstimate()
133 BasicBlock *Latch = L.getLoopLatch(); in parseLoopStructure()
485 cast<BasicBlock>(GetClonedValue(OriginalLoop.getLoopLatch())); in cloneLoop()
H A DLoopSimplify.cpp556 BasicBlock *LoopLatch = L->getLoopLatch(); in simplifyOneLoop()
875 if (!L->getLoopPreheader() || !L->getLoopLatch()) {
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DMachineLoopInfo.cpp123 if (MachineBasicBlock *Latch = getLoopLatch()) { in findLoopControlBlock()
157 MachineBasicBlock *HB = L->getHeader(), *LB = L->getLoopLatch(); in findLoopPreheader()
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/
H A DMVETPAndVPTOptimisationsPass.cpp114 MachineBasicBlock *Latch = ML->getLoopLatch(); in findLoopComponents()
397 if (LoopPhi->getOperand(2).getMBB() == ML->getLoopLatch()) { in MergeLoopEnd()
494 (Phi->getOperand(2).getMBB() != ML->getLoopLatch() && in ConvertTailPredLoop()
495 Phi->getOperand(4).getMBB() != ML->getLoopLatch())) { in ConvertTailPredLoop()
499 CountReg = Phi->getOperand(2).getMBB() == ML->getLoopLatch() in ConvertTailPredLoop()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DLoopVectorizationLegality.cpp340 assert(Lp->getLoopLatch() && "Expected loop with a single latch."); in isUniformLoop()
355 BasicBlock *Latch = Lp->getLoopLatch(); in isUniformLoop()
727 AllowedExit.insert(Phi->getIncomingValueForBlock(TheLoop->getLoopLatch())); in addInductionPhi()
1399 BasicBlock *Latch = TheLoop->getLoopLatch(); in blockNeedsPredication()
1647 BasicBlock *LatchBB = TheLoop->getLoopLatch(); in isVectorizableEarlyExitLoop()
1918 if (TheLoop->getExitingBlock() != TheLoop->getLoopLatch()) { in canFoldTailByMasking()
H A DEVLIndVarSimplify.cpp109 BasicBlock *LatchBlock = L.getLoopLatch(); in run()
/freebsd/contrib/llvm-project/llvm/include/llvm/Support/
H A DGenericLoopInfoImpl.h151 const BlockT *Latch = getLoopLatch(); in getUniqueNonLatchExitBlocks()
164 BlockT *Latch = getLoopLatch(); in getUniqueLatchExitBlock()
256 BlockT *LoopBase<BlockT, LoopT>::getLoopLatch() const { in getLoopLatch() function
/freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/
H A DHexagonHardwareLoops.cpp404 MachineBasicBlock *Latch = L->getLoopLatch(); in findInductionRegister()
602 MachineBasicBlock *Latch = L->getLoopLatch(); in getLoopTripCount()
1261 if (ExitingBlock != L->getLoopLatch()) { in convertToHardwareLoop()
1630 MachineBasicBlock *Latch = L->getLoopLatch(); in fixupInductionVariable()
1876 MachineBasicBlock *Latch = L->getLoopLatch(); in createPreheaderForLoop()

123