Home
last modified time | relevance | path

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

123

/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopInterchange.cpp550 BasicBlock *OuterLoopLatch = OuterLoop->getLoopLatch(); in tightlyNested()
631 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in isLoopStructureUnderstood()
731 if (!L->getLoopLatch() || !L->getLoopPredecessor()) in findInductionAndReductions()
751 Value *V = followLCSSA(PHI.getIncomingValueForBlock(L->getLoopLatch())); in findInductionAndReductions()
771 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in currentLimitations()
776 OuterLoop->getExitingBlock() != OuterLoop->getLoopLatch() || in currentLimitations()
778 !isa<BranchInst>(OuterLoop->getLoopLatch()->getTerminator())) { in currentLimitations()
889 if (!IncomingI || IncomingI->getParent() != OuterLoop->getLoopLatch()) in areOuterLoopExitPHIsSupported()
902 if (OuterLoop->getLoopLatch()->getUniquePredecessor() == nullptr) in areOuterLoopExitPHIsSupported()
923 if (OuterLoop->getLoopLatch()->getUniquePredecessor() != nullptr) in areInnerLoopLatchPHIsSupported()
[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.cpp459 if (!L->getLoopLatch() || in rewriteFirstIterationLoopExitValues()
460 !DT->dominates(IncomingBB, L->getLoopLatch())) in rewriteFirstIterationLoopExitValues()
716 assert(L->getLoopLatch() && "Must be in simplified form"); in needsLFTR()
753 int Idx = Phi->getBasicBlockIndex(L->getLoopLatch()); in needsLFTR()
810 assert(L->getLoopLatch()); in isLoopCounter()
823 int LatchIdx = Phi->getBasicBlockIndex(L->getLoopLatch()); in isLoopCounter()
846 BasicBlock *LatchBlock = L->getLoopLatch(); in FindLoopCounter()
954 assert(L->getLoopLatch() && "Loop no longer in simplified form?"); in linearFunctionTestReplace()
957 cast<Instruction>(IndVar->getIncomingValueForBlock(L->getLoopLatch())); in linearFunctionTestReplace()
966 if (ExitingBB == L->getLoopLatch()) { in linearFunctionTestReplace()
[all …]
H A DLoopSimplifyCFG.cpp278 DeleteCurrentLoop = !IsEdgeLive(L.getLoopLatch(), L.getHeader()); in analyze()
287 BlocksInLoopAfterFolding.insert(L.getLoopLatch()); in analyze()
534 assert(L.getLoopLatch() && "Should be single latch!"); in run()
651 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 DLoopVersioningLICM.cpp200 if (CurLoop->getExitingBlock() != CurLoop->getLoopLatch()) { in legalLoopStructure()
513 Instruction *I = VerLoop->getLoopLatch()->getTerminator(); in setNoAliasToLoop()
H A DLoopUnrollAndJamPass.cpp366 BasicBlock *Latch = L->getLoopLatch(); in tryToUnrollAndJamLoop()
367 BasicBlock *SubLoopLatch = SubLoop->getLoopLatch(); in tryToUnrollAndJamLoop()
H A DLoopDeletion.cpp223 BasicBlock *Latch = L->getLoopLatch(); in canProveExitOnFirstIteration()
404 if (!L->getLoopLatch()) in breakBackedgeIfNotTaken()
H A DLoopPredication.cpp811 BasicBlock *LoopLatch = L->getLoopLatch(); in widenGuardConditions()
891 auto *LatchBlock = L->getLoopLatch(); in parseLoopLatchICmp()
1015 assert(DT.dominates(ExitingBB, L->getLoopLatch()) && in isLoopProfitableToPredicate()
1056 auto *Latch = L->getLoopLatch(); in FindWidenableTerminatorAboveLoop()
/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/Vectorize/
H A DVPlanHCFGBuilder.cpp92 assert(SinglePred == LI->getLoopFor(SinglePred)->getLoopLatch() && in setVPBBPredsFromBB()
142 BasicBlock *LoopLatch = L->getLoopLatch(); in fixPhiNodes()
360 if (TheLoop->getHeader() != TheLoop->getLoopLatch()) { in buildPlainCFG()
361 BB2VPBB[TheLoop->getLoopLatch()] = VectorLatchVPBB; in buildPlainCFG()
423 if (!LoopForBB || BB != LoopForBB->getLoopLatch()) { in buildPlainCFG()
H A DLoopVectorizationLegality.cpp338 assert(Lp->getLoopLatch() && "Expected loop with a single latch."); in isUniformLoop()
353 BasicBlock *Latch = Lp->getLoopLatch(); in isUniformLoop()
727 AllowedExit.insert(Phi->getIncomingValueForBlock(TheLoop->getLoopLatch())); in addInductionPhi()
H A DLoopVectorize.cpp1406 if (TheLoop->getExitingBlock() != TheLoop->getLoopLatch()) { in requiresScalarEpilogue()
2521 if (hasBranchWeightMD(*OrigLoop->getLoopLatch()->getTerminator())) in emitIterationCountCheck()
2784 Value *PostInc = OrigPhi->getIncomingValueForBlock(OrigLoop->getLoopLatch()); in fixupIVUsers()
3132 auto *Latch = TheLoop->getLoopLatch(); in collectLoopScalars()
3746 BasicBlock *Latch = TheLoop->getLoopLatch(); in collectLoopUniforms()
4053 if (TheLoop->getExitingBlock() != TheLoop->getLoopLatch()) { in computeMaxVF()
4609 Entry.first->getIncomingValueForBlock(OrigLoop->getLoopLatch()); in isCandidateForEpilogueVectorization()
4622 if (OrigLoop->getExitingBlock() != OrigLoop->getLoopLatch()) in isCandidateForEpilogueVectorization()
6402 BI->getParent() != TheLoop->getLoopLatch()) in getInstructionCost()
6417 } else if (I->getParent() == TheLoop->getLoopLatch() || VF.isScalar()) in getInstructionCost()
[all …]
/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()
877 SplitLatchEdge |= L->getLoopLatch() == ExitPred; in rotateLoop()
903 assert(L->getLoopLatch() && "Invalid loop latch after loop rotation"); in rotateLoop()
1016 BasicBlock *Latch = L->getLoopLatch(); in simplifyLoopLatch()
1067 assert((!MadeChange || L->isLoopExiting(L->getLoopLatch())) && in processLoop()
H A DLoopPeel.cpp227 Value *Input = Phi->getIncomingValueForBlock(L.getLoopLatch()); in calculate()
299 BasicBlock *Latch = L.getLoopLatch(); in peelToTurnInvariantLoadsDerefencebale()
503 if (L.getLoopLatch() == BB) in countToEliminateCompares()
517 BasicBlock *Latch = L->getLoopLatch(); in violatesLegacyMultiExitLoopCheck()
758 BasicBlock *Latch = L->getLoopLatch(); in cloneLoopBlocks()
927 BasicBlock *Latch = L->getLoopLatch(); in peelLoop()
H A DLoopUnrollRuntime.cpp101 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog()
217 BasicBlock *Latch = L->getLoopLatch(); in ConnectEpilog()
348 BasicBlock *Latch = L->getLoopLatch(); in CloneLoopBlocks()
599 BasicBlock *Latch = L->getLoopLatch(); in UnrollRuntimeLoopRemainder()
972 BasicBlock *RemainderLatch = remainderLoop->getLoopLatch(); in UnrollRuntimeLoopRemainder()
H A DLoopUnrollAndJam.cpp72 BasicBlock *SubLoopLatch = SubLoop->getLoopLatch(); in partitionLoopBlocks()
294 BasicBlock *LatchBlock = L->getLoopLatch(); in UnrollAndJamLoop()
302 SubLoop->getLoopLatch()->getTerminator()->getSuccessor(0)); in UnrollAndJamLoop()
963 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.cpp559 BasicBlock *LoopLatch = L->getLoopLatch(); in simplifyOneLoop()
880 if (!L->getLoopPreheader() || !L->getLoopLatch()) {
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DMachineLoopInfo.cpp120 if (MachineBasicBlock *Latch = getLoopLatch()) { in findLoopControlBlock()
154 MachineBasicBlock *HB = L->getHeader(), *LB = L->getLoopLatch(); in findLoopPreheader()
/freebsd/contrib/llvm-project/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()
/freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/
H A DHexagonHardwareLoops.cpp411 MachineBasicBlock *Latch = L->getLoopLatch(); in findInductionRegister()
609 MachineBasicBlock *Latch = L->getLoopLatch(); in getLoopTripCount()
1224 if (ExitingBlock != L->getLoopLatch()) { in convertToHardwareLoop()
1593 MachineBasicBlock *Latch = L->getLoopLatch(); in fixupInductionVariable()
1839 MachineBasicBlock *Latch = L->getLoopLatch(); in createPreheaderForLoop()
/freebsd/contrib/llvm-project/llvm/include/llvm/Support/
H A DGenericLoopInfoImpl.h151 const BlockT *Latch = getLoopLatch(); in getUniqueNonLatchExitBlocks()
245 BlockT *LoopBase<BlockT, LoopT>::getLoopLatch() const { in getLoopLatch() function

123