/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
H A D | LoopUtils.h | 32 class Loop; variable 123 Loop &L, MemorySSA &MSSA); 155 Loop *OutermostLoop = nullptr); 237 getOptionalElementCountLoopAttribute(const Loop *TheLoop); 269 bool hasDisableAllTransformsHint(const Loop *L); 272 bool hasDisableLICMTransformsHint(const Loop *L); 303 TransformationMode hasUnrollTransformation(const Loop *L); 322 getLoopEstimatedTripCount(Loop *L, 485 void setProfileInfoAfterUnrolling(Loop *OrigLoop, Loop *UnrolledLoop, 515 Loop *cloneLoop(Loop *L, Loop *PL, ValueToValueMapTy &VM, [all …]
|
H A D | UnrollLoop.h | 29 class Loop; variable 38 using NewLoopsMap = SmallDenseMap<const Loop *, Loop *, 4>; 49 const Loop* addClonedBlockToLoopInfo(BasicBlock *OriginalBB, 82 Loop **RemainderLoop = nullptr); 85 Loop *L, unsigned Count, bool AllowExpensiveTripCount, 89 Loop **ResultLoop = nullptr); 97 Loop **EpilogueLoop = nullptr); 102 void simplifyLoopAfterUnroll(Loop *L, bool SimplifyIVs, LoopInfo *LI, 110 Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI, 130 UnrollCostEstimator(const Loop *L, const TargetTransformInfo &TTI, [all …]
|
H A D | LoopConstrainer.h | 22 class Loop; variable 84 parseLoopStructure(ScalarEvolution &, Loop &, bool, const char *&); 141 Loop *createClonedLoopStructure(Loop *Original, Loop *Parent, 195 function_ref<void(Loop *, bool)> LPMAddNewLoop; 198 Loop &OriginalLoop; 216 LoopConstrainer(Loop &L, LoopInfo &LI, 217 function_ref<void(Loop *, bool)> LPMAddNewLoop,
|
H A D | LoopVersioning.h | 24 class Loop; variable 48 ArrayRef<RuntimePointerCheck> Checks, Loop *L, LoopInfo *LI, 73 Loop *getVersionedLoop() { return VersionedLoop; } in getVersionedLoop() 77 Loop *getNonVersionedLoop() { return NonVersionedLoop; } in getNonVersionedLoop() 114 Loop *VersionedLoop; 117 Loop *NonVersionedLoop = nullptr;
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | LoopInfo.h | 33 class Loop; variable 44 class LLVM_EXTERNAL_VISIBILITY Loop : public LoopBase<BasicBlock, Loop> { 226 LoopBounds(const Loop &Loop, Value &I, Instruction &SI, Value *SV, Value &F, in LoopBounds() 231 const Loop &L; 396 Loop() = default; 400 explicit Loop(BasicBlock *BB) : LoopBase<BasicBlock, Loop>(BB) {} in Loop() function 401 ~Loop() = default; 435 void erase(Loop *L); 485 auto Contains = [](const Loop *Outer, const Loop *Inner) { in movementPreservesLCSSAForm() 557 typedef Loop *NodeRef; [all …]
|
H A D | LoopNestAnalysis.h | 23 using LoopVectorTy = SmallVector<Loop *, 8>; 33 LoopNest(Loop &Root, ScalarEvolution &SE); 51 static bool arePerfectlyNested(const Loop &OuterLoop, const Loop &InnerLoop, 80 Loop &getOutermostLoop() const { return *Loops.front(); } in getOutermostLoop() 85 Loop *getInnermostLoop() const { in getInnermostLoop() 92 Loop *LastLoop = Loops.back(); in getInnermostLoop() 100 Loop *getLoop(unsigned Index) const { in getLoop() 106 unsigned getLoopIndex(const Loop &L) const { in getLoopIndex() 117 ArrayRef<Loop *> getLoops() const { return Loops; } in getLoops() 125 Loop *L = getLoop(I); in getLoopsAtDepth() [all …]
|
H A D | LoopCacheAnalysis.h | 29 class Loop; variable 35 using LoopVectorTy = SmallVector<Loop *, 8>; 96 CacheCostTy computeRefCost(const Loop &L, unsigned CLS) const; 107 bool isLoopInvariant(const Loop &L) const; 121 int getSubscriptIndex(const Loop &L) const; 129 const Loop &L) const; 191 using LoopTripCountTy = std::pair<const Loop *, unsigned>; 215 CacheCostTy getLoopCost(const Loop &L) const { in getLoopCost() 237 CacheCostTy computeLoopCacheCost(const Loop &L, 251 const Loop &L) const; [all …]
|
H A D | ScalarEvolution.h | 58 class Loop; variable 933 void forgetLoop(const Loop *L); 939 void forgetTopmostLoop(const Loop *L); 1278 const SCEV *S, const Loop *L, 1303 bool loopHasNoAbnormalExits(const Loop *L) { 1309 bool loopIsFiniteByAssumption(const Loop *L); 1613 LoopProperties getLoopProperties(const Loop *L); 1615 bool loopHasNoSideEffects(const Loop *L) { 1779 const Loop *L; 2070 const Loop *L); [all …]
|
H A D | DependenceAnalysis.h | 50 class Loop; variable 412 const Loop *AssociatedLoop; 457 const Loop *getAssociatedLoop() const; 562 const Loop *LoopNest, 568 const Loop *LoopNest, 574 const Loop *LoopNest, 675 const Loop *CurrentLoop, 712 const Loop *CurrentLoop, 765 const Loop *SrcLoop, 766 const Loop *DstLoop, [all …]
|
H A D | LoopPass.h | 23 class Loop; variable 39 virtual bool runOnLoop(Loop *L, LPPassManager &LPM) = 0; 45 virtual bool doInitialization(Loop *L, LPPassManager &LPM) { in doInitialization() 73 bool skipLoop(const Loop *L) const; 109 void addLoop(Loop &L); 112 void markLoopAsDeleted(Loop &L); 115 std::deque<Loop *> LQ; 117 Loop *CurrentLoop;
|
H A D | BlockFrequencyInfoImpl.h | 63 class Loop; variable 286 bool isLoopHeader() const { return Loop && Loop->isHeader(Node); } in isLoopHeader() 289 return isLoopHeader() && Loop->Parent && Loop->Parent->isIrreducible() && in isDoubleLoopHeader() 295 return Loop; in getContainingLoop() 320 if (!Loop || !Loop->IsPackaged) in getPackagedLoop() 322 auto *L = Loop; in getPackagedLoop() 553 using LoopT = Loop; 1222 if (!Loop) 1231 Working[Index].Loop = HeaderData.Loop; 1313 if (!propagateMassToSuccessors(&Loop, Loop.getHeader())) [all …]
|
H A D | LoopAnalysisManager.h | 40 class Loop; variable 65 extern template class AllAnalysesOn<Loop>; 67 extern template class AnalysisManager<Loop, LoopStandardAnalysisResults &>; 74 typedef AnalysisManager<Loop, LoopStandardAnalysisResults &> 151 extern template class OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop, 154 typedef OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop,
|
H A D | IVDescriptors.h | 27 class Loop; variable 126 static InstDesc isRecurrenceInstr(Loop *L, PHINode *Phi, Instruction *I, 152 static InstDesc isAnyOfPattern(Loop *Loop, PHINode *OrigPhi, Instruction *I, 170 AddReductionVar(PHINode *Phi, RecurKind Kind, Loop *TheLoop, 181 isReductionPHI(PHINode *Phi, Loop *TheLoop, RecurrenceDescriptor &RedDes, 194 static bool isFixedOrderRecurrence(PHINode *Phi, Loop *TheLoop, 265 Loop *L) const; 336 isInductionPHI(PHINode *Phi, const Loop *L, ScalarEvolution *SE, 343 static bool isFPInductionPHI(PHINode *Phi, const Loop *L, ScalarEvolution *SE, 352 static bool isInductionPHI(PHINode *Phi, const Loop *L,
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | MachineLoopUtils.cpp | 30 MachineFunction &MF = *Loop->getParent(); in PeelSingleBlockLoop() 32 if (Preheader == Loop) in PeelSingleBlockLoop() 35 if (Exit == Loop) in PeelSingleBlockLoop() 36 Exit = *std::next(Loop->succ_begin()); in PeelSingleBlockLoop() 40 MF.insert(Loop->getIterator(), NewBB); in PeelSingleBlockLoop() 46 for (MachineInstr &MI : *Loop) { in PeelSingleBlockLoop() 111 NewBB->addSuccessor(Loop); in PeelSingleBlockLoop() 113 Preheader->updateTerminator(Loop); in PeelSingleBlockLoop() 117 Loop->replaceSuccessor(Exit, NewBB); in PeelSingleBlockLoop() 118 Exit->replacePhiUsesWith(Loop, NewBB); in PeelSingleBlockLoop() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | LoopInfo.cpp | 201 std::optional<Loop::LoopBounds> 202 Loop::LoopBounds::getBounds(const Loop &L, PHINode &IndVar, in getBounds() 287 std::optional<Loop::LoopBounds> Loop::getBounds(ScalarEvolution &SE) const { in getBounds() 501 MDNode *Loop::getLoopID() const { in getLoopID() 633 Loop::LocRange Loop::getLocRange() const { in getLocRange() 682 Loop &Unloop; 691 DenseMap<Loop *, Loop *> SubloopParents; 707 Loop *getNearestLoop(BasicBlock *BB, Loop *BBLoop); 801 Loop *UnloopUpdater::getNearestLoop(BasicBlock *BB, Loop *BBLoop) { in getNearestLoop() 805 Loop *NearLoop = BBLoop; in getNearestLoop() [all …]
|
H A D | LoopNestAnalysis.cpp | 35 static bool checkLoopsStructure(const Loop &OuterLoop, const Loop &InnerLoop, 42 LoopNest::LoopNest(Loop &Root, ScalarEvolution &SE) in LoopNest() 47 std::unique_ptr<LoopNest> LoopNest::getLoopNest(Loop &Root, in getLoopNest() 103 bool LoopNest::arePerfectlyNested(const Loop &OuterLoop, const Loop &InnerLoop, in arePerfectlyNested() 110 const Loop &OuterLoop, const Loop &InnerLoop, ScalarEvolution &SE) { in analyzeLoopNestForPerfectNest() 182 const Loop &OuterLoop, const Loop &InnerLoop, ScalarEvolution &SE) { in getInterveningInstructions() 245 for (Loop *L : depth_first(const_cast<Loop *>(Loops.front()))) { in getPerfectLoops() 265 const Loop *CurrentLoop = &Root; in getMaxPerfectDepth() 270 const Loop *InnerLoop = SubLoops->front(); in getMaxPerfectDepth() 315 static bool checkLoopsStructure(const Loop &OuterLoop, const Loop &InnerLoop, in checkLoopsStructure() [all …]
|
H A D | BlockFrequencyInfoImpl.cpp | 412 Loop.Scale = in computeLoopScale() 428 Loop->Exits.clear(); in packageLoop() 431 Loop.IsPackaged = true; in packageLoop() 517 << ": mass = " << Loop.Mass << ", scale = " << Loop.Scale in unwrapLoop() 519 Loop.Scale *= Loop.Mass.toScaled(); in unwrapLoop() 520 Loop.IsPackaged = false; in unwrapLoop() 543 unwrapLoop(*this, Loop); in unwrapLoops() 634 return getBlockName(Loop.getHeader()) + (Loop.isIrreducible() ? "**" : "*"); in getLoopName() 790 BFI.Working[N.Index].Loop->Parent = &*Loop; in createIrreducibleLoop() 792 BFI.Working[N.Index].Loop = &*Loop; in createIrreducibleLoop() [all …]
|
H A D | LoopAnalysisManager.cpp | 23 template class AllAnalysesOn<Loop>; 24 template class AnalysisManager<Loop, LoopStandardAnalysisResults &>; 26 template class OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop, 37 SmallVector<Loop *, 4> PreOrderLoops = LI->getLoopsInReverseSiblingPreorder(); in invalidate() 63 for (Loop *L : PreOrderLoops) { in invalidate() 85 PA.allAnalysesInSetPreserved<AllAnalysesOn<Loop>>(); in invalidate() 93 for (Loop *L : reverse(PreOrderLoops)) { in invalidate()
|
H A D | LoopCacheAnalysis.cpp | 62 static Loop *getInnerMostLoop(const LoopVectorTy &Loops) { in getInnerMostLoop() 65 Loop *LastLoop = Loops.back(); in getInnerMostLoop() 66 Loop *ParentLoop = LastLoop->getParentLoop(); in getInnerMostLoop() 74 [](const Loop *L1, const Loop *L2) { in getInnerMostLoop() 272 CacheCostTy IndexedReference::computeRefCost(const Loop &L, in computeRefCost() 375 if (Loop *L = LI.getLoopFor(BB)) { in delinearize() 551 const Loop *L = LC.first; in operator <<() 565 for (const Loop *L : Loops) { in CacheCost() 601 for (const Loop *L : Loops) { in calculateCacheFootprint() 618 Loop *InnerMostLoop = getInnerMostLoop(Loops); in populateReferenceGroups() [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
H A D | LoopPassManager.h | 204 static const Loop &getLoopFromIR(Loop &L) { return L; } in getLoopFromIR() 205 static const Loop &getLoopFromIR(LoopNest &LN) { in getLoopFromIR() 291 void setParentLoop(Loop *L) { 311 for (Loop *NewL : NewChildLoops) 332 for (Loop *NewL : NewSibLoops) 373 SmallPriorityWorklist<Loop *, 4> &Worklist; 378 Loop *CurrentL; 386 Loop *ParentL; 402 const Loop &L = getLoopFromIR(IR); 405 if (!PI.runBeforePass<Loop>(*Pass, L)) [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | LoopInterchange.cpp | 270 bool tightlyNested(Loop *Outer, Loop *Inner); 281 Loop *OuterLoop; 282 Loop *InnerLoop; 306 bool isProfitable(const Loop *InnerLoop, const Loop *OuterLoop, 321 Loop *OuterLoop; 322 Loop *InnerLoop; 341 void restructureLoops(Loop *NewInner, Loop *NewOuter, 344 void removeChildLoop(Loop *OuterLoop, Loop *InnerLoop); 350 Loop *OuterLoop; 351 Loop *InnerLoop; [all …]
|
H A D | LoopPassManager.cpp | 41 PA.preserveSet<AllAnalysesOn<Loop>>(); in run() 87 Loop *OuterMostLoop = &L; in runWithLoopNestPasses() 253 SmallPriorityWorklist<Loop *, 4> Worklist; in run() 264 for (Loop *L : LI) in run() 272 assert(llvm::any_cast<const Loop *>(&IR) || in run() 274 const Loop **LPtr = llvm::any_cast<const Loop *>(&IR); in run() 275 const Loop *L = LPtr ? *LPtr : nullptr; in run() 288 Loop *L = Worklist.pop_back_val(); in run() 303 if (!PI.runBeforePass<Loop>(*Pass, *L)) in run() 312 PI.runAfterPass<Loop>(*Pass, *L, PassPA); in run() [all …]
|
H A D | SimpleLoopUnswitch.cpp | 481 Loop *Current = TopMost; in getTopMostExitingLoop() 791 Loop *OuterL = &L; in unswitchTrivialSwitch() 1350 static Loop *cloneLoopNest(Loop &OrigRootL, Loop *RootParentL, in cloneLoopNest() 1352 auto AddClonedBlocksToLoop = [&](Loop &OrigL, Loop &ClonedL) { in cloneLoopNest() 1378 SmallVector<std::pair<Loop *, Loop *>, 16> LoopsToClone; in cloneLoopNest() 1412 Loop *ClonedL = nullptr; in buildClonedLoops() 1424 Loop *ParentL = nullptr; in buildClonedLoops() 1901 Loop *ParentL = nullptr; in rebuildLoopAfterUnswitch() 2247 Loop *OuterExitL = &L; in unswitchNontrivialInvariants() 2591 for (Loop *UpdatedL : in unswitchNontrivialInvariants() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | LoopUnrollAndJam.cpp | 71 Loop *SubLoop = L.getSubLoops()[0]; in partitionLoopBlocks() 101 Loop &Root, Loop &JamLoop, BasicBlockSet &JamLoopBlocks, in partitionOuterLoopBlocks() 106 for (Loop *L : Root.getLoopsInPreorder()) { in partitionOuterLoopBlocks() 119 static bool partitionOuterLoopBlocks(Loop *L, Loop *SubLoop, in partitionOuterLoopBlocks() 226 Loop *SubLoop = *L->begin(); in UnrollAndJamLoop() 365 SmallDenseMap<const Loop *, Loop *, 4> NewLoops; in UnrollAndJamLoop() 758 for (Loop *L : Root.getLoopsInPreorder()) in checkDependencies() 808 const Loop *L = &Root; in isEligibleLoopForm() 853 static Loop *getInnerMostLoop(Loop *L) { in getInnerMostLoop() 918 Loop *JamLoop = getInnerMostLoop(L); in isSafeToUnrollAndJam() [all …]
|
H A D | LoopUtils.cpp | 715 Loop::iterator I = find(*LI, L); in deleteDeadLoop() 848 llvm::getLoopEstimatedTripCount(Loop *L, in getLoopEstimatedTripCount() 900 Loop *OuterL = InnerLoop->getParentLoop(); in hasIterationCountInvariantInParent() 1556 void llvm::setProfileInfoAfterUnrolling(Loop *OrigLoop, Loop *UnrolledLoop, in setProfileInfoAfterUnrolling() 1592 for (Loop *RootL : Loops) { in appendReversedLoopsToWorklist() 1615 ArrayRef<Loop *> &Loops, SmallPriorityWorklist<Loop *, 4> &Worklist); 1618 llvm::appendLoopsToWorklist<Loop &>(Loop &L, 1626 Loop *llvm::cloneLoop(Loop *L, Loop *PL, ValueToValueMapTy &VM, in cloneLoop() 1628 Loop &New = *LI->AllocateLoop(); in cloneLoop() 1643 for (Loop *I : *L) in cloneLoop() [all …]
|