/llvm-project/llvm/lib/Analysis/ |
H A D | LoopNestAnalysis.cpp | 35 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 D | BlockFrequencyInfoImpl.cpp | 313 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 D | LoopInterchange.cpp | 225 // 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 D | LoopFlatten.cpp | 115 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 D | LoopSimplifyCFG.cpp | 384 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 D | BlockFrequencyInfoImpl.h | 446 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 D | LoopNestAnalysis.h | 40 /// 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 D | multiple-backedges-hal.ll | 41 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 D | LoopGenerators.cpp | 109 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 D | VPlanHCFGBuilder.cpp | 159 /// 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 D | LoopVectorize.cpp | 1841 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 D | LoopInfoTest.cpp | 1631 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 D | ZoneAlgo.cpp | 317 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 D | LoopUtils.cpp | 1890 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 D | ScopHelper.cpp | 568 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 D | ScopInfo.cpp | 2403 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 D | OpenMPIRBuilderTest.cpp | 1573 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
|