Home
last modified time | relevance | path

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

/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 in analyzeLoopNestForPerfectNest()
182 getInterveningInstructions(const Loop & OuterLoop,const Loop & InnerLoop,ScalarEvolution & SE) getInterveningInstructions() argument
315 checkLoopsStructure(const Loop & OuterLoop,const Loop & InnerLoop,ScalarEvolution & SE) checkLoopsStructure() argument
[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 …]
/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopInterchange.cpp225 // before and after swapping OuterLoop vs InnerLoop in populateWorklist()
266 Loop **OuterLoop = LoopList.begin(); in getInnerLoopInductions()
269 (*OuterLoop)->getStartLoc(),
270 (*OuterLoop)->getHeader())
286 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {}
322 Loop *OuterLoop;
344 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {}
347 bool isProfitable(const Loop *InnerLoop, const Loop *OuterLoop,
362 Loop *OuterLoop;
378 : OuterLoop(Oute in run()
281 Loop *OuterLoop; global() member in __anone99bb3080211::LoopInterchangeLegality
321 Loop *OuterLoop; global() member in __anone99bb3080211::LoopInterchangeProfitability
350 Loop *OuterLoop; global() member in __anone99bb3080211::LoopInterchangeTransform
547 tightlyNested(Loop * OuterLoop,Loop * InnerLoop) tightlyNested() argument
884 areOuterLoopExitPHIsSupported(Loop * OuterLoop,Loop * InnerLoop) areOuterLoopExitPHIsSupported() argument
917 areInnerLoopLatchPHIsSupported(Loop * OuterLoop,Loop * InnerLoop) areInnerLoopLatchPHIsSupported() argument
1154 isProfitable(const Loop * InnerLoop,const Loop * OuterLoop,unsigned InnerLoopId,unsigned OuterLoopId,CharMatrix & DepMatrix,const DenseMap<const Loop *,unsigned> & CostMap,std::unique_ptr<CacheCost> & CC) isProfitable() argument
1196 removeChildLoop(Loop * OuterLoop,Loop * InnerLoop) removeChildLoop() argument
[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 in CanFlattenLoopPair()
1014 auto *OuterLoop = InnerLoop->getParentLoop(); run() local
[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()
404 // Some values from loops in [OuterLoop, StillReachable) could be used in handleDeadExits()
407 Loop *FixLCSSALoop = OuterLoop; in handleDeadExits()
/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,
462 /// OuterLoop (or the top-level function, if \c OuterLoop is \c nullptr).
467 analyzeIrreducible(const bfi_detail::IrreducibleGraph &G, LoopData *OuterLoop,
472 /// Update \c OuterLoop. Before finding irreducible control flow, it was
475 /// up need to be removed from \a OuterLoop::Nodes.
476 void updateLoopWithIrreducible(LoopData &OuterLoop);
484 void distributeMass(const BlockNode &Source, LoopData *OuterLoop,
626 /// Construct an explicit graph of the control flow in \c OuterLoop (o
[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,
/llvm-project/llvm/test/Analysis/MemorySSA/
H A Dmultiple-backedges-hal.ll41 br label %OuterLoop
43 OuterLoop:
54 ; CHECK: 4 = MemoryPhi({OuterLoop,2},{InnerLoop,3})
68 br i1 %KeepGoing.Tail, label %End, label %OuterLoop
/llvm-project/polly/lib/CodeGen/
H A DLoopGenerators.cpp109 Loop *OuterLoop = LI.getLoopFor(BeforeBB); in createLoop()
112 if (OuterLoop) in createLoop()
113 OuterLoop->addChildLoop(NewLoop); in createLoop()
117 if (OuterLoop) { in createLoop()
119 OuterLoop->addBasicBlockToLoop(GuardBB, LI); in createLoop()
120 OuterLoop->addBasicBlockToLoop(PreHeaderBB, LI); in createLoop()
104 Loop *OuterLoop = LI.getLoopFor(BeforeBB); createLoop() local
/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVPlanHCFGBuilder.cpp159 /// Return true of \p L loop is contained within \p OuterLoop.
160 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.cpp1841 Loop *OuterLoop = nullptr;
1950 OuterLoop = L->getParentLoop(); in Create()
1987 if (OuterLoop) { in getCost()
1994 if (SE->isLoopInvariant(Cond, OuterLoop)) { in getCost()
2002 PSE, OuterLoop, /* CanUseConstantMax = */ false)) in getCost()
2082 if (OuterLoop) in ~GeneratedRTChecks()
2083 OuterLoop->addBasicBlockToLoop(SCEVCheckBlock, *LI); in ~GeneratedRTChecks()
2117 if (OuterLoop) in emitSCEVChecks()
2118 OuterLoop->addBasicBlockToLoop(MemCheckBlock, *LI); in emitSCEVChecks()
1878 Loop *OuterLoop = nullptr; global() member in __anone1bc88200611::GeneratedRTChecks
/llvm-project/llvm/unittests/Analysis/
H A DLoopInfoTest.cpp1631 Loop *OuterLoop = LI.getLoopFor(OuterHeader); in TEST() local
1634 EXPECT_NE(OuterLoop, nullptr); in TEST()
1637 EXPECT_TRUE(OuterLoop->isLCSSAForm(DT, /*IgnoreTokens*/ true)); in TEST()
1638 EXPECT_FALSE(OuterLoop->isLCSSAForm(DT, /*IgnoreTokens*/ false)); in TEST()
1642 OuterLoop->isRecursivelyLCSSAForm(DT, LI, /*IgnoreTokens*/ true)); in TEST()
1644 OuterLoop->isRecursivelyLCSSAForm(DT, LI, /*IgnoreTokens*/ false)); in TEST()
/llvm-project/polly/lib/Transform/
H A DZoneAlgo.cpp317 static bool isInsideLoop(Loop *OuterLoop, Loop *InnerLoop) { in isInsideLoop() argument
320 return !OuterLoop || OuterLoop->contains(InnerLoop); in isInsideLoop()
/llvm-project/llvm/lib/Transforms/Utils/
H A DLoopUtils.cpp1890 const Loop *OuterLoop = TheLoop->getParentLoop(); in addDiffRuntimeChecks()
1894 HighAR->getLoop() == OuterLoop && LowAR->getLoop() == OuterLoop) { in addDiffRuntimeChecks()
1895 BasicBlock *OuterLoopLatch = OuterLoop->getLoopLatch(); in addDiffRuntimeChecks()
1896 const SCEV *OuterExitCount = SE.getExitCount(OuterLoop, OuterLoopLatch); in addDiffRuntimeChecks()
1745 const Loop *OuterLoop = TheLoop->getParentLoop(); expandBounds() local
/llvm-project/polly/lib/Support/
H A DScopHelper.cpp568 Loop *OuterLoop = R.outermostLoopInRegion(L); in isHoistableLoad()
569 if (!SE.isLoopInvariant(PtrSCEV, OuterLoop)) in isHoistableLoad()
512 Loop *OuterLoop = R.outermostLoopInRegion(L); hasVariantIndex() local
/llvm-project/polly/lib/Analysis/
H A DScopInfo.cpp2403 Loop *OuterLoop = R.outermostLoopInRegion(const_cast<Loop *>(L)); in getArrayInfoByName()
2404 assert(OuterLoop); in getArrayInfoByName()
2405 return L->getLoopDepth() - OuterLoop->getLoopDepth(); in getArrayInfoByName()
2397 Loop *OuterLoop = R.outermostLoopInRegion(const_cast<Loop *>(L)); getRelativeLoopDepth() local
/llvm-project/llvm/unittests/Frontend/
H A DOpenMPIRBuilderTest.cpp1573 ASSERT_EXPECTED_INIT(CanonicalLoopInfo *, OuterLoop, in TEST_F()
1579 Builder.restoreIP(OuterLoop->getAfterIP()); in TEST_F()
1583 OMPBuilder.collapseLoops(DL, {OuterLoop, InnerLoop}, ComputeIP); in TEST_F()
1696 CanonicalLoopInfo *, OuterLoop, in TEST_F()
1701 Builder.restoreIP(OuterLoop->getAfterIP()); in TEST_F()
1708 DL, {OuterLoop, InnerLoop}, {OuterTileSize, InnerTileSize}); in TEST_F()
1802 ASSERT_EXPECTED_INIT(CanonicalLoopInfo *, OuterLoop, in TEST_F()
1809 Builder.restoreIP(OuterLoop->getAfterIP()); in TEST_F()
1816 OMPBuilder.tileLoops(DL, {OuterLoop, InnerLoop}, {TileSize0, TileSize1}); in TEST_F()
1475 CanonicalLoopInfo *OuterLoop = OMPBuilder.createCanonicalLoop( TEST_F() local
1590 CanonicalLoopInfo *OuterLoop = OMPBuilder.createCanonicalLoop( TEST_F() local
1691 CanonicalLoopInfo *OuterLoop = OMPBuilder.createCanonicalLoop( TEST_F() local