Home
last modified time | relevance | path

Searched refs:OuterLoop (Results 1 – 10 of 10) sorted by relevance

/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DLoopNestAnalysis.cpp35 static bool checkLoopsStructure(const Loop &OuterLoop, const Loop &InnerLoop,
52 static CmpInst *getOuterLoopLatchCmp(const Loop &OuterLoop) { in getOuterLoopLatchCmp() argument
54 const BasicBlock *Latch = OuterLoop.getLoopLatch(); in getOuterLoopLatchCmp()
103 bool LoopNest::arePerfectlyNested(const Loop &OuterLoop, const Loop &InnerLoop, in arePerfectlyNested() argument
105 return (analyzeLoopNestForPerfectNest(OuterLoop, InnerLoop, SE) == in arePerfectlyNested()
110 const Loop &OuterLoop, const Loop &InnerLoop, ScalarEvolution &SE) { in analyzeLoopNestForPerfectNest() argument
112 assert(!OuterLoop.isInnermost() && "Outer loop should have subloops"); in analyzeLoopNestForPerfectNest()
114 LLVM_DEBUG(dbgs() << "Checking whether loop '" << OuterLoop.getName() in analyzeLoopNestForPerfectNest()
124 if (!checkLoopsStructure(OuterLoop, InnerLoop, SE)) { in analyzeLoopNestForPerfectNest()
130 auto OuterLoopLB = OuterLoop.getBounds(SE); in analyzeLoopNestForPerfectNest()
[all …]
H A DBlockFrequencyInfoImpl.cpp313 const LoopData *OuterLoop, in addToDist() argument
320 auto isLoopHeader = [&OuterLoop](const BlockNode &Node) { in addToDist()
321 return OuterLoop && OuterLoop->isHeader(Node); in addToDist()
345 if (Working[Resolved.Index].getContainingLoop() != OuterLoop) { in addToDist()
354 assert((!OuterLoop || !OuterLoop->isIrreducible()) && in addToDist()
365 assert(OuterLoop && OuterLoop->isIrreducible() && !isLoopHeader(Resolved) && in addToDist()
375 const LoopData *OuterLoop, LoopData &Loop, Distribution &Dist) { in addLoopSuccessorsToDist() argument
378 if (!addToDist(Dist, OuterLoop, Loop.getHeader(), I.first, in addLoopSuccessorsToDist()
448 LoopData *OuterLoop, in distributeMass() argument
466 assert(OuterLoop && "backedge or exit outside of loop"); in distributeMass()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopInterchange.cpp245 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {} in LoopInterchangeLegality()
281 Loop *OuterLoop; member in __anon815ea8750211::LoopInterchangeLegality
303 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {} in LoopInterchangeProfitability()
306 bool isProfitable(const Loop *InnerLoop, const Loop *OuterLoop,
321 Loop *OuterLoop; member in __anon815ea8750211::LoopInterchangeProfitability
337 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), LI(LI), DT(DT), LIL(LIL) {} in LoopInterchangeTransform()
344 void removeChildLoop(Loop *OuterLoop, Loop *InnerLoop);
350 Loop *OuterLoop; member in __anon815ea8750211::LoopInterchangeTransform
503 bool processLoop(Loop *InnerLoop, Loop *OuterLoop, unsigned InnerLoopId, in processLoop()
509 LoopInterchangeLegality LIL(OuterLoop, InnerLoop, SE, ORE); in processLoop()
[all …]
H A DLoopFlatten.cpp115 Loop *OuterLoop = nullptr; // The loop pair to be flattened. member
151 FlattenInfo(Loop *OL, Loop *IL) : OuterLoop(OL), InnerLoop(IL){}; in FlattenInfo()
508 if (!OuterPHI || OuterPHI->getParent() != FI.OuterLoop->getHeader()) { in checkPHIs()
518 OuterPHI->getIncomingValueForBlock(FI.OuterLoop->getLoopLatch())); in checkPHIs()
539 for (PHINode &OuterPHI : FI.OuterLoop->getHeader()->phis()) { in checkPHIs()
562 for (auto *B : FI.OuterLoop->getBlocks()) { in checkOuterLoopInsts()
646 Function *F = FI.OuterLoop->getHeader()->getParent(); in checkOverflow()
658 FI.OuterLoop->getLoopPreheader()->getTerminator())); in checkOverflow()
709 if (!findLoopComponents(FI.OuterLoop, IterationInstructions, in CanFlattenLoopPair()
716 if (!FI.OuterLoop->isLoopInvariant(FI.InnerTripCount)) { in CanFlattenLoopPair()
[all …]
H A DLoopSimplifyCFG.cpp384 if (Loop *OuterLoop = LI.getLoopFor(Preheader)) { in handleDeadExits() local
393 if (StillReachable != OuterLoop) { in handleDeadExits()
395 removeBlockFromLoops(NewPreheader, OuterLoop, StillReachable); in handleDeadExits()
397 removeBlockFromLoops(BB, OuterLoop, StillReachable); in handleDeadExits()
398 OuterLoop->removeChildLoop(&L); in handleDeadExits()
407 Loop *FixLCSSALoop = OuterLoop; in handleDeadExits()
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DBlockFrequencyInfoImpl.h446 bool addLoopSuccessorsToDist(const LoopData *OuterLoop, LoopData &Loop,
456 bool addToDist(Distribution &Dist, const LoopData *OuterLoop,
467 analyzeIrreducible(const bfi_detail::IrreducibleGraph &G, LoopData *OuterLoop,
476 void updateLoopWithIrreducible(LoopData &OuterLoop);
484 void distributeMass(const BlockNode &Source, LoopData *OuterLoop,
634 IrreducibleGraph(BFIBase &BFI, const BFIBase::LoopData *OuterLoop,
636 initialize(OuterLoop, addBlockEdges);
640 void initialize(const BFIBase::LoopData *OuterLoop,
642 void addNodesInLoop(const BFIBase::LoopData &OuterLoop);
652 void addEdges(const BlockNode &Node, const BFIBase::LoopData *OuterLoop,
[all …]
H A DLoopNestAnalysis.h40 /// Return true if the given loops \p OuterLoop and \p InnerLoop are
51 static bool arePerfectlyNested(const Loop &OuterLoop, const Loop &InnerLoop,
55 /// by loops \p OuterLoop and \p InnerLoop from being perfect.
56 static InstrVectorTy getInterveningInstructions(const Loop &OuterLoop,
193 static LoopNestEnum analyzeLoopNestForPerfectNest(const Loop &OuterLoop,
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVPlanHCFGBuilder.cpp160 static bool doesContainLoop(const Loop *L, const Loop *OuterLoop) { in doesContainLoop() argument
161 if (L->getLoopDepth() < OuterLoop->getLoopDepth()) in doesContainLoop()
165 if (P == OuterLoop) in doesContainLoop()
H A DLoopVectorize.cpp1833 Loop *OuterLoop = nullptr; member in __anon71de2b2d0611::GeneratedRTChecks
1933 OuterLoop = L->getParentLoop(); in Create()
1972 if (OuterLoop) { in getCost()
1979 if (SE->isLoopInvariant(Cond, OuterLoop)) { in getCost()
1986 if (unsigned SmallTC = SE->getSmallConstantTripCount(OuterLoop)) in getCost()
1990 if (auto EstimatedTC = getLoopEstimatedTripCount(OuterLoop)) in getCost()
2072 if (OuterLoop) in emitSCEVChecks()
2073 OuterLoop->addBasicBlockToLoop(SCEVCheckBlock, *LI); in emitSCEVChecks()
2107 if (OuterLoop) in emitMemRuntimeChecks()
2108 OuterLoop->addBasicBlockToLoop(MemCheckBlock, *LI); in emitMemRuntimeChecks()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DLoopUtils.cpp1830 const Loop *OuterLoop = TheLoop->getParentLoop(); in expandBounds() local
1834 HighAR->getLoop() == OuterLoop && LowAR->getLoop() == OuterLoop) { in expandBounds()
1835 BasicBlock *OuterLoopLatch = OuterLoop->getLoopLatch(); in expandBounds()
1836 const SCEV *OuterExitCount = SE.getExitCount(OuterLoop, OuterLoopLatch); in expandBounds()