Home
last modified time | relevance | path

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

/freebsd-12.1/contrib/llvm/lib/Transforms/Utils/
H A DLoopUnrollRuntime.cpp84 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog() local
85 assert(Latch && "Loop must have a latch"); in ConnectProlog()
93 for (BasicBlock *Succ : successors(Latch)) { in ConnectProlog()
189 BasicBlock *Latch = L->getLoopLatch(); in ConnectEpilog() local
190 assert(Latch && "Loop must have a latch"); in ConnectEpilog()
251 for (BasicBlock *Succ : successors(Latch)) { in ConnectEpilog()
263 NewPN->addIncoming(PN.getIncomingValueForBlock(Latch), Latch); in ConnectEpilog()
309 BasicBlock *Latch = L->getLoopLatch(); in CloneLoopBlocks() local
349 if (Latch == *BB) { in CloneLoopBlocks()
573 BasicBlock *Latch = L->getLoopLatch(); in UnrollRuntimeLoopRemainder() local
[all …]
H A DLoopRotationUtils.cpp594 BasicBlock *Latch = L->getLoopLatch(); in simplifyLoopLatch() local
595 if (!Latch || Latch->hasAddressTaken()) in simplifyLoopLatch()
598 BranchInst *Jmp = dyn_cast<BranchInst>(Latch->getTerminator()); in simplifyLoopLatch()
602 BasicBlock *LastExit = Latch->getSinglePredecessor(); in simplifyLoopLatch()
617 Instruction *FirstLatchInst = &*(Latch->begin()); in simplifyLoopLatch()
625 unsigned FallThruPath = BI->getSuccessor(0) == Latch ? 0 : 1; in simplifyLoopLatch()
631 Latch->replaceSuccessorsPhiUsesWith(LastExit); in simplifyLoopLatch()
635 assert(Latch->empty() && "unable to evacuate Latch"); in simplifyLoopLatch()
636 LI->removeBlock(Latch); in simplifyLoopLatch()
638 DT->eraseNode(Latch); in simplifyLoopLatch()
[all …]
H A DLoopUnrollPeel.cpp402 BasicBlock *Latch = L->getLoopLatch(); in cloneLoopBlocks() local
444 BasicBlock *NewLatch = cast<BasicBlock>(VMap[Latch]); in cloneLoopBlocks()
465 Value *LatchVal = NewPHI->getIncomingValueForBlock(Latch); in cloneLoopBlocks()
481 Value *LatchVal = PHI->getIncomingValueForBlock(Latch); in cloneLoopBlocks()
485 PHI->addIncoming(LatchVal, cast<BasicBlock>(VMap[Latch])); in cloneLoopBlocks()
514 BasicBlock *Latch = L->getLoopLatch(); in peelLoop() local
579 cast<BranchInst>(cast<BasicBlock>(Latch)->getTerminator()); in peelLoop()
617 DT->changeImmediateDominator(Exit, cast<BasicBlock>(LVMap[Latch])); in peelLoop()
643 Value *NewVal = PHI->getIncomingValueForBlock(Latch); in peelLoop()
H A DLoopUnrollAndJam.cpp93 static bool processHeaderPhiOperands(BasicBlock *Header, BasicBlock *Latch, in processHeaderPhiOperands() argument
97 Value *V = Phi.getIncomingValueForBlock(Latch); in processHeaderPhiOperands()
119 BasicBlock *Latch, in moveHeaderPhiOperandsToForeBlocks() argument
125 processHeaderPhiOperands(Header, Latch, AftBlocks, in moveHeaderPhiOperandsToForeBlocks()
730 BasicBlock *Latch = L->getLoopLatch(); in isSafeToUnrollAndJam() local
736 if (Latch != Exit) in isSafeToUnrollAndJam()
789 Header, Latch, AftBlocks, [&AftBlocks, &SubLoop](Instruction *I) { in isSafeToUnrollAndJam()
H A DLoopUnroll.cpp816 for (BasicBlock *Latch : Latches) { in UnrollLoop()
817 BranchInst *Term = cast<BranchInst>(Latch->getTerminator()); in UnrollLoop()
/freebsd-12.1/contrib/llvm/lib/Target/Hexagon/
H A DHexagonHardwareLoops.cpp409 MachineBasicBlock *Latch = L->getLoopLatch(); in findInductionRegister() local
611 else if (MBB == Latch) in getLoopTripCount()
628 if (ExitingBlock != Latch && (TB == Latch || FB == Latch)) { in getLoopTripCount()
634 if (TB == Latch) in getLoopTripCount()
1612 if (!(Header && Latch && ExitingBlock)) in fixupInductionVariable()
1665 if (ExitingBlock != Latch && (TB == Latch || FB == Latch)) { in fixupInductionVariable()
1674 if (TB == Latch) in fixupInductionVariable()
1918 if (PredB == Latch) in createPreheaderForLoop()
1931 if (PredB != Latch) { in createPreheaderForLoop()
1952 if (MO.getMBB() != Latch) in createPreheaderForLoop()
[all …]
/freebsd-12.1/contrib/llvm/lib/CodeGen/
H A DMachineLoopInfo.cpp82 if (MachineBasicBlock *Latch = getLoopLatch()) { in findLoopControlBlock() local
83 if (isLoopExiting(Latch)) in findLoopControlBlock()
84 return Latch; in findLoopControlBlock()
/freebsd-12.1/contrib/llvm/include/llvm/Support/
H A DParallel.h49 class Latch {
55 explicit Latch(uint32_t Count = 0) : Count(Count) {} in Count()
56 ~Latch() { sync(); } in ~Latch()
76 Latch L;
/freebsd-12.1/contrib/llvm/lib/Transforms/Scalar/
H A DInductiveRangeCheckElimination.cpp443 BasicBlock *Latch = nullptr; member
473 Result.Latch = cast<BasicBlock>(Map(Latch)); in map()
753 BasicBlock *Latch = L.getLoopLatch(); in parseLoopStructure() local
754 assert(Latch && "Simplified loops only have one latch!"); in parseLoopStructure()
756 if (Latch->getTerminator()->getMetadata(ClonedLoopTag)) { in parseLoopStructure()
761 if (!L.isLoopExiting(Latch)) { in parseLoopStructure()
797 const SCEV *LatchCount = SE.getExitCount(&L, Latch); in parseLoopStructure()
1032 Result.Latch = Latch; in parseLoopStructure()
1249 BasicBlock *BBInsertLocation = LS.Latch->getNextNode(); in changeIterationSpaceEnd()
1302 NewPHI->addIncoming(PN.getIncomingValueForBlock(LS.Latch), in changeIterationSpaceEnd()
[all …]
H A DLoopUnrollAndJamPass.cpp289 BasicBlock *Latch = L->getLoopLatch(); in tryToUnrollAndJamLoop() local
294 if (Latch != Exit || SubLoopLatch != SubLoopExit) in tryToUnrollAndJamLoop()
373 unsigned OuterTripCount = SE.getSmallConstantTripCount(L, Latch); in tryToUnrollAndJamLoop()
374 unsigned OuterTripMultiple = SE.getSmallConstantTripMultiple(L, Latch); in tryToUnrollAndJamLoop()
H A DLoopLoadElimination.cpp146 return llvm::all_of(Latches, [&](const BasicBlock *Latch) { in doesStoreDominatesAllLatches() argument
147 return DT->dominates(StoreBlock, Latch); in doesStoreDominatesAllLatches()
H A DLoopUnswitch.cpp1520 BasicBlock *Latch = L->getLoopLatch(); in RewriteLoopBodyWithConditionConstant() local
1526 if (Latch && DT->dominates(SISucc, Latch)) in RewriteLoopBodyWithConditionConstant()
H A DSimpleLoopUnswitch.cpp2430 BasicBlock *Latch = L.getLoopLatch(); in calculateUnswitchCostMultiplier() local
2432 if (DT.dominates(CondBlock, Latch) && in calculateUnswitchCostMultiplier()
2450 bool SkipExitingSuccessors = DT.dominates(CondBlock, Latch); in calculateUnswitchCostMultiplier()
H A DLoopStrengthReduce.cpp2100 unsigned Entry, Latch; in OptimizeShadowIV() local
2103 Latch = 1; in OptimizeShadowIV()
2106 Latch = 0; in OptimizeShadowIV()
2116 dyn_cast<BinaryOperator>(PH->getIncomingValue(Latch)); in OptimizeShadowIV()
2148 NewPH->addIncoming(NewIncr, PH->getIncomingBlock(Latch)); in OptimizeShadowIV()
/freebsd-12.1/contrib/llvm/lib/Analysis/
H A DIVDescriptors.cpp678 auto *Latch = TheLoop->getLoopLatch(); in isFirstOrderRecurrence() local
679 if (!Preheader || !Latch) in isFirstOrderRecurrence()
684 Phi->getBasicBlockIndex(Latch) < 0) in isFirstOrderRecurrence()
689 auto *Previous = dyn_cast<Instruction>(Phi->getIncomingValueForBlock(Latch)); in isFirstOrderRecurrence()
941 BasicBlock *Latch = L->getLoopLatch(); in getCastsForInductionPHI() local
942 if (!Latch) in getCastsForInductionPHI()
944 Value *Val = PN->getIncomingValueForBlock(Latch); in getCastsForInductionPHI()
H A DScalarEvolution.cpp6859 const BasicBlock *Latch = L->getLoopLatch(); in getExact() local
6861 if (!Latch) in getExact()
7051 DT.dominates(ExitBB, Latch)) { in computeBackedgeTakenCount()
7084 if (!Latch || !DT.dominates(ExitingBlock, Latch)) in computeExitLimit()
7513 if (!Latch) in computeShiftCompareExitLimit()
7831 BasicBlock *Latch = L->getLoopLatch(); in getConstantEvolutionLoopExitValue() local
7832 if (!Latch) in getConstantEvolutionLoopExitValue()
7911 BasicBlock *Latch = L->getLoopLatch(); in computeExitCountExhaustively() local
9387 BasicBlock *Latch = L->getLoopLatch(); in isLoopBackedgeGuardedByCond() local
9388 if (!Latch) in isLoopBackedgeGuardedByCond()
[all …]
H A DLoopAccessAnalysis.cpp2022 BasicBlock* Latch = TheLoop->getLoopLatch(); in blockNeedsPredication() local
2023 return !DT->dominates(BB, Latch); in blockNeedsPredication()
/freebsd-12.1/contrib/llvm/include/llvm/Analysis/
H A DLoopInfoImpl.h228 BlockT *Latch = nullptr; in getLoopLatch() local
231 if (Latch) in getLoopLatch()
233 Latch = Pred; in getLoopLatch()
237 return Latch; in getLoopLatch()
/freebsd-12.1/contrib/llvm/lib/Support/
H A DParallel.cpp112 parallel::detail::Latch Done;
/freebsd-12.1/contrib/llvm/lib/Transforms/Vectorize/
H A DLoopVectorizationLegality.cpp359 BasicBlock *Latch = Lp->getLoopLatch(); in isUniformLoop() local
360 auto *LatchBr = dyn_cast<BranchInst>(Latch->getTerminator()); in isUniformLoop()
376 Value *IVUpdate = IV->getIncomingValueForBlock(Latch); in isUniformLoop()
H A DLoopVectorize.cpp2361 BasicBlock *Latch = L->getLoopLatch(); in createInductionVariable() local
2364 if (!Latch) in createInductionVariable()
2365 Latch = Header; in createInductionVariable()
2378 Induction->addIncoming(Next, Latch); in createInductionVariable()
2384 Latch->getTerminator()->eraseFromParent(); in createInductionVariable()
3370 auto *Latch = OrigLoop->getLoopLatch(); in fixFirstOrderRecurrence() local
3546 BasicBlock *Latch = OrigLoop->getLoopLatch(); in fixReduction() local
4271 auto *Latch = TheLoop->getLoopLatch(); in collectLoopScalars() local
4472 BasicBlock *Latch = TheLoop->getLoopLatch(); in collectLoopUniforms() local
6728 auto *Latch = OrigLoop->getLoopLatch(); in buildVPlansWithVPRecipes() local
[all …]
/freebsd-12.1/contrib/llvm/lib/Target/ARM/
H A DARMParallelDSP.cpp464 const BasicBlock *Latch = TheLoop->getLoopLatch(); in MatchReductions() local
484 Instruction *Acc = dyn_cast<Instruction>(Phi.getIncomingValueForBlock(Latch)); in MatchReductions()