| /freebsd/contrib/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.getBounds(SE); in analyzeLoopNestForPerfectNest() [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 …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
| H A D | LoopInterchange.cpp | 317 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 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->isLoopInvariant(FI.InnerTripCount)) { in CanFlattenLoopPair() [all …]
|
| H A D | LoopSimplifyCFG.cpp | 398 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 D | BlockFrequencyInfoImpl.h | 443 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 D | LoopNestAnalysis.h | 52 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 D | LoopIdiomVectorize.cpp | 1228 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 D | LoopVectorize.cpp | 1773 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 D | LoopUtils.cpp | 1897 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()
|