| /freebsd-13.1/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
| H A D | LoopUtils.h | 32 class Loop; variable 125 SinkAndHoistLICMFlags(bool IsSink, Loop *L = nullptr, 218 getOptionalElementCountLoopAttribute(const Loop *TheLoop); 250 bool hasDisableAllTransformsHint(const Loop *L); 253 bool hasDisableLICMTransformsHint(const Loop *L); 284 TransformationMode hasUnrollTransformation(const Loop *L); 303 getLoopEstimatedTripCount(Loop *L, 394 bool isKnownNonNegativeInLoop(const SCEV *S, const Loop *L, 432 void setProfileInfoAfterUnrolling(Loop *OrigLoop, Loop *UnrolledLoop, 462 Loop *cloneLoop(Loop *L, Loop *PL, ValueToValueMapTy &VM, [all …]
|
| H A D | UnrollLoop.h | 28 class Loop; variable 37 using NewLoopsMap = SmallDenseMap<const Loop *, Loop *, 4>; 48 const Loop* addClonedBlockToLoopInfo(BasicBlock *OriginalBB, 81 Loop **RemainderLoop = nullptr); 84 Loop *L, unsigned Count, bool AllowExpensiveTripCount, 88 Loop **ResultLoop = nullptr); 96 Loop **EpilogueLoop = nullptr); 101 bool computeUnrollCount(Loop *L, const TargetTransformInfo &TTI, 111 void simplifyLoopAfterUnroll(Loop *L, bool SimplifyIVs, LoopInfo *LI, 119 Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI, [all …]
|
| H A D | LoopVersioning.h | 25 class Loop; variable 47 ArrayRef<RuntimePointerCheck> Checks, Loop *L, LoopInfo *LI, 72 Loop *getVersionedLoop() { return VersionedLoop; } in getVersionedLoop() 76 Loop *getNonVersionedLoop() { return NonVersionedLoop; } in getNonVersionedLoop() 113 Loop *VersionedLoop; 116 Loop *NonVersionedLoop;
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | MachineLoopUtils.cpp | 31 MachineFunction &MF = *Loop->getParent(); in PeelSingleBlockLoop() 33 if (Preheader == Loop) in PeelSingleBlockLoop() 34 Preheader = *std::next(Loop->pred_begin()); in PeelSingleBlockLoop() 36 if (Exit == Loop) in PeelSingleBlockLoop() 37 Exit = *std::next(Loop->succ_begin()); in PeelSingleBlockLoop() 41 MF.insert(Loop->getIterator(), NewBB); in PeelSingleBlockLoop() 47 for (MachineInstr &MI : *Loop) { in PeelSingleBlockLoop() 108 NewBB->addSuccessor(Loop); in PeelSingleBlockLoop() 115 Loop->replaceSuccessor(Exit, NewBB); in PeelSingleBlockLoop() 116 Exit->replacePhiUsesWith(Loop, NewBB); in PeelSingleBlockLoop() [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
| H A D | LoopPassManager.h | 189 static const Loop &getLoopFromIR(Loop &L) { return L; } in getLoopFromIR() 190 static const Loop &getLoopFromIR(LoopNest &LN) { in getLoopFromIR() 272 void setParentLoop(Loop *L) { 292 for (Loop *NewL : NewChildLoops) 313 for (Loop *NewL : NewSibLoops) 344 SmallPriorityWorklist<Loop *, 4> &Worklist; 349 Loop *CurrentL; 356 Loop *ParentL; 370 const Loop &L = getLoopFromIR(IR); 373 if (!PI.runBeforePass<Loop>(*Pass, L)) [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | LoopNestAnalysis.h | 23 using LoopVectorTy = SmallVector<Loop *, 8>; 30 LoopNest(Loop &Root, ScalarEvolution &SE); 48 static bool arePerfectlyNested(const Loop &OuterLoop, const Loop &InnerLoop, 60 static unsigned getMaxPerfectDepth(const Loop &Root, ScalarEvolution &SE); 71 Loop &getOutermostLoop() const { return *Loops.front(); } in getOutermostLoop() 76 Loop *getInnermostLoop() const { in getInnermostLoop() 83 Loop *LastLoop = Loops.back(); in getInnermostLoop() 91 Loop *getLoop(unsigned Index) const { in getLoop() 100 ArrayRef<Loop *> getLoops() const { return Loops; } in getLoops() 140 return all_of(Loops, [](const Loop *L) { return L->isRotatedForm(); }); in areAllLoopsRotatedForm() [all …]
|
| H A D | ScalarEvolution.h | 63 class Loop; variable 864 void forgetLoop(const Loop *L); 870 void forgetTopmostLoop(const Loop *L); 882 void forgetLoopDispositions(const Loop *L); 1217 const SCEV *S, const Loop *L, 1553 bool loopHasNoSideEffects(const Loop *L) { 1557 bool loopHasNoAbnormalExits(const Loop *L) { 1563 bool loopIsFiniteByAssumption(const Loop *L); 1715 const Loop *L; 1976 const Loop *L); [all …]
|
| H A D | LoopCacheAnalysis.h | 32 using LoopVectorTy = SmallVector<Loop *, 8>; 93 CacheCostTy computeRefCost(const Loop &L, unsigned CLS) const; 100 bool isLoopInvariant(const Loop &L) const; 106 bool isConsecutive(const Loop &L, unsigned CLS) const; 114 const Loop &L) const; 176 using LoopTripCountTy = std::pair<const Loop *, unsigned>; 177 using LoopCacheCostTy = std::pair<const Loop *, CacheCostTy>; 200 CacheCostTy getLoopCost(const Loop &L) const { in getLoopCost() 222 CacheCostTy computeLoopCacheCost(const Loop &L, 236 const Loop &L) const; [all …]
|
| H A D | DependenceAnalysis.h | 50 class Loop; variable 391 const Loop *AssociatedLoop; 436 const Loop *getAssociatedLoop() const; 541 const Loop *LoopNest, 547 const Loop *LoopNest, 553 const Loop *LoopNest, 654 const Loop *CurrentLoop, 691 const Loop *CurrentLoop, 744 const Loop *SrcLoop, 745 const Loop *DstLoop, [all …]
|
| H A D | LoopInfo.h | 59 class Loop; variable 521 Loop.print(OS); 530 class LLVM_EXTERNAL_VISIBILITY Loop : public LoopBase<BasicBlock, Loop> { 646 static Optional<Loop::LoopBounds> getBounds(const Loop &L, PHINode &IndVar, 712 const Loop &L; 874 Loop() = default; 878 explicit Loop(BasicBlock *BB) : LoopBase<BasicBlock, Loop>(BB) {} in Loop() function 879 ~Loop() = default; 1111 void erase(Loop *L); 1161 auto Contains = [](const Loop *Outer, const Loop *Inner) { in movementPreservesLCSSAForm() [all …]
|
| H A D | LoopPass.h | 38 virtual bool runOnLoop(Loop *L, LPPassManager &LPM) = 0; 44 virtual bool doInitialization(Loop *L, LPPassManager &LPM) { in doInitialization() 72 bool skipLoop(const Loop *L) const; 108 void addLoop(Loop &L); 111 void markLoopAsDeleted(Loop &L); 114 std::deque<Loop *> LQ; 116 Loop *CurrentLoop;
|
| H A D | DivergenceAnalysis.h | 28 class Loop; variable 46 DivergenceAnalysisImpl(const Function &F, const Loop *RegionLoop, 51 const Loop *getRegionLoop() const { return RegionLoop; } in getRegionLoop() 97 const Loop &DivLoop); 101 const Loop &OuterDivLoop); 106 const Loop &OuterDivLoop); 119 const Loop *RegionLoop; 125 DenseSet<const Loop *> DivergentLoops;
|
| H A D | BlockFrequencyInfoImpl.h | 62 class Loop; variable 285 bool isLoopHeader() const { return Loop && Loop->isHeader(Node); } in isLoopHeader() 288 return isLoopHeader() && Loop->Parent && Loop->Parent->isIrreducible() && in isDoubleLoopHeader() 294 return Loop; in getContainingLoop() 319 if (!Loop || !Loop->IsPackaged) in getPackagedLoop() 321 auto L = Loop; in getPackagedLoop() 553 using LoopT = Loop; 1226 if (!Loop) 1235 Working[Index].Loop = HeaderData.Loop; 1317 if (!propagateMassToSuccessors(&Loop, Loop.getHeader())) [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | LoopInfo.cpp | 201 Optional<Loop::LoopBounds> Loop::LoopBounds::getBounds(const Loop &L, in getBounds() 287 Optional<Loop::LoopBounds> Loop::getBounds(ScalarEvolution &SE) const { in getBounds() 503 MDNode *Loop::getLoopID() const { in getLoopID() 635 Loop::LocRange Loop::getLocRange() const { in getLocRange() 684 Loop &Unloop; 693 DenseMap<Loop *, Loop *> SubloopParents; 710 Loop *getNearestLoop(BasicBlock *BB, Loop *BBLoop); 803 Loop *UnloopUpdater::getNearestLoop(BasicBlock *BB, Loop *BBLoop) { in getNearestLoop() 807 Loop *NearLoop = BBLoop; in getNearestLoop() 809 Loop *Subloop = nullptr; in getNearestLoop() [all …]
|
| H A D | BlockFrequencyInfoImpl.cpp | 412 Loop.Scale = in computeLoopScale() 428 Loop->Exits.clear(); in packageLoop() 431 Loop.IsPackaged = true; in packageLoop() 523 << ": mass = " << Loop.Mass << ", scale = " << Loop.Scale in unwrapLoop() 525 Loop.Scale *= Loop.Mass.toScaled(); in unwrapLoop() 526 Loop.IsPackaged = false; in unwrapLoop() 549 unwrapLoop(*this, Loop); in unwrapLoops() 643 return getBlockName(Loop.getHeader()) + (Loop.isIrreducible() ? "**" : "*"); in getLoopName() 799 BFI.Working[N.Index].Loop->Parent = &*Loop; in createIrreducibleLoop() 801 BFI.Working[N.Index].Loop = &*Loop; in createIrreducibleLoop() [all …]
|
| H A D | SyncDependenceAnalysis.cpp | 138 static void computeLoopPO(const LoopInfo &LI, Loop &Loop, POCB CallBack, 142 static void computeStackPO(BlockStack &Stack, const LoopInfo &LI, Loop *Loop, in computeStackPO() argument 144 const auto *LoopHeader = Loop ? Loop->getHeader() : nullptr; in computeStackPO() 149 bool IsNestedLoop = NestedLoop != Loop; in computeStackPO() 159 if (Loop && !Loop->contains(NestedExitBB)) in computeStackPO() 179 if (Loop && !Loop->contains(SuccBB)) in computeStackPO() 204 static void computeLoopPO(const LoopInfo &LI, Loop &Loop, POCB CallBack, in computeLoopPO() argument 208 const auto *LoopHeader = Loop.getHeader(); in computeLoopPO() 216 if (!Loop.contains(BB)) in computeLoopPO() 224 computeStackPO(Stack, LI, &Loop, CallBack, Finalized); in computeLoopPO()
|
| H A D | LoopNestAnalysis.cpp | 36 static bool checkLoopsStructure(const Loop &OuterLoop, const Loop &InnerLoop, 43 LoopNest::LoopNest(Loop &Root, ScalarEvolution &SE) in LoopNest() 48 std::unique_ptr<LoopNest> LoopNest::getLoopNest(Loop &Root, in getLoopNest() 53 bool LoopNest::arePerfectlyNested(const Loop &OuterLoop, const Loop &InnerLoop, in arePerfectlyNested() 165 for (Loop *L : depth_first(const_cast<Loop *>(Loops.front()))) { in getPerfectLoops() 181 unsigned LoopNest::getMaxPerfectDepth(const Loop &Root, ScalarEvolution &SE) { in getMaxPerfectDepth() 185 const Loop *CurrentLoop = &Root; in getMaxPerfectDepth() 190 const Loop *InnerLoop = SubLoops->front(); in getMaxPerfectDepth() 235 static bool checkLoopsStructure(const Loop &OuterLoop, const Loop &InnerLoop, in checkLoopsStructure() 366 for (const Loop *L : LN.getLoops()) in operator <<() [all …]
|
| H A D | DivergenceAnalysis.cpp | 94 const Function &F, const Loop *RegionLoop, const DominatorTree &DT, in DivergenceAnalysisImpl() 118 for (const auto *Loop = LI.getLoopFor(Inst->getParent()); in isTemporalDivergent() local 119 Loop != RegionLoop && !Loop->contains(&ObservingBlock); in isTemporalDivergent() 120 Loop = Loop->getParentLoop()) { in isTemporalDivergent() 121 if (DivergentLoops.contains(Loop)) in isTemporalDivergent() 170 const Instruction &I, const Loop &OuterDivLoop) { in analyzeTemporalDivergence() 192 const BasicBlock &DivExit, const Loop &OuterDivLoop) { in analyzeLoopExitDivergence() 246 const BasicBlock &DivExit, const Loop &InnerDivLoop) { in propagateLoopExitDivergence() 250 const Loop *DivLoop = &InnerDivLoop; in propagateLoopExitDivergence() 251 const Loop *OuterDivLoop = DivLoop; in propagateLoopExitDivergence() [all …]
|
| H A D | LoopAnalysisManager.cpp | 25 template class AllAnalysesOn<Loop>; 26 template class AnalysisManager<Loop, LoopStandardAnalysisResults &>; 28 template class OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop, 39 SmallVector<Loop *, 4> PreOrderLoops = LI->getLoopsInReverseSiblingPreorder(); in invalidate() 65 for (Loop *L : PreOrderLoops) { in invalidate() 87 PA.allAnalysesInSetPreserved<AllAnalysesOn<Loop>>(); in invalidate() 95 for (Loop *L : reverse(PreOrderLoops)) { in invalidate()
|
| H A D | LoopCacheAnalysis.cpp | 61 static Loop *getInnerMostLoop(const LoopVectorTy &Loops) { in getInnerMostLoop() 64 Loop *LastLoop = Loops.back(); in getInnerMostLoop() 65 Loop *ParentLoop = LastLoop->getParentLoop(); in getInnerMostLoop() 73 [](const Loop *L1, const Loop *L2) { in getInnerMostLoop() 262 CacheCostTy IndexedReference::computeRefCost(const Loop &L, in computeRefCost() 330 if (Loop *L = LI.getLoopFor(BB)) { in delinearize() 473 const Loop *L = LC.first; in operator <<() 488 for (const Loop *L : Loops) { in CacheCost() 524 for (const Loop *L : Loops) { in calculateCacheFootprint() 542 Loop *InnerMostLoop = getInnerMostLoop(Loops); in populateReferenceGroups() [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
| H A D | LoopPassManager.cpp | 28 LPMUpdater &>::run(Loop &L, LoopAnalysisManager &AM, in run() 42 PA.preserveSet<AllAnalysesOn<Loop>>(); in run() 225 SmallPriorityWorklist<Loop *, 4> Worklist; in run() 236 for (Loop *L : LI) in run() 245 const Loop *L = any_isa<const Loop *>(IR) in run() 246 ? any_cast<const Loop *>(IR) in run() 258 Loop *L = Worklist.pop_back_val(); in run() 273 if (!PI.runBeforePass<Loop>(*Pass, *L)) in run() 284 PI.runAfterPassInvalidated<Loop>(*Pass, PassPA); in run() 286 PI.runAfterPass<Loop>(*Pass, *L, PassPA); in run() [all …]
|
| H A D | SimpleLoopUnswitch.cpp | 401 Loop *Current = TopMost; in getTopMostExitingLoop() 708 Loop *OuterL = &L; in unswitchTrivialSwitch() 1252 static Loop *cloneLoopNest(Loop &OrigRootL, Loop *RootParentL, in cloneLoopNest() 1254 auto AddClonedBlocksToLoop = [&](Loop &OrigL, Loop &ClonedL) { in cloneLoopNest() 1280 SmallVector<std::pair<Loop *, Loop *>, 16> LoopsToClone; in cloneLoopNest() 1314 Loop *ClonedL = nullptr; in buildClonedLoops() 1326 Loop *ParentL = nullptr; in buildClonedLoops() 1800 Loop *ParentL = nullptr; in rebuildLoopAfterUnswitch() 2104 Loop *OuterExitL = &L; in unswitchNontrivialInvariants() 2428 for (Loop *UpdatedL : in unswitchNontrivialInvariants() [all …]
|
| H A D | LoopInterchange.cpp | 346 bool tightlyNested(Loop *Outer, Loop *Inner); 357 Loop *OuterLoop; 358 Loop *InnerLoop; 385 Loop *OuterLoop; 386 Loop *InnerLoop; 405 void restructureLoops(Loop *NewInner, Loop *NewOuter, 408 void removeChildLoop(Loop *OuterLoop, Loop *InnerLoop); 414 Loop *OuterLoop; 415 Loop *InnerLoop; 970 areInnerLoopExitPHIsSupported(Loop *InnerL, Loop *OuterL, in areInnerLoopExitPHIsSupported() [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | LoopUtils.cpp | 690 Loop::iterator I = find(*LI, L); in deleteDeadLoop() 698 static Loop *getOutermostLoop(Loop *L) { in getOutermostLoop() 770 llvm::getLoopEstimatedTripCount(Loop *L, in getLoopEstimatedTripCount() 1419 void llvm::setProfileInfoAfterUnrolling(Loop *OrigLoop, Loop *UnrolledLoop, in setProfileInfoAfterUnrolling() 1455 for (Loop *RootL : Loops) { in appendReversedLoopsToWorklist() 1478 ArrayRef<Loop *> &Loops, SmallPriorityWorklist<Loop *, 4> &Worklist); 1481 llvm::appendLoopsToWorklist<Loop &>(Loop &L, 1489 Loop *llvm::cloneLoop(Loop *L, Loop *PL, ValueToValueMapTy &VM, in cloneLoop() 1491 Loop &New = *LI->AllocateLoop(); in cloneLoop() 1507 for (Loop *I : *L) in cloneLoop() [all …]
|
| H A D | LoopUnrollAndJam.cpp | 75 Loop *SubLoop = L.getSubLoops()[0]; in partitionLoopBlocks() 105 Loop &Root, Loop &JamLoop, BasicBlockSet &JamLoopBlocks, in partitionOuterLoopBlocks() 110 for (Loop *L : Root.getLoopsInPreorder()) { in partitionOuterLoopBlocks() 123 static bool partitionOuterLoopBlocks(Loop *L, Loop *SubLoop, in partitionOuterLoopBlocks() 235 Loop *SubLoop = *L->begin(); in UnrollAndJamLoop() 373 SmallDenseMap<const Loop *, Loop *, 4> NewLoops; in UnrollAndJamLoop() 766 for (Loop *L : Root.getLoopsInPreorder()) in checkDependencies() 816 const Loop *L = &Root; in isEligibleLoopForm() 861 static Loop *getInnerMostLoop(Loop *L) { in getInnerMostLoop() 926 Loop *JamLoop = getInnerMostLoop(L); in isSafeToUnrollAndJam() [all …]
|