Home
last modified time | relevance | path

Searched refs:Loop (Results 1 – 25 of 336) sorted by relevance

12345678910>>...14

/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DLoopUtils.h32 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 DUnrollLoop.h29 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 DLoopConstrainer.h22 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 DLoopVersioning.h24 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 DLoopInfo.h33 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 DLoopNestAnalysis.h23 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 DLoopCacheAnalysis.h29 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 DScalarEvolution.h58 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 DDependenceAnalysis.h50 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 DLoopPass.h23 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 DBlockFrequencyInfoImpl.h63 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 DLoopAnalysisManager.h40 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 DIVDescriptors.h27 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 DMachineLoopUtils.cpp30 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 DLoopInfo.cpp201 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 DLoopNestAnalysis.cpp35 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 DBlockFrequencyInfoImpl.cpp412 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 DLoopAnalysisManager.cpp23 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 DLoopCacheAnalysis.cpp62 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 DLoopPassManager.h204 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 DLoopInterchange.cpp270 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 DLoopPassManager.cpp41 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 DSimpleLoopUnswitch.cpp481 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 DLoopUnrollAndJam.cpp71 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 DLoopUtils.cpp715 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 …]

12345678910>>...14