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.cpp317 Loop *OuterLoop = LoopList.front(); in hasSupportedLoopDepth() local
320 OuterLoop->getStartLoc(), in hasSupportedLoopDepth()
321 OuterLoop->getHeader()) in hasSupportedLoopDepth()
358 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {} in LoopInterchangeLegality()
398 Loop *OuterLoop; member in __anon815ea8750411::LoopInterchangeLegality
451 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {} in LoopInterchangeProfitability()
454 bool isProfitable(const Loop *InnerLoop, const Loop *OuterLoop,
466 Loop *OuterLoop; member in __anon815ea8750411::LoopInterchangeProfitability
482 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), LI(LI), DT(DT), LIL(LIL) {} in LoopInterchangeTransform()
489 void removeChildLoop(Loop *OuterLoop, Loop *InnerLoop);
[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.cpp398 if (Loop *OuterLoop = LI.getLoopFor(Preheader)) { in handleDeadExits() local
407 if (StillReachable != OuterLoop) { in handleDeadExits()
409 removeBlockFromLoops(NewPreheader, OuterLoop, StillReachable); in handleDeadExits()
411 removeBlockFromLoops(BB, OuterLoop, StillReachable); in handleDeadExits()
412 OuterLoop->removeChildLoop(&L); in handleDeadExits()
421 Loop *FixLCSSALoop = OuterLoop; in handleDeadExits()
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DBlockFrequencyInfoImpl.h443 bool addLoopSuccessorsToDist(const LoopData *OuterLoop, LoopData &Loop,
453 bool addToDist(Distribution &Dist, const LoopData *OuterLoop,
464 analyzeIrreducible(const bfi_detail::IrreducibleGraph &G, LoopData *OuterLoop,
473 void updateLoopWithIrreducible(LoopData &OuterLoop);
481 void distributeMass(const BlockNode &Source, LoopData *OuterLoop,
631 IrreducibleGraph(BFIBase &BFI, const BFIBase::LoopData *OuterLoop,
633 initialize(OuterLoop, addBlockEdges);
637 void initialize(const BFIBase::LoopData *OuterLoop,
639 void addNodesInLoop(const BFIBase::LoopData &OuterLoop);
649 void addEdges(const BlockNode &Node, const BFIBase::LoopData *OuterLoop,
[all …]
H A DLoopNestAnalysis.h52 static bool arePerfectlyNested(const Loop &OuterLoop, const Loop &InnerLoop,
57 static InstrVectorTy getInterveningInstructions(const Loop &OuterLoop,
194 static LoopNestEnum analyzeLoopNestForPerfectNest(const Loop &OuterLoop,
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DLoopIdiomVectorize.cpp1228 auto OuterLoop = LI->AllocateLoop(); in expandFindFirstByte() local
1233 ParentLoop->addChildLoop(OuterLoop); in expandFindFirstByte()
1236 LI->addTopLevelLoop(OuterLoop); in expandFindFirstByte()
1240 OuterLoop->addChildLoop(InnerLoop); in expandFindFirstByte()
1243 OuterLoop->addBasicBlockToLoop(BB1, *LI); in expandFindFirstByte()
1244 OuterLoop->addBasicBlockToLoop(BB5, *LI); in expandFindFirstByte()
1378 OuterLoop->verifyLoop(); in expandFindFirstByte()
1380 if (!OuterLoop->isRecursivelyLCSSAForm(*DT, *LI)) in expandFindFirstByte()
H A DLoopVectorize.cpp1773 Loop *OuterLoop = nullptr; member in __anon71de2b2d0511::GeneratedRTChecks
1889 OuterLoop = L->getParentLoop(); in create()
1926 if (OuterLoop) { in getCost()
1933 if (SE->isLoopInvariant(Cond, OuterLoop)) { in getCost()
1941 PSE, OuterLoop, /* CanUseConstantMax = */ false)) in getCost()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DLoopUtils.cpp1897 const Loop *OuterLoop = TheLoop->getParentLoop(); in expandBounds() local
1901 HighAR->getLoop() == OuterLoop && LowAR->getLoop() == OuterLoop) { in expandBounds()
1902 BasicBlock *OuterLoopLatch = OuterLoop->getLoopLatch(); in expandBounds()
1903 const SCEV *OuterExitCount = SE.getExitCount(OuterLoop, OuterLoopLatch); in expandBounds()