reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

include/llvm/Analysis/AliasSetTracker.h
   39 class Loop;
include/llvm/Analysis/BlockFrequencyInfoImpl.h
   53 class Loop;
include/llvm/Analysis/CodeMetrics.h
   23 class Loop;
include/llvm/Analysis/DependenceAnalysis.h
   49   class Loop;
include/llvm/Analysis/DivergenceAnalysis.h
   28 class Loop;
include/llvm/Analysis/IVDescriptors.h
   40 class Loop;
include/llvm/Analysis/Loads.h
   23 class Loop;
include/llvm/Analysis/LoopAccessAnalysis.h
   34 class Loop;
include/llvm/Analysis/LoopInfo.h
   59 class Loop;
include/llvm/Analysis/MustExecute.h
   38 class Loop;
include/llvm/Analysis/OptimizationRemarkEmitter.h
   26 class Loop;
include/llvm/Analysis/RegionInfo.h
   63 class Loop;
include/llvm/Analysis/ScalarEvolutionExpressions.h
   35 class Loop;
include/llvm/Analysis/ScalarEvolutionNormalization.h
   44 class Loop;
include/llvm/Analysis/SyncDependenceAnalysis.h
   29 class Loop;
include/llvm/Analysis/TargetTransformInfo.h
   48 class Loop;
include/llvm/Analysis/ValueTracking.h
   38 class Loop;
include/llvm/Analysis/VectorUtils.h
  138 class Loop;
include/llvm/Transforms/Scalar/IndVarSimplify.h
   22 class Loop;
include/llvm/Transforms/Scalar/LoopIdiomRecognize.h
   23 class Loop;
include/llvm/Transforms/Scalar/LoopInstSimplify.h
   21 class Loop;
include/llvm/Transforms/Scalar/LoopStrengthReduce.h
   29 class Loop;
include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h
   18 class Loop;
include/llvm/Transforms/Scalar/LoopUnrollPass.h
   21 class Loop;
include/llvm/Transforms/Scalar/WarnMissedTransforms.h
   20 class Loop;
include/llvm/Transforms/Utils/Cloning.h
   44 class Loop;
include/llvm/Transforms/Utils/CodeExtractor.h
   35 class Loop;
include/llvm/Transforms/Utils/LoopRotationUtils.h
   20 class Loop;
include/llvm/Transforms/Utils/LoopUtils.h
   41 class Loop;
include/llvm/Transforms/Utils/LoopVersioning.h
   25 class Loop;
include/llvm/Transforms/Utils/SimplifyIndVar.h
   24 class Loop;
include/llvm/Transforms/Utils/UnrollLoop.h
   30 class Loop;
include/llvm/Transforms/Vectorize/LoopVectorize.h
   70 class Loop;
lib/Target/AArch64/AArch64TargetTransformInfo.h
   34 class Loop;
lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
   36 class Loop;
lib/Target/ARM/ARMTargetTransformInfo.h
   35 class Loop;
lib/Target/Hexagon/HexagonTargetTransformInfo.h
   28 class Loop;
lib/Transforms/Vectorize/VPlanHCFGBuilder.h
   33 class Loop;
tools/polly/include/polly/CodeGen/IRBuilder.h
   21 class Loop;
tools/polly/include/polly/PolyhedralInfo.h
   25 class Loop;
tools/polly/include/polly/Support/ScopHelper.h
   23 class Loop;
tools/polly/include/polly/ZoneAlgo.h
   25 class Loop;

References

include/llvm/ADT/ArrayRef.h
  108         const ArrayRef<U *> &A,
  110            std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  118       const SmallVectorTemplateCommon<U *, DummyT> &Vec,
  120           std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
include/llvm/ADT/DenseMapInfo.h
   39   static inline T* getEmptyKey() {
   41     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   45   static inline T* getTombstoneKey() {
   47     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   51   static unsigned getHashValue(const T *PtrVal) {
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/ADT/STLExtras.h
  154 auto adl_begin(ContainerTy &&container)
  162 auto adl_end(ContainerTy &&container)
  178 auto adl_begin(ContainerTy &&container)
  184 auto adl_end(ContainerTy &&container)
  244   static yes& test(Inner *I, decltype(I->rbegin()) * = nullptr);
  250   static const bool value = sizeof(test<Ty>(nullptr)) == sizeof(yes);
  261 auto reverse(ContainerTy &&C,
 1186 auto find(R &&Range, const T &Val) -> decltype(adl_begin(Range)) {
 1224 bool is_contained(R &&Range, const E &Element) {
include/llvm/Analysis/AliasSetTracker.h
  348   Loop *L;
  361   explicit AliasSetTracker(AliasAnalysis &aa, MemorySSA *mssa, Loop *l)
include/llvm/Analysis/BlockFrequencyInfoImpl.h
  549   using LoopT = Loop;
include/llvm/Analysis/CFG.h
  150     for (const auto *Lp = LI.getLoopFor(Src); Lp; Lp = Lp->getParentLoop()) {
include/llvm/Analysis/CodeMetrics.h
   84   static void collectEphemeralValues(const Loop *L, AssumptionCache *AC,
include/llvm/Analysis/DDG.h
  254   DataDependenceGraph(const Loop &L, DependenceInfo &DI);
  323   Result run(Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR);
  334   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Analysis/DependenceAnalysis.h
  390       const Loop *AssociatedLoop;
  435       const Loop *getAssociatedLoop() const;
  438       void setPoint(const SCEV *X, const SCEV *Y, const Loop *CurrentLoop);
  442                    const SCEV *C, const Loop *CurrentLoop);
  445       void setDistance(const SCEV *D, const Loop *CurrentLoop);
  515     unsigned mapSrcLoop(const Loop *SrcLoop) const;
  519     unsigned mapDstLoop(const Loop *DstLoop) const;
  523     bool isLoopInvariant(const SCEV *Expression, const Loop *LoopNest) const;
  540                             const Loop *LoopNest,
  546                            const Loop *LoopNest,
  552                            const Loop *LoopNest,
  579     const SCEV *collectUpperBound(const Loop *l, Type *T) const;
  584     const SCEVConstant *collectConstantUpperBound(const Loop *l, Type *T) const;
  590                                            const Loop *SrcLoopNest,
  592                                            const Loop *DstLoopNest,
  653                        const Loop *CurrentLoop,
  671                              const Loop *CurrentLoop,
  690                       const Loop *CurrentLoop,
  708                             const Loop *CurrentLoop,
  726                             const Loop *CurrentLoop,
  743                        const Loop *SrcLoop,
  744                        const Loop *DstLoop,
  760                           const Loop *SrcLoop,
  761                           const Loop *DstLoop) const;
  903                                 const Loop *TargetLoop) const;
  911                                 const Loop *TargetLoop) const;
  919                                  const Loop *TargetLoop,
include/llvm/Analysis/DivergenceAnalysis.h
   46   DivergenceAnalysis(const Function &F, const Loop *RegionLoop,
   51   const Loop *getRegionLoop() const { return RegionLoop; }
  136                                const Loop *TermLoop);
  145   void propagateLoopDivergence(const Loop &ExitingLoop);
  151   const Loop *RegionLoop;
  157   DenseSet<const Loop *> DivergentLoops;
include/llvm/Analysis/IVDescriptors.h
  170   static bool AddReductionVar(PHINode *Phi, RecurrenceKind Kind, Loop *TheLoop,
  181   static bool isReductionPHI(PHINode *Phi, Loop *TheLoop,
  195   isFirstOrderRecurrence(PHINode *Phi, Loop *TheLoop,
  294   isInductionPHI(PHINode *Phi, const Loop *L, ScalarEvolution *SE,
  301   static bool isFPInductionPHI(PHINode *Phi, const Loop *L, ScalarEvolution *SE,
  310   static bool isInductionPHI(PHINode *Phi, const Loop *L,
include/llvm/Analysis/IVUsers.h
   74   void transformToPostInc(const Loop *L);
   95   Loop *L;
  110   IVUsers(Loop *L, AssumptionCache *AC, LoopInfo *LI, DominatorTree *DT,
  124   Loop *getLoop() const { return L; }
  140   const SCEV *getStride(const IVStrideUse &IU, const Loop *L) const;
  162   bool AddUsersImpl(Instruction *I, SmallPtrSetImpl<Loop*> &SimpleLoopNests);
  180   bool runOnLoop(Loop *L, LPPassManager &LPM) override;
  195   IVUsers run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Analysis/Loads.h
   74 bool isDereferenceableAndAlignedInLoop(LoadInst *LI, Loop *L,
include/llvm/Analysis/LoopAccessAnalysis.h
  177   MemoryDepChecker(PredicatedScalarEvolution &PSE, const Loop *L)
  265   const Loop *InnermostLoop;
  377   void insert(Loop *Lp, Value *Ptr, bool WritePtr, unsigned DepSetId,
  518   LoopAccessInfo(Loop *L, ScalarEvolution *SE, const TargetLibraryInfo *TLI,
  542   static bool blockNeedsPredication(BasicBlock *BB, Loop *TheLoop,
  641   Loop *TheLoop;
  693 int64_t getPtrStride(PredicatedScalarEvolution &PSE, Value *Ptr, const Loop *Lp,
  738   const LoopAccessInfo &getInfo(Loop *L);
  750   DenseMap<Loop *, std::unique_ptr<LoopAccessInfo>> LoopAccessInfoMap;
  775   Result run(Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR);
include/llvm/Analysis/LoopAnalysisManager.h
   74 typedef AnalysisManager<Loop, LoopStandardAnalysisResults &>
  154 typedef OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop,
include/llvm/Analysis/LoopCacheAnalysis.h
   31 using LoopVectorTy = SmallVector<Loop *, 8>;
   80                                   unsigned MaxDistance, const Loop &L,
   92   CacheCostTy computeRefCost(const Loop &L, unsigned CLS) const;
   99   bool isLoopInvariant(const Loop &L) const;
  105   bool isConsecutive(const Loop &L, unsigned CLS) const;
  113                                      const Loop &L) const;
  117   bool isSimpleAddRecurrence(const SCEV &Subscript, const Loop &L) const;
  175   using LoopTripCountTy = std::pair<const Loop *, unsigned>;
  176   using LoopCacheCostTy = std::pair<const Loop *, CacheCostTy>;
  194   getCacheCost(Loop &Root, LoopStandardAnalysisResults &AR, DependenceInfo &DI,
  199   CacheCostTy getLoopCost(const Loop &L) const {
  221   CacheCostTy computeLoopCacheCost(const Loop &L,
  235                                        const Loop &L) const;
  275   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Analysis/LoopInfo.h
   75   LoopT *ParentLoop;
   77   std::vector<LoopT *> SubLoops;
   89   LoopBase(const LoopBase<BlockT, LoopT> &) = delete;
   90   const LoopBase<BlockT, LoopT> &
   91   operator=(const LoopBase<BlockT, LoopT> &) = delete;
  100     for (const LoopT *CurLoop = ParentLoop; CurLoop;
  106   LoopT *getParentLoop() const { return ParentLoop; }
  109   void setParentLoop(LoopT *L) {
  115   bool contains(const LoopT *L) const {
  131   template <class InstT> bool contains(const InstT *Inst) const {
  136   const std::vector<LoopT *> &getSubLoops() const {
  140   std::vector<LoopT *> &getSubLoopsVector() {
  144   typedef typename std::vector<LoopT *>::const_iterator iterator;
  146       typename std::vector<LoopT *>::const_reverse_iterator reverse_iterator;
  325   static void getInnerLoopsInPreorder(const LoopT &L,
  327     SmallVector<LoopT *, 4> PreOrderWorklist;
  331       LoopT *L = PreOrderWorklist.pop_back_val();
  341   SmallVector<const LoopT *, 4> getLoopsInPreorder() const {
  342     SmallVector<const LoopT *, 4> PreOrderLoops;
  343     const LoopT *CurLoop = static_cast<const LoopT *>(this);
  348   SmallVector<LoopT *, 4> getLoopsInPreorder() {
  349     SmallVector<LoopT *, 4> PreOrderLoops;
  350     LoopT *CurLoop = static_cast<LoopT *>(this);
  365   void addBasicBlockToLoop(BlockT *NewBB, LoopInfoBase<BlockT, LoopT> &LI);
  371   void replaceChildLoopWith(LoopT *OldChild, LoopT *NewChild);
  371   void replaceChildLoopWith(LoopT *OldChild, LoopT *NewChild);
  375   void addChildLoop(LoopT *NewChild) {
  384   LoopT *removeChildLoop(iterator I) {
  387     LoopT *Child = *I;
  396   LoopT *removeChildLoop(LoopT *Child) {
  396   LoopT *removeChildLoop(LoopT *Child) {
  453   void verifyLoopNest(DenseSet<const LoopT *> *Loops) const;
  485     for (auto *SubLoop : SubLoops)
  499 raw_ostream &operator<<(raw_ostream &OS, const LoopBase<BlockT, LoopT> &Loop) {
  509 class Loop : public LoopBase<BasicBlock, Loop> {
  622     static Optional<Loop::LoopBounds> getBounds(const Loop &L, PHINode &IndVar,
  622     static Optional<Loop::LoopBounds> getBounds(const Loop &L, PHINode &IndVar,
  683     LoopBounds(const Loop &Loop, Value &I, Instruction &SI, Value *SV, Value &F,
  688     const Loop &L;
  850   DenseMap<const BlockT *, LoopT *> BBMap;
  851   std::vector<LoopT *> TopLevelLoops;
  874     for (auto *L : TopLevelLoops)
  886     for (auto *L : TopLevelLoops)
  892   template <typename... ArgsTy> LoopT *AllocateLoop(ArgsTy &&... Args) {
  893     LoopT *Storage = LoopAllocator.Allocate<LoopT>();
  893     LoopT *Storage = LoopAllocator.Allocate<LoopT>();
  894     return new (Storage) LoopT(std::forward<ArgsTy>(Args)...);
  900   typedef typename std::vector<LoopT *>::const_iterator iterator;
  902       typename std::vector<LoopT *>::const_reverse_iterator reverse_iterator;
  914   SmallVector<LoopT *, 4> getLoopsInPreorder();
  924   SmallVector<LoopT *, 4> getLoopsInReverseSiblingPreorder();
  928   LoopT *getLoopFor(const BlockT *BB) const { return BBMap.lookup(BB); }
  931   const LoopT *operator[](const BlockT *BB) const { return getLoopFor(BB); }
  936     const LoopT *L = getLoopFor(BB);
  942     const LoopT *L = getLoopFor(BB);
  949   LoopT *removeLoop(iterator I) {
  951     LoopT *L = *I;
  960   void changeLoopFor(BlockT *BB, LoopT *L) {
  970   void changeTopLevelLoop(LoopT *OldLoop, LoopT *NewLoop) {
  970   void changeTopLevelLoop(LoopT *OldLoop, LoopT *NewLoop) {
  979   void addTopLevelLoop(LoopT *New) {
  990       for (LoopT *L = I->second; L; L = L->getParentLoop())
  999   static bool isNotAlreadyContainedIn(const LoopT *SubLoop,
 1000                                       const LoopT *ParentLoop) {
 1026   void destroy(LoopT *L) {
 1038 class LoopInfo : public LoopInfoBase<BasicBlock, Loop> {
 1039   typedef LoopInfoBase<BasicBlock, Loop> BaseT;
 1066   void erase(Loop *L);
 1082     Loop *ToLoop = getLoopFor(I->getParent());
 1108     auto *OldLoop = getLoopFor(OldBB);
 1109     auto *NewLoop = getLoopFor(NewBB);
 1165   typedef const Loop *NodeRef;
 1168   static NodeRef getEntryNode(const Loop *L) { return L; }
 1174   typedef Loop *NodeRef;
 1177   static NodeRef getEntryNode(Loop *L) { return L; }
 1234 void printLoop(Loop &L, raw_ostream &OS, const std::string &Banner = "");
 1245 MDNode *findOptionMDForLoop(const Loop *TheLoop, StringRef Name);
include/llvm/Analysis/LoopInfoImpl.h
  248   LoopT *L = static_cast<LoopT *>(this);
  270   typename std::vector<LoopT *>::iterator I = find(SubLoops, OldChild);
  418 static void discoverAndMapSubloop(LoopT *L, ArrayRef<BlockT *> Backedges,
  419                                   LoopInfoBase<BlockT, LoopT> *LI,
  432     LoopT *Subloop = LI->getLoopFor(PredBB);
  448       while (LoopT *Parent = Subloop->getParentLoop())
  479   LoopInfoBase<BlockT, LoopT> *LI;
  482   PopulateLoopsDFS(LoopInfoBase<BlockT, LoopT> *li) : LI(li) {}
  502   LoopT *Subloop = LI->getLoopFor(Block);
  556       LoopT *L = AllocateLoop(Header);
  562   PopulateLoopsDFS<BlockT, LoopT> DFS(this);
  568   SmallVector<LoopT *, 4> PreOrderLoops, PreOrderWorklist;
  574   for (LoopT *RootL : reverse(*this)) {
  586   SmallVector<LoopT *, 4> PreOrderLoops, PreOrderWorklist;
  592   for (LoopT *RootL : *this) {
  597       LoopT *L = PreOrderWorklist.pop_back_val();
  629 void addInnerLoopsToHeadersMap(DenseMap<BlockT *, const LoopT *> &LoopHeaders,
  630                                const LoopInfoBase<BlockT, LoopT> &LI,
  631                                const LoopT &L) {
  633   for (LoopT *SL : L)
  639 static void compareLoops(const LoopT *L, const LoopT *OtherL,
  639 static void compareLoops(const LoopT *L, const LoopT *OtherL,
  640                          DenseMap<BlockT *, const LoopT *> &OtherLoopHeaders) {
  648   const LoopT *ParentL = L, *OtherParentL = OtherL;
  656   for (const LoopT *SubL : *L) {
  658     const LoopT *OtherSubL = OtherLoopHeaders.lookup(SubH);
  683   DenseSet<const LoopT *> Loops;
  693     LoopT *L = Entry.second;
  696     for (LoopT *ChildLoop : *L)
  702   LoopInfoBase<BlockT, LoopT> OtherLI;
  708   DenseMap<BlockT *, const LoopT *> OtherLoopHeaders;
  709   for (LoopT *L : OtherLI)
  715   for (LoopT *L : *this) {
  717     const LoopT *OtherL = OtherLoopHeaders.lookup(Header);
include/llvm/Analysis/LoopIterator.h
   41   using NodeRef = std::pair<const Loop *, BasicBlock *>;
   55     const Loop *L;
   58     WrappedSuccIterator(succ_iterator Begin, const Loop *L)
   66       const Loop *L = N.first;
   74   static NodeRef getEntryNode(const Loop &G) { return {&G, G.getHeader()}; }
  106   Loop *L;
  115   LoopBlocksDFS(Loop *Container) :
  120   Loop *getLoop() const { return L; }
  177   LoopBlocksRPO(Loop *Container) : DFS(Container) {}
include/llvm/Analysis/LoopPass.h
   39   virtual bool runOnLoop(Loop *L, LPPassManager &LPM) = 0;
   45   virtual bool doInitialization(Loop *L, LPPassManager &LPM) {
   79   virtual void cloneBasicBlockAnalysis(BasicBlock *F, BasicBlock *T, Loop *L) {}
   82   virtual void deleteAnalysisValue(Value *V, Loop *L) {}
   87   virtual void deleteAnalysisLoop(Loop *L) {}
   93   bool skipLoop(const Loop *L) const;
  129   void addLoop(Loop &L);
  132   void markLoopAsDeleted(Loop &L);
  143   void cloneBasicBlockSimpleAnalysis(BasicBlock *From, BasicBlock *To, Loop *L);
  147   void deleteSimpleAnalysisValue(Value *V, Loop *L);
  151   void deleteSimpleAnalysisLoop(Loop *L);
  154   std::deque<Loop *> LQ;
  156   Loop *CurrentLoop;
include/llvm/Analysis/LoopUnrollAnalyzer.h
   50                        ScalarEvolution &SE, const Loop *L)
   82   const Loop *L;
include/llvm/Analysis/MustExecute.h
   60   void computeBlockColors(const Loop *CurLoop);
   79   bool allLoopPathsLeadToBlock(const Loop *CurLoop, const BasicBlock *BB,
   87   virtual void computeLoopSafetyInfo(const Loop *CurLoop) = 0;
   93                                      const Loop *CurLoop) const = 0;
  114   virtual void computeLoopSafetyInfo(const Loop *CurLoop);
  118                                      const Loop *CurLoop) const;
  143   virtual void computeLoopSafetyInfo(const Loop *CurLoop);
  147                                      const Loop *CurLoop) const;
  151   bool doesNotWriteMemoryBefore(const BasicBlock *BB, const Loop *CurLoop)
  156   bool doesNotWriteMemoryBefore(const Instruction &I, const Loop *CurLoop)
include/llvm/Analysis/RegionInfo.h
   97   using LoopT = Loop;
include/llvm/Analysis/ScalarEvolution.h
  550   const SCEV *getAddRecExpr(const SCEV *Start, const SCEV *Step, const Loop *L,
  553                             const Loop *L, SCEV::NoWrapFlags Flags);
  555                             const Loop *L, SCEV::NoWrapFlags Flags) {
  668   const SCEV *getSCEVAtScope(const SCEV *S, const Loop *L);
  671   const SCEV *getSCEVAtScope(Value *V, const Loop *L);
  676   bool isLoopEntryGuardedByCond(const Loop *L, ICmpInst::Predicate Pred,
  681   bool isLoopBackedgeGuardedByCond(const Loop *L, ICmpInst::Predicate Pred,
  689   unsigned getSmallConstantTripCount(const Loop *L);
  698   unsigned getSmallConstantTripCount(const Loop *L, BasicBlock *ExitingBlock);
  703   unsigned getSmallConstantMaxTripCount(const Loop *L);
  711   unsigned getSmallConstantTripMultiple(const Loop *L);
  719   unsigned getSmallConstantTripMultiple(const Loop *L,
  740   const SCEV *getExitCount(const Loop *L, BasicBlock *ExitingBlock,
  753   const SCEV *getBackedgeTakenCount(const Loop *L, ExitCountKind Kind = Exact);
  759   const SCEV *getPredicatedBackedgeTakenCount(const Loop *L,
  766   const SCEV *getConstantMaxBackedgeTakenCount(const Loop *L) {
  772   bool isBackedgeTakenCountMaxOrZero(const Loop *L);
  776   bool hasLoopInvariantBackedgeTakenCount(const Loop *L);
  789   void forgetLoop(const Loop *L);
  795   void forgetTopmostLoop(const Loop *L);
  807   void forgetLoopDispositions(const Loop *L) { LoopDispositions.clear(); }
  878   std::pair<const SCEV *, const SCEV *> SplitIntoInitAndPostInc(const Loop *L,
  929                                 const SCEV *RHS, const Loop *L,
  943   LoopDisposition getLoopDisposition(const SCEV *S, const Loop *L);
  947   bool isLoopInvariant(const SCEV *S, const Loop *L);
  952   bool isAvailableAtLoopEntry(const SCEV *S, const Loop *L);
  958   bool hasComputableLoopEvolution(const SCEV *S, const Loop *L);
 1082   const SCEV *rewriteUsingPredicate(const SCEV *S, const Loop *L,
 1087       const SCEV *S, const Loop *L,
 1329     const SCEV *getExact(const Loop *L, ScalarEvolution *SE,
 1358   DenseMap<const Loop *, BackedgeTakenInfo> BackedgeTakenCounts;
 1362   DenseMap<const Loop *, BackedgeTakenInfo> PredicatedBackedgeTakenCounts;
 1373   DenseMap<const SCEV *, SmallVector<std::pair<const Loop *, const SCEV *>, 2>>
 1378            SmallVector<PointerIntPair<const Loop *, 2, LoopDisposition>, 2>>
 1395   DenseMap<const Loop *, LoopProperties> LoopPropertiesCache;
 1398   LoopProperties getLoopProperties(const Loop *L);
 1400   bool loopHasNoSideEffects(const Loop *L) {
 1404   bool loopHasNoAbnormalExits(const Loop *L) {
 1409   LoopDisposition computeLoopDisposition(const SCEV *S, const Loop *L);
 1486   const SCEV *computeSCEVAtScope(const SCEV *S, const Loop *L);
 1496   const BackedgeTakenInfo &getBackedgeTakenInfo(const Loop *L);
 1500   const BackedgeTakenInfo &getPredicatedBackedgeTakenInfo(const Loop *L);
 1505   BackedgeTakenInfo computeBackedgeTakenCount(const Loop *L,
 1512   ExitLimit computeExitLimit(const Loop *L, BasicBlock *ExitingBlock,
 1525   ExitLimit computeExitLimitFromCond(const Loop *L, Value *ExitCond,
 1540     const Loop *L;
 1545     ExitLimitCache(const Loop *L, bool ExitIfTrue, bool AllowPredicates)
 1548     Optional<ExitLimit> find(const Loop *L, Value *ExitCond, bool ExitIfTrue,
 1551     void insert(const Loop *L, Value *ExitCond, bool ExitIfTrue,
 1558                                            const Loop *L, Value *ExitCond,
 1562   ExitLimit computeExitLimitFromCondImpl(ExitLimitCacheTy &Cache, const Loop *L,
 1572   ExitLimit computeExitLimitFromICmp(const Loop *L, ICmpInst *ExitCond,
 1580   ExitLimit computeExitLimitFromSingleExitSwitch(const Loop *L,
 1588                                                 const Loop *L,
 1598   ExitLimit computeShiftCompareExitLimit(Value *LHS, Value *RHS, const Loop *L,
 1606   const SCEV *computeExitCountExhaustively(const Loop *L, Value *Cond,
 1613   ExitLimit howFarToZero(const SCEV *V, const Loop *L, bool IsSubExpr,
 1619   ExitLimit howFarToNonZero(const SCEV *V, const Loop *L);
 1633   ExitLimit howManyLessThans(const SCEV *LHS, const SCEV *RHS, const Loop *L,
 1637   ExitLimit howManyGreaterThans(const SCEV *LHS, const SCEV *RHS, const Loop *L,
 1727                                               const Loop *L);
 1777                                  const Loop *L);
 1812   bool isAddRecNeverPoison(const Instruction *I, const Loop *L);
 1864                                     const Loop *L, SCEV::NoWrapFlags Flags);
 1872   void getUsedLoops(const SCEV *S, SmallPtrSetImpl<const Loop *> &LoopsUsed);
 1898   DenseMap<const Loop *, SmallVector<const SCEV *, 4>> LoopUsers;
 1902   DenseMap<std::pair<const SCEVUnknown *, const Loop *>,
 1969   PredicatedScalarEvolution(ScalarEvolution &SE, Loop &L);
 2036   const Loop &L;
include/llvm/Analysis/ScalarEvolutionExpander.h
   61     DenseMap<const SCEV *, const Loop *> RelevantLoops;
   71     const Loop *IVIncInsertLoop;
  180     bool isHighCostExpansion(const SCEV *Expr, Loop *L,
  190     PHINode *getOrInsertCanonicalInductionVariable(const Loop *L, Type *Ty);
  201     unsigned replaceCongruentIVs(Loop *L, const DominatorTree *DT,
  240     void setIVIncInsertPos(const Loop *L, Instruction *Pos) {
  304                                      Loop *L);
  319     getRelatedExistingExpansion(const SCEV *S, const Instruction *At, Loop *L);
  325     bool isHighCostExpansionHelper(const SCEV *S, Loop *L,
  360     const Loop *getRelevantLoop(const SCEV *);
  394     bool isNormalAddRecExprPHI(PHINode *PN, Instruction *IncV, const Loop *L);
  396     bool isExpandedAddRecExprPHI(PHINode *PN, Instruction *IncV, const Loop *L);
  400                                        const Loop *L,
  405     Value *expandIVInc(PHINode *PN, Value *StepV, const Loop *L,
include/llvm/Analysis/ScalarEvolutionExpressions.h
  299     const Loop *L;
  302                    const SCEV *const *O, size_t N, const Loop *l)
  307     const Loop *getLoop() const { return L; }
  817   using LoopToScevMapT = DenseMap<const Loop *, const SCEV *>;
  838       const Loop *L = Expr->getLoop();
include/llvm/Analysis/ScalarEvolutionNormalization.h
   48 typedef SmallPtrSet<const Loop *, 2> PostIncLoopSet;
include/llvm/Analysis/SyncDependenceAnalysis.h
   40   void visitSuccessor(const BasicBlock &succBlock, const Loop *termLoop,
   68   const ConstBlockSet &join_blocks(const Loop &Loop);
   78   std::map<const Loop *, std::unique_ptr<ConstBlockSet>> CachedLoopExitJoins;
include/llvm/Analysis/TargetTransformInfo.h
   85   HardwareLoopInfo(Loop *L) : L(L) {}
   86   Loop *L = nullptr;
  507   void getUnrollingPreferences(Loop *L, ScalarEvolution &,
  512   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
  565   bool canSaveCmp(Loop *L, BranchInst **BI, ScalarEvolution *SE, LoopInfo *LI,
  575   bool shouldFavorBackedgeIndex(const Loop *L) const;
 1192   virtual void getUnrollingPreferences(Loop *L, ScalarEvolution &,
 1194   virtual bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
 1208   virtual bool canSaveCmp(Loop *L, BranchInst **BI, ScalarEvolution *SE,
 1212   virtual bool shouldFavorBackedgeIndex(const Loop *L) const = 0;
 1458   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
 1462   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
 1488   bool canSaveCmp(Loop *L, BranchInst **BI,
 1497   bool shouldFavorBackedgeIndex(const Loop *L) const override {
include/llvm/Analysis/TargetTransformInfoImpl.h
  205   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
  212   void getUnrollingPreferences(Loop *, ScalarEvolution &,
  236   bool canSaveCmp(Loop *L, BranchInst **BI, ScalarEvolution *SE, LoopInfo *LI,
  244   bool shouldFavorBackedgeIndex(const Loop *L) const { return false; }
include/llvm/Analysis/ValueTracking.h
  532                                               const Loop *L);
include/llvm/Analysis/VectorUtils.h
  172 Value *stripGetElementPtr(Value *Ptr, ScalarEvolution *SE, Loop *Lp);
  175 Value *getUniqueCastUse(Value *Ptr, Loop *Lp, Type *Ty);
  179 Value *getStrideFromPointer(Value *Ptr, ScalarEvolution *SE, Loop *Lp);
  527   InterleavedAccessInfo(PredicatedScalarEvolution &PSE, Loop *L,
  592   Loop *TheLoop;
include/llvm/CodeGen/BasicTTIImpl.h
  439   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  474     for (Loop::block_iterator I = L->block_begin(), E = L->block_end(); I != E;
  504   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
include/llvm/IR/PassInstrumentation.h
  144   bool runBeforePass(const PassT &Pass, const IRUnitT &IR) const {
  158   void runAfterPass(const PassT &Pass, const IRUnitT &IR) const {
  177   void runBeforeAnalysis(const PassT &Analysis, const IRUnitT &IR) const {
  186   void runAfterAnalysis(const PassT &Analysis, const IRUnitT &IR) const {
  198   bool invalidate(IRUnitT &, const class llvm::PreservedAnalyses &,
include/llvm/IR/PassManager.h
  420 getAnalysisResultUnpackTuple(AnalysisManagerT &AM, IRUnitT &IR,
  435 getAnalysisResult(AnalysisManager<IRUnitT, AnalysisArgTs...> &AM, IRUnitT &IR,
  435 getAnalysisResult(AnalysisManager<IRUnitT, AnalysisArgTs...> &AM, IRUnitT &IR,
  438           PassT, IRUnitT>)(AM, IR, Args,
  466                         PassManager<IRUnitT, AnalysisManagerT, ExtraArgTs...>> {
  489   PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM,
  551         detail::PassModel<IRUnitT, PassT, PreservedAnalyses, AnalysisManagerT,
  559       detail::PassConcept<IRUnitT, AnalysisManagerT, ExtraArgTs...>;
  598   Result run(IRUnitT &, AnalysisManagerT &, ExtraArgTs &&...) {
  615       detail::AnalysisResultConcept<IRUnitT, PreservedAnalyses, Invalidator>;
  617       detail::AnalysisPassConcept<IRUnitT, PreservedAnalyses, Invalidator,
  630   using AnalysisResultListMapT = DenseMap<IRUnitT *, AnalysisResultListT>;
  636       DenseMap<std::pair<AnalysisKey *, IRUnitT *>,
  667     bool invalidate(IRUnitT &IR, const PreservedAnalyses &PA) {
  669           detail::AnalysisResultModel<IRUnitT, PassT, typename PassT::Result,
  681     bool invalidate(AnalysisKey *ID, IRUnitT &IR, const PreservedAnalyses &PA) {
  689     bool invalidateImpl(AnalysisKey *ID, IRUnitT &IR,
  747   void clear(IRUnitT &IR, llvm::StringRef Name) {
  777   typename PassT::Result &getResult(IRUnitT &IR, ExtraArgTs... ExtraArgs) {
  784         detail::AnalysisResultModel<IRUnitT, PassT, typename PassT::Result,
  796   typename PassT::Result *getCachedResult(IRUnitT &IR) const {
  805         detail::AnalysisResultModel<IRUnitT, PassT, typename PassT::Result,
  832         detail::AnalysisPassModel<IRUnitT, PassT, PreservedAnalyses,
  849   template <typename PassT> void invalidate(IRUnitT &IR) {
  859   void invalidate(IRUnitT &IR, const PreservedAnalyses &PA) {
  861     if (PA.allAnalysesInSetPreserved<AllAnalysesOn<IRUnitT>>())
  939   ResultConceptT &getResultImpl(AnalysisKey *ID, IRUnitT &IR,
  977   ResultConceptT *getCachedResultImpl(AnalysisKey *ID, IRUnitT &IR) const {
  984   void invalidateImpl(AnalysisKey *ID, IRUnitT &IR) {
 1163           OuterAnalysisManagerProxy<AnalysisManagerT, IRUnitT, ExtraArgTs...>> {
 1174         IRUnitT &IRUnit, const PreservedAnalyses &PA,
 1175         typename AnalysisManager<IRUnitT, ExtraArgTs...>::Invalidator &Inv) {
 1235   Result run(IRUnitT &, AnalysisManager<IRUnitT, ExtraArgTs...> &,
 1235   Result run(IRUnitT &, AnalysisManager<IRUnitT, ExtraArgTs...> &,
 1386   PreservedAnalyses run(IRUnitT &Arg, AnalysisManagerT &AM, ExtraArgTs &&...) {
 1400   PreservedAnalyses run(IRUnitT &, AnalysisManagerT &, ExtraArgTs &&...) {
 1415   PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM, Ts &&... Args) {
 1430       if (!PI.runBeforePass<IRUnitT>(P, IR))
include/llvm/IR/PassManagerInternal.h
   46   virtual PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM,
   60 struct PassModel : PassConcept<IRUnitT, AnalysisManagerT, ExtraArgTs...> {
   77   PreservedAnalysesT run(IRUnitT &IR, AnalysisManagerT &AM,
  110   virtual bool invalidate(IRUnitT &IR, const PreservedAnalysesT &PA,
  128       std::declval<IRUnitT &>(), std::declval<PreservedAnalyses>()))>::Type
  168     : AnalysisResultConcept<IRUnitT, PreservedAnalysesT, InvalidatorT> {
  191   bool invalidate(IRUnitT &, const PreservedAnalysesT &PA,
  195            !PAC.template preservedSet<AllAnalysesOn<IRUnitT>>();
  207     : AnalysisResultConcept<IRUnitT, PreservedAnalysesT, InvalidatorT> {
  226   bool invalidate(IRUnitT &IR, const PreservedAnalysesT &PA,
  247       AnalysisResultConcept<IRUnitT, PreservedAnalysesT, InvalidatorT>>
  248   run(IRUnitT &IR, AnalysisManager<IRUnitT, ExtraArgTs...> &AM,
  248   run(IRUnitT &IR, AnalysisManager<IRUnitT, ExtraArgTs...> &AM,
  262 struct AnalysisPassModel : AnalysisPassConcept<IRUnitT, PreservedAnalysesT,
  282       AnalysisResultModel<IRUnitT, PassT, typename PassT::Result,
  289       AnalysisResultConcept<IRUnitT, PreservedAnalysesT, InvalidatorT>>
  290   run(IRUnitT &IR, AnalysisManager<IRUnitT, ExtraArgTs...> &AM,
  290   run(IRUnitT &IR, AnalysisManager<IRUnitT, ExtraArgTs...> &AM,
include/llvm/Passes/PassBuilder.h
  743     PassManager<IRUnitT, AnalysisManagerT, ExtraArgTs...> &PM) {
include/llvm/Support/Allocator.h
   81   template <typename T> T *Allocate(size_t Num = 1) {
   82     return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T)));
   82     return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T)));
   88       !std::is_same<typename std::remove_cv<T>::type, void>::value, void>::type
   89   Deallocate(T *Ptr, size_t Num = 1) {
   90     Deallocate(static_cast<const void *>(Ptr), Num * sizeof(T));
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
   91   typedef PointerLikeTypeTraits<T *> NonConst;
   93   static inline const void *getAsVoidPointer(const T *P) {
   96   static inline const T *getFromVoidPointer(const void *P) {
include/llvm/Transforms/Scalar/GuardWidening.h
   29   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/IVUsersPrinter.h
   24   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/IndVarSimplify.h
   27   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h
   24   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/LICM.h
   56   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h
   24   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/LoopDeletion.h
   28   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/LoopIdiomRecognize.h
   29   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/LoopInstSimplify.h
   27   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/LoopPassManager.h
   67             LPMUpdater &>::run(Loop &InitialL, LoopAnalysisManager &AM,
   78 typedef PassManager<Loop, LoopAnalysisManager, LoopStandardAnalysisResults &,
   86 struct RequireAnalysisPass<AnalysisT, Loop, LoopAnalysisManager,
   89           RequireAnalysisPass<AnalysisT, Loop, LoopAnalysisManager,
   91   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
  101     RequireAnalysisPass<AnalysisT, Loop, LoopAnalysisManager,
  114                                   SmallPriorityWorklist<Loop *, 4> &Worklist) {
  117   SmallVector<Loop *, 4> PreOrderLoops, PreOrderWorklist;
  121   for (Loop *RootL : reverse(Loops)) {
  127       Loop *L = PreOrderWorklist.pop_back_val();
  166   void markLoopAsDeleted(Loop &L, llvm::StringRef Name) {
  181   void addChildLoops(ArrayRef<Loop *> NewChildLoops) {
  187     for (Loop *NewL : NewChildLoops)
  206   void addSiblingLoops(ArrayRef<Loop *> NewSibLoops) {
  208     for (Loop *NewL : NewSibLoops)
  236   SmallPriorityWorklist<Loop *, 4> &Worklist;
  241   Loop *CurrentL;
  247   Loop *ParentL;
  250   LPMUpdater(SmallPriorityWorklist<Loop *, 4> &Worklist,
  321     SmallPriorityWorklist<Loop *, 4> Worklist;
  336       Loop *L = Worklist.pop_back_val();
  354       if (!PI.runBeforePass<Loop>(Pass, *L))
  360         PI.runAfterPassInvalidated<Loop>(Pass);
  362         PI.runAfterPass<Loop>(Pass, *L);
  383     PA.preserveSet<AllAnalysesOn<Loop>>();
  427   PreservedAnalyses run(Loop &L, LoopAnalysisManager &,
include/llvm/Transforms/Scalar/LoopPredication.h
   26   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/LoopRotation.h
   26   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/LoopSimplifyCFG.h
   28   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/LoopStrengthReduce.h
   35   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h
   28   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/LoopUnrollPass.h
   44   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
   68   PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
include/llvm/Transforms/Utils/Cloning.h
  246 Loop *cloneLoopWithPreheader(BasicBlock *Before, BasicBlock *LoopDomBB,
  247                              Loop *OrigLoop, ValueToValueMapTy &VMap,
include/llvm/Transforms/Utils/CodeExtractor.h
  130     CodeExtractor(DominatorTree &DT, Loop &L, bool AggregateArgs = false,
include/llvm/Transforms/Utils/LoopRotationUtils.h
   33 bool LoopRotation(Loop *L, LoopInfo *LI, const TargetTransformInfo *TTI,
include/llvm/Transforms/Utils/LoopSimplify.h
   62 bool simplifyLoop(Loop *L, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE,
include/llvm/Transforms/Utils/LoopUtils.h
   53 BasicBlock *InsertPreheaderForLoop(Loop *L, DominatorTree *DT, LoopInfo *LI,
   61 bool formDedicatedExitBlocks(Loop *L, DominatorTree *DT, LoopInfo *LI,
   90 bool formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE);
  101 bool formLCSSARecursively(Loop &L, DominatorTree &DT, LoopInfo *LI,
  121                 TargetLibraryInfo *, TargetTransformInfo *, Loop *,
  134                  TargetLibraryInfo *, Loop *, AliasSetTracker *,
  149 void deleteDeadLoop(Loop *L, DominatorTree *DT, ScalarEvolution *SE,
  164     Loop *, AliasSetTracker *, MemorySSAUpdater *, ICFLoopSafetyInfo *,
  170                                                      const Loop *CurLoop);
  173 SmallVector<Instruction *, 8> findDefsUsedOutsideOfLoop(Loop *L);
  180 Optional<const MDOperand *> findStringMetadataForLoop(const Loop *TheLoop,
  184 llvm::Optional<int> getOptionalIntLoopAttribute(Loop *TheLoop, StringRef Name);
  216 bool hasDisableAllTransformsHint(const Loop *L);
  219 bool hasDisableLICMTransformsHint(const Loop *L);
  250 TransformationMode hasUnrollTransformation(Loop *L);
  251 TransformationMode hasUnrollAndJamTransformation(Loop *L);
  252 TransformationMode hasVectorizeTransformation(Loop *L);
  253 TransformationMode hasDistributeTransformation(Loop *L);
  254 TransformationMode hasLICMVersioningTransformation(Loop *L);
  260 void addStringMetadataToLoop(Loop *TheLoop, const char *MDString,
  266 Optional<unsigned> getLoopEstimatedTripCount(Loop *L);
  271 bool hasIterationCountInvariantInParent(Loop *L, ScalarEvolution &SE);
  290                         Loop *CurLoop, AliasSetTracker *CurAST,
  344 bool isKnownNegativeInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE);
  348 bool isKnownNonNegativeInLoop(const SCEV *S, const Loop *L,
  352 bool cannotBeMaxInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE,
  356 bool cannotBeMinInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE,
include/llvm/Transforms/Utils/LoopVersioning.h
   41   LoopVersioning(const LoopAccessInfo &LAI, Loop *L, LoopInfo *LI,
   67   Loop *getVersionedLoop() { return VersionedLoop; }
   71   Loop *getNonVersionedLoop() { return NonVersionedLoop; }
  115   Loop *VersionedLoop;
  118   Loop *NonVersionedLoop;
include/llvm/Transforms/Utils/SimplifyIndVar.h
   54 bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, DominatorTree *DT,
include/llvm/Transforms/Utils/UnrollLoop.h
   37 using NewLoopsMap = SmallDenseMap<const Loop *, Loop *, 4>;
   37 using NewLoopsMap = SmallDenseMap<const Loop *, Loop *, 4>;
   48 const Loop* addClonedBlockToLoopInfo(BasicBlock *OriginalBB,
   81 LoopUnrollResult UnrollLoop(Loop *L, UnrollLoopOptions ULO, LoopInfo *LI,
   84                             bool PreserveLCSSA, Loop **RemainderLoop = nullptr);
   86 bool UnrollRuntimeLoopRemainder(Loop *L, unsigned Count,
   92                                 Loop **ResultLoop = nullptr);
   94 void computePeelCount(Loop *L, unsigned LoopSize,
   98 bool canPeel(Loop *L);
  100 bool peelLoop(Loop *L, unsigned PeelCount, LoopInfo *LI, ScalarEvolution *SE,
  103 LoopUnrollResult UnrollAndJamLoop(Loop *L, unsigned Count, unsigned TripCount,
  108                                   Loop **EpilogueLoop = nullptr);
  110 bool isSafeToUnrollAndJam(Loop *L, ScalarEvolution &SE, DominatorTree &DT,
  113 bool computeUnrollCount(Loop *L, const TargetTransformInfo &TTI,
  124 void simplifyLoopAfterUnroll(Loop *L, bool SimplifyIVs, LoopInfo *LI,
  131     Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI,
  139 unsigned ApproximateLoopSize(const Loop *L, unsigned &NumCalls,
include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
   89   LoopVectorizeHints(const Loop *L, bool InterleaveOnlyWhenForced,
   95   bool allowVectorization(Function *F, Loop *L,
  144   const Loop *TheLoop;
  174   bool doesNotMeet(Function *F, Loop *L, const LoopVectorizeHints &Hints);
  200       Loop *L, PredicatedScalarEvolution &PSE, DominatorTree *DT,
  202       Function *F, std::function<const LoopAccessInfo &(Loop &)> *GetLAA,
  323   bool canVectorizeLoopNestCFG(Loop *Lp, bool UseVPlanNativePath);
  336   bool canVectorizeLoopCFG(Loop *Lp, bool UseVPlanNativePath);
  386   Loop *TheLoop;
  408   std::function<const LoopAccessInfo &(Loop &)> *GetLAA;
include/llvm/Transforms/Vectorize/LoopVectorize.h
  141   std::function<const LoopAccessInfo &(Loop &)> *GetLAA;
  152                std::function<const LoopAccessInfo &(Loop &)> &GetLAA_,
  155   bool processLoop(Loop *L);
  164     OptimizationRemarkEmitter *ORE, Loop *TheLoop, Instruction *I = nullptr);
lib/Analysis/BranchProbabilityInfo.cpp
  469 computeUnlikelySuccessors(const BasicBlock *BB, Loop *L,
  578   Loop *L = LI.getLoopFor(BB);
lib/Analysis/CFG.cpp
  121 static const Loop *getOutermostLoop(const LoopInfo *LI, const BasicBlock *BB) {
  122   const Loop *L = LI->getLoopFor(BB);
  124     while (const Loop *Parent = L->getParentLoop())
  147   SmallPtrSet<const Loop *, 8> LoopsWithHoles;
  150       if (const Loop *L = getOutermostLoop(LI, BB))
  155   const Loop *StopLoop = LI ? getOutermostLoop(LI, StopBB) : nullptr;
  172     const Loop *Outer = nullptr;
lib/Analysis/CodeMetrics.cpp
   71     const Loop *L, AssumptionCache *AC,
lib/Analysis/DDG.cpp
  143 DataDependenceGraph::DataDependenceGraph(const Loop &L, DependenceInfo &D)
  189 DDGAnalysis::Result DDGAnalysis::run(Loop &L, LoopAnalysisManager &AM,
  197 PreservedAnalyses DDGAnalysisPrinterPass::run(Loop &L, LoopAnalysisManager &AM,
lib/Analysis/Delinearization.cpp
   84     for (Loop *L = LI->getLoopFor(BB); L != nullptr; L = L->getParentLoop()) {
lib/Analysis/DependenceAnalysis.cpp
  363 const Loop *DependenceInfo::Constraint::getAssociatedLoop() const {
  370                                           const Loop *CurLoop) {
  378                                          const SCEV *CC, const Loop *CurLoop) {
  387                                              const Loop *CurLoop) {
  742   const Loop *SrcLoop = LI->getLoopFor(SrcBlock);
  743   const Loop *DstLoop = LI->getLoopFor(DstBlock);
  766 unsigned DependenceInfo::mapSrcLoop(const Loop *SrcLoop) const {
  773 unsigned DependenceInfo::mapDstLoop(const Loop *DstLoop) const {
  784                                      const Loop *LoopNest) const {
  796                                         const Loop *LoopNest,
  882 bool DependenceInfo::checkSrcSubscript(const SCEV *Src, const Loop *LoopNest,
  907 bool DependenceInfo::checkDstSubscript(const SCEV *Dst, const Loop *LoopNest,
  933 DependenceInfo::classifyPair(const SCEV *Src, const Loop *SrcLoopNest,
  934                              const SCEV *Dst, const Loop *DstLoopNest,
 1070 const SCEV *DependenceInfo::collectUpperBound(const Loop *L, Type *T) const {
 1081 const SCEVConstant *DependenceInfo::collectConstantUpperBound(const Loop *L,
 1147                                    const SCEV *DstConst, const Loop *CurLoop,
 1284     const Loop *CurLoop, unsigned Level, FullDependence &Result,
 1495                                   const Loop *CurLoop, unsigned Level,
 1705                                         const Loop *CurLoop, unsigned Level,
 1815                                         const Loop *CurLoop, unsigned Level,
 1899                                    const Loop *SrcLoop, const Loop *DstLoop,
 1899                                    const Loop *SrcLoop, const Loop *DstLoop,
 2040                                       const Loop *Loop1,
 2041                                       const Loop *Loop2) const {
 2165     const Loop *CurLoop = SrcAddRec->getLoop();
 2187     const Loop *CurLoop = SrcAddRec->getLoop();
 2197     const Loop *CurLoop = DstAddRec->getLoop();
 2231   const Loop *SrcLoop, *DstLoop;
 2433     const Loop *CurLoop = AddRec->getLoop();
 2924     const Loop *L = AddRec->getLoop();
 2996                                             const Loop *TargetLoop) const {
 3012                                             const Loop *TargetLoop) const {
 3031                                              const Loop *TargetLoop,
 3094   const Loop *CurLoop = CurConstraint.getAssociatedLoop();
 3120   const Loop *CurLoop = CurConstraint.getAssociatedLoop();
 3194   const Loop *CurLoop = CurConstraint.getAssociatedLoop();
 3271   Loop *SrcLoop = LI->getLoopFor(Src->getParent());
 3272   Loop *DstLoop = LI->getLoopFor(Dst->getParent());
lib/Analysis/DivergenceAnalysis.cpp
   95     const Function &F, const Loop *RegionLoop, const DominatorTree &DT,
  143   for (const auto *Loop = LI.getLoopFor(Inst->getParent());
  190   auto *DivLoop = LI.getLoopFor(&LoopHeader);
  278                                                  const Loop *BranchLoop) {
  304   const auto *BranchLoop = LI.getLoopFor(Term.getParent());
  325 void DivergenceAnalysis::propagateLoopDivergence(const Loop &ExitingLoop) {
  332   const auto *BranchLoop = ExitingLoop.getParentLoop();
lib/Analysis/IVDescriptors.cpp
  161 static void collectCastsToIgnore(Loop *TheLoop, Instruction *Exit,
  191                                            Loop *TheLoop, bool HasFunNoNaNAttr,
  611 bool RecurrenceDescriptor::isReductionPHI(PHINode *Phi, Loop *TheLoop,
  672     PHINode *Phi, Loop *TheLoop,
  827 bool InductionDescriptor::isFPInductionPHI(PHINode *Phi, const Loop *TheLoop,
  920   const Loop *L = AR->getLoop();
  985 bool InductionDescriptor::isInductionPHI(PHINode *Phi, const Loop *TheLoop,
 1030     PHINode *Phi, const Loop *TheLoop, ScalarEvolution *SE,
lib/Analysis/IVUsers.cpp
   39 IVUsers IVUsersAnalysis::run(Loop &L, LoopAnalysisManager &AM,
   59 static bool isInteresting(const SCEV *S, const Instruction *I, const Loop *L,
   96                                  SmallPtrSetImpl<Loop*> &SimpleLoopNests) {
   97   Loop *NearestLoop = nullptr;
  101     Loop *DomLoop = LI->getLoopFor(DomBB);
  129                                        const Loop *L, DominatorTree *DT) {
  168                            SmallPtrSetImpl<Loop*> &SimpleLoopNests) {
  294   SmallPtrSet<Loop*,16> SimpleLoopNests;
  304 IVUsers::IVUsers(Loop *L, AssumptionCache *AC, LoopInfo *LI, DominatorTree *DT,
  365 bool IVUsersWrapperPass::runOnLoop(Loop *L, LPPassManager &LPM) {
  394 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) {
  411 const SCEV *IVUsers::getStride(const IVStrideUse &IU, const Loop *L) const {
  417 void IVStrideUse::transformToPostInc(const Loop *L) {
lib/Analysis/InlineCost.cpp
 1920     for (Loop *L : LI) {
lib/Analysis/Loads.cpp
  197 bool llvm::isDereferenceableAndAlignedInLoop(LoadInst *LI, Loop *L,
lib/Analysis/LoopAccessAnalysis.cpp
  189 void RuntimePointerChecking::insert(Loop *Lp, Value *Ptr, bool WritePtr,
  502   AccessAnalysis(const DataLayout &Dl, Loop *TheLoop, AliasAnalysis *AA,
  545                        Loop *TheLoop, const ValueToValueMap &Strides,
  582   const Loop *TheLoop;
  621                                 Loop *L, bool Assume) {
  641                      const ValueToValueMap &Strides, Value *Ptr, Loop *L) {
  695                                      ScalarEvolution *SE, Loop *TheLoop,
  944                            PredicatedScalarEvolution &PSE, const Loop *L) {
  991                            const Loop *Lp, const ValueToValueMap &StridesMap,
 2078 bool LoopAccessInfo::blockNeedsPredication(BasicBlock *BB, Loop *TheLoop,
 2145 expandBounds(const RuntimePointerChecking::CheckingPtrGroup *CG, Loop *TheLoop,
 2344 LoopAccessInfo::LoopAccessInfo(Loop *L, ScalarEvolution *SE,
 2400 const LoopAccessInfo &LoopAccessLegacyAnalysis::getInfo(Loop *L) {
 2412   for (Loop *TopLevelLoop : *LI)
 2413     for (Loop *L : depth_first(TopLevelLoop)) {
 2453 LoopAccessInfo LoopAccessAnalysis::run(Loop &L, LoopAnalysisManager &AM,
lib/Analysis/LoopAnalysisManager.cpp
   37   SmallVector<Loop *, 4> PreOrderLoops = LI->getLoopsInReverseSiblingPreorder();
   63     for (Loop *L : PreOrderLoops) {
   85       PA.allAnalysesInSetPreserved<AllAnalysesOn<Loop>>();
   93   for (Loop *L : reverse(PreOrderLoops)) {
lib/Analysis/LoopCacheAnalysis.cpp
   55 static Loop *getInnerMostLoop(const LoopVectorTy &Loops) {
   58   Loop *LastLoop = Loops.back();
   59   Loop *ParentLoop = LastLoop->getParentLoop();
   75                                   const Loop &L, ScalarEvolution &SE) {
   97 static const SCEV *computeTripCount(const Loop &L, ScalarEvolution &SE) {
  197                                                   const Loop &L,
  254 CacheCostTy IndexedReference::computeRefCost(const Loop &L,
  316   for (Loop *L = LI.getLoopFor(BB); L != nullptr; L = L->getParentLoop()) {
  361 bool IndexedReference::isLoopInvariant(const Loop &L) const {
  378 bool IndexedReference::isConsecutive(const Loop &L, unsigned CLS) const {
  407                                                      const Loop &L) const {
  414                                              const Loop &L) const {
  445     const Loop *L = LC.first;
  460   for (const Loop *L : Loops) {
  470 CacheCost::getCacheCost(Loop &Root, LoopStandardAnalysisResults &AR,
  478   for (Loop *L : breadth_first(&Root))
  497   for (const Loop *L : Loops) {
  515   Loop *InnerMostLoop = getInnerMostLoop(Loops);
  576 CacheCost::computeLoopCacheCost(const Loop &L,
  615 PreservedAnalyses LoopCachePrinterPass::run(Loop &L, LoopAnalysisManager &AM,
lib/Analysis/LoopInfo.cpp
  170 static ICmpInst *getLatchCmpInst(const Loop &L) {
  180 static Value *findFinalIVValue(const Loop &L, const PHINode &IndVar,
  197 Optional<Loop::LoopBounds> Loop::LoopBounds::getBounds(const Loop &L,
  197 Optional<Loop::LoopBounds> Loop::LoopBounds::getBounds(const Loop &L,
  226 using Direction = Loop::LoopBounds::Direction;
  283 Optional<Loop::LoopBounds> Loop::getBounds(ScalarEvolution &SE) const {
  421 static bool isBlockInLCSSAForm(const Loop &L, const BasicBlock &BB,
  613 Loop::LocRange Loop::getLocRange() const {
  662   Loop &Unloop;
  671   DenseMap<Loop *, Loop *> SubloopParents;
  671   DenseMap<Loop *, Loop *> SubloopParents;
  678   UnloopUpdater(Loop *UL, LoopInfo *LInfo)
  688   Loop *getNearestLoop(BasicBlock *BB, Loop *BBLoop);
  688   Loop *getNearestLoop(BasicBlock *BB, Loop *BBLoop);
  701       Loop *L = LI->getLoopFor(POI);
  702       Loop *NL = getNearestLoop(POI, L);
  729       Loop *L = LI->getLoopFor(*POI);
  730       Loop *NL = getNearestLoop(*POI, L);
  745   for (Loop::block_iterator BI = Unloop.block_begin(), BE = Unloop.block_end();
  747     Loop *OuterParent = LI->getLoopFor(*BI);
  755     for (Loop *OldParent = Unloop.getParentLoop(); OldParent != OuterParent;
  766     Loop *Subloop = *std::prev(Unloop.end());
  770     if (Loop *Parent = SubloopParents[Subloop])
  782 Loop *UnloopUpdater::getNearestLoop(BasicBlock *BB, Loop *BBLoop) {
  782 Loop *UnloopUpdater::getNearestLoop(BasicBlock *BB, Loop *BBLoop) {
  786   Loop *NearLoop = BBLoop;
  788   Loop *Subloop = nullptr;
  809     Loop *L = LI->getLoopFor(*I);
  857 void LoopInfo::erase(Loop *Unloop) {
  865     for (Loop::block_iterator I = Unloop->block_begin(),
  906   Loop *ParentLoop = Unloop->getParentLoop();
  907   for (Loop::iterator I = ParentLoop->begin();; ++I) {
  936 void llvm::printLoop(Loop &L, raw_ostream &OS, const std::string &Banner) {
 1002 MDNode *llvm::findOptionMDForLoop(const Loop *TheLoop, StringRef Name) {
lib/Analysis/LoopPass.cpp
   49   bool runOnLoop(Loop *L, LPPassManager &) override {
   77 void LPPassManager::addLoop(Loop &L) {
   98                                                   BasicBlock *To, Loop *L) {
  106 void LPPassManager::deleteSimpleAnalysisValue(Value *V, Loop *L) {
  119 void LPPassManager::deleteSimpleAnalysisLoop(Loop *L) {
  128 static void addLoopIntoQueue(Loop *L, std::deque<Loop *> &LQ) {
  128 static void addLoopIntoQueue(Loop *L, std::deque<Loop *> &LQ) {
  130   for (Loop *I : reverse(*L))
  143 void LPPassManager::markLoopAsDeleted(Loop &L) {
  182   for (Loop *L : reverse(*LI))
  189   for (Loop *L : LQ) {
  389 static std::string getDescription(const Loop &L) {
  393 bool LoopPass::skipLoop(const Loop *L) const {
lib/Analysis/MustExecute.cpp
   49 void SimpleLoopSafetyInfo::computeLoopSafetyInfo(const Loop *CurLoop) {
   60   for (Loop::block_iterator BB = std::next(CurLoop->block_begin()),
   76 void ICFLoopSafetyInfo::computeLoopSafetyInfo(const Loop *CurLoop) {
  101 void LoopSafetyInfo::computeBlockColors(const Loop *CurLoop) {
  116                                            const Loop *CurLoop) {
  158     const Loop *CurLoop, const BasicBlock *BB,
  187 bool LoopSafetyInfo::allLoopPathsLeadToBlock(const Loop *CurLoop,
  248                                                  const Loop *CurLoop) const {
  267                                               const Loop *CurLoop) const {
  273                                                  const Loop *CurLoop) const {
  293                                                  const Loop *CurLoop) const {
  369 static bool isMustExecuteIn(const Instruction &I, Loop *L, DominatorTree *DT) {
  383   DenseMap<const Value*, SmallVector<Loop*, 4> > MustExec;
  389       Loop *L = LI.getLoopFor(I.getParent());
  402       Loop *L = LI.getLoopFor(I.getParent());
  425     for (const Loop *L : Loops) {
lib/Analysis/ScalarEvolution.cpp
  702     const Loop *LLoop = LA->getLoop(), *RLoop = RA->getLoop();
 1442   const Loop *L = AR->getLoop();
 1560                                                 const Loop *L) {
 1692       const Loop *L = AR->getLoop();
 2036       const Loop *L = AR->getLoop();
 2401 bool ScalarEvolution::isAvailableAtLoopEntry(const SCEV *S, const Loop *L) {
 2698     const Loop *AddRecLoop = AddRec->getLoop();
 2809                                        const Loop *L, SCEV::NoWrapFlags Flags) {
 3036     const Loop *AddRecLoop = AddRec->getLoop();
 3393                                            const Loop *L,
 3411                                const Loop *L, SCEV::NoWrapFlags Flags) {
 3438     const Loop *NestedLoop = NestedAR->getLoop();
 4239   static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE,
 4269   explicit SCEVInitRewriter(const Loop *L, ScalarEvolution &SE)
 4272   const Loop *L;
 4283   static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE) {
 4310   explicit SCEVPostIncRewriter(const Loop *L, ScalarEvolution &SE)
 4313   const Loop *L;
 4324   static const SCEV *rewrite(const SCEV *S, const Loop *L,
 4372   explicit SCEVBackedgeConditionFolder(const Loop *L, Value *BECond,
 4379   const Loop *L;
 4400   static const SCEV *rewrite(const SCEV *S, const Loop *L,
 4424   explicit SCEVShiftRewriter(const Loop *L, ScalarEvolution &SE)
 4427   const Loop *L;
 4621 static const Loop *isIntegerLoopHeaderPHI(const PHINode *PN, LoopInfo &LI) {
 4624   const Loop *L = LI.getLoopFor(PN->getParent());
 4691   const Loop *L = isIntegerLoopHeaderPHI(PN, LI);
 4897   const Loop *L = isIntegerLoopHeaderPHI(PN, LI);
 4962   const Loop *L = LI.getLoopFor(PN->getParent());
 5004   const Loop *L = LI.getLoopFor(PN->getParent());
 5162 static bool IsAvailableOnEntry(const Loop *L, DominatorTree &DT, const SCEV *S,
 5168     const Loop *L = nullptr;  // The loop BB is in (can be nullptr)
 5172     CheckAvailable(const Loop *L, BasicBlock *BB, DominatorTree &DT)
 5196         const auto *ARLoop = cast<SCEVAddRecExpr>(S)->getLoop();
 5272     const Loop *L = LI.getLoopFor(PN->getParent());
 5988   Loop *InnermostContainingLoop = LI.getLoopFor(I->getParent());
 6038 bool ScalarEvolution::isAddRecNeverPoison(const Instruction *I, const Loop *L) {
 6101 ScalarEvolution::getLoopProperties(const Loop *L) {
 6526 unsigned ScalarEvolution::getSmallConstantTripCount(const Loop *L) {
 6534 unsigned ScalarEvolution::getSmallConstantTripCount(const Loop *L,
 6544 unsigned ScalarEvolution::getSmallConstantMaxTripCount(const Loop *L) {
 6550 unsigned ScalarEvolution::getSmallConstantTripMultiple(const Loop *L) {
 6571 ScalarEvolution::getSmallConstantTripMultiple(const Loop *L,
 6602 const SCEV *ScalarEvolution::getExitCount(const Loop *L,
 6615 ScalarEvolution::getPredicatedBackedgeTakenCount(const Loop *L,
 6620 const SCEV *ScalarEvolution::getBackedgeTakenCount(const Loop *L,
 6631 bool ScalarEvolution::isBackedgeTakenCountMaxOrZero(const Loop *L) {
 6637 PushLoopPHIs(const Loop *L, SmallVectorImpl<Instruction *> &Worklist) {
 6646 ScalarEvolution::getPredicatedBackedgeTakenInfo(const Loop *L) {
 6663 ScalarEvolution::getBackedgeTakenInfo(const Loop *L) {
 6669   std::pair<DenseMap<const Loop *, BackedgeTakenInfo>::iterator, bool> Pair =
 6749           auto *LoopForUser = LI.getLoopFor(I->getParent());
 6787 void ScalarEvolution::forgetLoop(const Loop *L) {
 6798   SmallVector<const Loop *, 16> LoopWorklist(1, L);
 6812       std::pair<const SCEV *, const Loop *> Entry = I->first;
 6853 void ScalarEvolution::forgetTopmostLoop(const Loop *L) {
 6854   while (Loop *Parent = L->getParentLoop())
 6893 ScalarEvolution::BackedgeTakenInfo::getExact(const Loop *L, ScalarEvolution *SE,
 7059 ScalarEvolution::computeBackedgeTakenCount(const Loop *L,
 7130 ScalarEvolution::computeExitLimit(const Loop *L, BasicBlock *ExitingBlock,
 7170     const Loop *L, Value *ExitCond, bool ExitIfTrue,
 7178 ScalarEvolution::ExitLimitCache::find(const Loop *L, Value *ExitCond,
 7194 void ScalarEvolution::ExitLimitCache::insert(const Loop *L, Value *ExitCond,
 7210     ExitLimitCacheTy &Cache, const Loop *L, Value *ExitCond, bool ExitIfTrue,
 7224     ExitLimitCacheTy &Cache, const Loop *L, Value *ExitCond, bool ExitIfTrue,
 7356 ScalarEvolution::computeExitLimitFromICmp(const Loop *L,
 7455 ScalarEvolution::computeExitLimitFromSingleExitSwitch(const Loop *L,
 7494   const Loop *L,
 7567     Value *LHS, Value *RHSV, const Loop *L, ICmpInst::Predicate Pred) {
 7725 static bool canConstantEvolve(Instruction *I, const Loop *L) {
 7743 getConstantEvolvingPHIOperands(Instruction *UseInst, const Loop *L,
 7785 static PHINode *getConstantEvolvingPHI(Value *V, const Loop *L) {
 7801 static Constant *EvaluateExpression(Value *V, const Loop *L,
 7877                                                    const Loop *L) {
 7957 const SCEV *ScalarEvolution::computeExitCountExhaustively(const Loop *L,
 8024 const SCEV *ScalarEvolution::getSCEVAtScope(const SCEV *V, const Loop *L) {
 8025   SmallVector<std::pair<const Loop *, const SCEV *>, 2> &Values =
 8145 const SCEV *ScalarEvolution::computeSCEVAtScope(const SCEV *V, const Loop *L) {
 8153         const Loop *LI = this->LI[I->getParent()];
 8373 const SCEV *ScalarEvolution::getSCEVAtScope(Value *V, const Loop *L) {
 8702 ScalarEvolution::howFarToZero(const SCEV *V, const Loop *L, bool ControlsExit,
 8831 ScalarEvolution::howFarToNonZero(const SCEV *V, const Loop *L) {
 8860   if (Loop *L = LI.getLoopFor(BB))
 8930     const Loop *L = AR->getLoop();
 9112 ScalarEvolution::SplitIntoInitAndPostInc(const Loop *L, const SCEV *S) {
 9126   SmallPtrSet<const Loop *, 8> LoopsUsed;
 9142   const Loop *MDL =
 9190   const Loop *L = LHS->getLoop();
 9272     ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS, const Loop *L,
 9452 ScalarEvolution::isLoopBackedgeGuardedByCond(const Loop *L,
 9562 ScalarEvolution::isLoopEntryGuardedByCond(const Loop *L,
 9945   const Loop *L = AddRecFoundLHS->getLoop();
10583                                   const Loop *L, bool IsSigned,
10724                                      const Loop *L, bool IsSigned,
11477 bool ScalarEvolution::hasLoopInvariantBackedgeTakenCount(const Loop *L) {
11482                           const Loop *L) {
11484   for (Loop *I : *L)
11580       const Loop *L = LI.getLoopFor(I.getParent());
11639   for (Loop *I : LI)
11644 ScalarEvolution::getLoopDisposition(const SCEV *S, const Loop *L) {
11663 ScalarEvolution::computeLoopDisposition(const SCEV *S, const Loop *L) {
11742 bool ScalarEvolution::isLoopInvariant(const SCEV *S, const Loop *L) {
11746 bool ScalarEvolution::hasComputableLoopEvolution(const SCEV *S, const Loop *L) {
11868     std::pair<const SCEV *, const Loop *> Entry = I->first;
11893                               SmallPtrSetImpl<const Loop *> &LoopsUsed) {
11895     FindUsedLoops(SmallPtrSetImpl<const Loop *> &LoopsUsed)
11897     SmallPtrSetImpl<const Loop *> &LoopsUsed;
11912   SmallPtrSet<const Loop *, 8> LoopsUsed;
11922   SmallVector<Loop *, 8> LoopStack(LI.begin(), LI.end());
11944     auto *L = LoopStack.pop_back_val();
12112   static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE,
12163   explicit SCEVPredicateRewriter(const Loop *L, ScalarEvolution &SE,
12211   const Loop *L;
12216 const SCEV *ScalarEvolution::rewriteUsingPredicate(const SCEV *S, const Loop *L,
12222     const SCEV *S, const Loop *L,
12378                                                      Loop &L)
lib/Analysis/ScalarEvolutionExpander.cpp
  217     while (const Loop *L = SE.LI.getLoopFor(Builder.GetInsertBlock())) {
  546     while (const Loop *L = SE.LI.getLoopFor(Builder.GetInsertBlock())) {
  566     while (const Loop *L = SE.LI.getLoopFor(Builder.GetInsertBlock())) {
  605 static const Loop *PickMostRelevantLoop(const Loop *A, const Loop *B,
  605 static const Loop *PickMostRelevantLoop(const Loop *A, const Loop *B,
  605 static const Loop *PickMostRelevantLoop(const Loop *A, const Loop *B,
  618 const Loop *SCEVExpander::getRelevantLoop(const SCEV *S) {
  634     const Loop *L = nullptr;
  642     const Loop *Result = getRelevantLoop(C->getOperand());
  646     const Loop *Result = PickMostRelevantLoop(
  661   bool operator()(std::pair<const Loop *, const SCEV *> LHS,
  662                   std::pair<const Loop *, const SCEV *> RHS) const {
  695   SmallVector<std::pair<const Loop *, const SCEV *>, 8> OpsAndLoops;
  708     const Loop *CurLoop = I->first;
  765   SmallVector<std::pair<const Loop *, const SCEV *>, 8> OpsAndLoops;
  897                                          const Loop *L) {
 1039                                            const Loop *L) {
 1052 Value *SCEVExpander::expandIVInc(PHINode *PN, Value *StepV, const Loop *L,
 1160                                         const Loop *L,
 1340   const Loop *L = S->getLoop();
 1500   const Loop *L = S->getLoop();
 1836     for (Loop *L = SE.LI.getLoopFor(Builder.GetInsertBlock());;
 1925 SCEVExpander::getOrInsertCanonicalInductionVariable(const Loop *L,
 1949 SCEVExpander::replaceCongruentIVs(Loop *L, const DominatorTree *DT,
 2085                                                const Instruction *At, Loop *L) {
 2095                                           Loop *L) {
 2132     const SCEV *S, Loop *L, const Instruction *At,
lib/Analysis/SyncDependenceAnalysis.cpp
  181   void visitSuccessor(const BasicBlock &SuccBlock, const Loop *ParentLoop,
  272       auto *BlockLoop = LI.getLoopFor(Block);
  333 const ConstBlockSet &SyncDependenceAnalysis::join_blocks(const Loop &Loop) {
lib/Analysis/TargetTransformInfo.cpp
  240   Loop *L, ScalarEvolution &SE, AssumptionCache &AC,
  246     Loop *L, ScalarEvolution &SE, UnrollingPreferences &UP) const {
  276 bool TargetTransformInfo::canSaveCmp(Loop *L, BranchInst **BI,
  287 bool TargetTransformInfo::shouldFavorBackedgeIndex(const Loop *L) const {
lib/Analysis/ValueTracking.cpp
 3692   Loop *L = LI->getLoopFor(PN->getParent());
 4305                                                   const Loop *L) {
lib/Analysis/VectorUtils.cpp
  152 Value *llvm::stripGetElementPtr(Value *Ptr, ScalarEvolution *SE, Loop *Lp) {
  169 Value *llvm::getUniqueCastUse(Value *Ptr, Loop *Lp, Type *Ty) {
  185 Value *llvm::getStrideFromPointer(Value *Ptr, ScalarEvolution *SE, Loop *Lp) {
lib/CodeGen/CodeGenPrepare.cpp
  632   SmallVector<Loop *, 16> LoopList(LI->begin(), LI->end());
  634     Loop *L = LoopList.pop_back_val();
lib/CodeGen/HardwareLoops.cpp
  103     bool TryConvertLoop(Loop *L);
  160     Loop *L                 = nullptr;
  192     Loop *L = *I;
  202 bool HardwareLoops::TryConvertLoop(Loop *L) {
  204   for (Loop::iterator I = L->begin(), E = L->end(); I != E; ++I)
  233   Loop *L = HWLoopInfo.L;
  281 static bool CanGenerateTest(Loop *L, Value *Count) {
lib/Passes/PassBuilder.cpp
  317   PreservedAnalyses run(Loop &L, LoopAnalysisManager &,
  331   Result run(Loop &, LoopAnalysisManager &, LoopStandardAnalysisResults &) {
lib/Passes/StandardInstrumentations.cpp
   58   if (any_isa<const Loop *>(IR)) {
   59     const Loop *L = any_cast<const Loop *>(IR);
   59     const Loop *L = any_cast<const Loop *>(IR);
   97 void printIR(const Loop *L, StringRef Banner) {
  135   if (any_isa<const Loop *>(IR)) {
  136     const Loop *L = any_cast<const Loop *>(IR);
  136     const Loop *L = any_cast<const Loop *>(IR);
lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
   76   bool runOnLoop(Loop &L);
  139   for (Loop *L : LI)
  146 bool FalkorMarkStridedAccesses::runOnLoop(Loop &L) {
lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  721 getFalkorUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  768 void AArch64TTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/AArch64/AArch64TargetTransformInfo.h
  142   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
   94   const Loop *L = LI->getLoopFor(Start);
   96     const Loop *P = L;
lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
   72 static bool dependsOnLocalPhi(const Loop *L, const Value *Cond,
   91 void AMDGPUTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  691 void GCNTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  827 void R600TTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
   62   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  138   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  240   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
   98   handleLoopCondition(Value *Cond, PHINode *Broken, llvm::Loop *L,
  230     Value *Cond, PHINode *Broken, llvm::Loop *L, BranchInst *Term) {
  262   llvm::Loop *L = LI->getLoopFor(BB);
  292   llvm::Loop *L = LI->getLoopFor(BB);
lib/Target/ARM/ARMTargetTransformInfo.cpp
  848 bool ARMTTIImpl::isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
 1003 void ARMTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/ARM/ARMTargetTransformInfo.h
   96   bool shouldFavorBackedgeIndex(const Loop *L) const {
  202   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
  207   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/ARM/MVETailPredication.cpp
   52   Loop *L = nullptr;
   70   bool runOnLoop(Loop *L, LPPassManager&) override;
  111 bool MVETailPredication::runOnLoop(Loop *L, LPPassManager&) {
  401                     SetVector<Instruction*> &MaybeDead, Loop *L) {
lib/Target/Hexagon/HexagonCommonGEP.cpp
  132     bool isInvariantIn(Value *Val, Loop *L);
  133     bool isInvariantIn(GepNode *Node, Loop *L);
  134     bool isInMainPath(BasicBlock *B, Loop *L);
  837 bool HexagonCommonGEP::isInvariantIn(Value *Val, Loop *L) {
  847 bool HexagonCommonGEP::isInvariantIn(GepNode *Node, Loop *L) {
  854 bool HexagonCommonGEP::isInMainPath(BasicBlock *B, Loop *L) {
  865 static BasicBlock *preheader(DominatorTree *DT, Loop *L) {
  902     Loop *Lp = LI->getLoopFor(LocB);
lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
  140     bool runOnLoop(Loop *L, LPPassManager &LPM) override;
  144     bool isLegalStore(Loop *CurLoop, StoreInst *SI);
  145     void collectStores(Loop *CurLoop, BasicBlock *BB,
  147     bool processCopyingStore(Loop *CurLoop, StoreInst *SI, const SCEV *BECount);
  148     bool coverLoop(Loop *L, SmallVectorImpl<Instruction*> &Insts) const;
  149     bool runOnLoopBlock(Loop *CurLoop, BasicBlock *BB, const SCEV *BECount,
  151     bool runOnCountableLoop(Loop *L);
  558     explicit PolynomialMultiplyRecognize(Loop *loop, const DataLayout &dl,
  614     Loop *CurLoop;
 1913 bool HexagonLoopIdiomRecognize::isLegalStore(Loop *CurLoop, StoreInst *SI) {
 1967 mayLoopAccessLocation(Value *Ptr, ModRefInfo Access, Loop *L,
 1998 void HexagonLoopIdiomRecognize::collectStores(Loop *CurLoop, BasicBlock *BB,
 2007 bool HexagonLoopIdiomRecognize::processCopyingStore(Loop *CurLoop,
 2171     Loop *ParentL = LF->getLoopFor(Preheader);
 2303 bool HexagonLoopIdiomRecognize::coverLoop(Loop *L,
 2355 bool HexagonLoopIdiomRecognize::runOnLoopBlock(Loop *CurLoop, BasicBlock *BB,
 2378 bool HexagonLoopIdiomRecognize::runOnCountableLoop(Loop *L) {
 2407 bool HexagonLoopIdiomRecognize::runOnLoop(Loop *L, LPPassManager &LPM) {
lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
   78 void HexagonTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/Hexagon/HexagonTargetTransformInfo.h
   64   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp
  284     bool runOnLoop(Loop *L, LPPassManager &LPM) override;
  289     Loop *CurLoop;
  316 bool HexagonVectorLoopCarriedReuse::runOnLoop(Loop *L, LPPassManager &LPM) {
lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
  142 void NVPTXTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/NVPTX/NVPTXTargetTransformInfo.h
   96   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
  114     bool runOnLoop(Loop *L);
  117     bool alreadyPrepared(Loop *L, Instruction* MemI,
  135     bool updateFormPrep(Loop *L, SmallVector<Bucket, 16> &Buckets);
  143     bool rewriteLoadStores(Loop *L, Bucket &BucketChain,
  327     Loop *L, Bucket &BucketChain, SmallSet<BasicBlock *, 16> &BBChanged) {
  468 bool PPCLoopPreIncPrep::updateFormPrep(Loop *L,
  490 bool PPCLoopPreIncPrep::alreadyPrepared(Loop *L, Instruction* MemI,
  542 bool PPCLoopPreIncPrep::runOnLoop(Loop *L) {
lib/Target/PowerPC/PPCTargetTransformInfo.cpp
  496 bool PPCTTIImpl::isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
  519   for (Loop::block_iterator I = L->block_begin(), IE = L->block_end();
  555 void PPCTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  941 bool PPCTTIImpl::canSaveCmp(Loop *L, BranchInst **BI, ScalarEvolution *SE,
  945   for (Loop::iterator I = L->begin(), E = L->end(); I != E; ++I)
lib/Target/PowerPC/PPCTargetTransformInfo.h
   56   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
   60   bool canSaveCmp(Loop *L, BranchInst **BI, ScalarEvolution *SE, LoopInfo *LI,
   63   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
  240 void SystemZTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/SystemZ/SystemZTargetTransformInfo.h
   49   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Transforms/IPO/LoopExtractor.cpp
   47     bool runOnLoop(Loop *L, LPPassManager &) override;
   85 bool LoopExtractor::runOnLoop(Loop *L, LPPassManager &LPM) {
lib/Transforms/IPO/SampleProfile.cpp
 1377     Loop *L = LI->getLoopFor(BB);
lib/Transforms/InstCombine/InstructionCombining.cpp
 1803       if (Loop *L = LI->getLoopFor(GEP.getParent())) {
lib/Transforms/Instrumentation/InstrProfiling.cpp
  185       DenseMap<Loop *, SmallVector<LoadStorePair, 8>> &LoopToCands,
  217           auto *TargetLoop = LI.getLoopFor(ExitBlock);
  229   DenseMap<Loop *, SmallVector<LoadStorePair, 8>> &LoopToCandidates;
  239       DenseMap<Loop *, SmallVector<LoadStorePair, 8>> &LoopToCands,
  304   bool allowSpeculativeCounterPromotion(Loop *LP) {
  316   unsigned getMaxNumOfPromotionsInLoop(Loop *LP) {
  353       auto *TargetLoop = LI.getLoopFor(TargetBlock);
  365   DenseMap<Loop *, SmallVector<LoadStorePair, 8>> &LoopToCandidates;
  368   Loop &L;
  446   DenseMap<Loop *, SmallVector<LoadStorePair, 8>> LoopPromotionCandidates;
  459     Loop *ParentLoop = LI.getLoopFor(BB);
  465   SmallVector<Loop *, 4> Loops = LI.getLoopsInPreorder();
  469   for (auto *Loop : llvm::reverse(Loops)) {
lib/Transforms/Scalar/GuardWidening.cpp
  442   Loop *DominatedInstrLoop = LI.getLoopFor(DominatedInstr->getParent());
  443   Loop *DominatingGuardLoop = LI.getLoopFor(DominatingGuard->getParent());
  820 PreservedAnalyses GuardWideningPass::run(Loop &L, LoopAnalysisManager &AM,
  885   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
lib/Transforms/Scalar/IVUsersPrinter.cpp
   16 PreservedAnalyses IVUsersPrinterPass::run(Loop &L, LoopAnalysisManager &AM,
lib/Transforms/Scalar/IndVarSimplify.cpp
  147   bool handleFloatingPointIV(Loop *L, PHINode *PH);
  148   bool rewriteNonIntegerIVs(Loop *L);
  150   bool simplifyAndExtend(Loop *L, SCEVExpander &Rewriter, LoopInfo *LI);
  152   bool optimizeLoopExits(Loop *L, SCEVExpander &Rewriter);
  155   bool predicateLoopExits(Loop *L, SCEVExpander &Rewriter);
  157   bool canLoopBeDeleted(Loop *L, SmallVector<RewritePhi, 8> &RewritePhiSet);
  158   bool rewriteLoopExitValues(Loop *L, SCEVExpander &Rewriter);
  159   bool rewriteFirstIterationLoopExitValues(Loop *L);
  160   bool hasHardUserWithinLoop(const Loop *L, const Instruction *I) const;
  162   bool linearFunctionTestReplace(Loop *L, BasicBlock *ExitingBB,
  166   bool sinkUnusedInvariants(Loop *L);
  174   bool run(Loop *L);
  272   auto *L = LI->getLoopFor(DefI->getParent());
  307 bool IndVarSimplify::handleFloatingPointIV(Loop *L, PHINode *PN) {
  501 bool IndVarSimplify::rewriteNonIntegerIVs(Loop *L) {
  551 bool IndVarSimplify::hasHardUserWithinLoop(const Loop *L, const Instruction *I) const {
  584 bool IndVarSimplify::rewriteLoopExitValues(Loop *L, SCEVExpander &Rewriter) {
  690           if (auto *EVL = LI->getLoopFor(ExitInsn->getParent()))
  749 bool IndVarSimplify::rewriteFirstIterationLoopExitValues(Loop *L) {
  819     Loop *L, SmallVector<RewritePhi, 8> &RewritePhiSet) {
  972   Loop            *L;
 1075   for (const Loop *L = LI->getLoopFor(Use->getParent());
 1963 bool IndVarSimplify::simplifyAndExtend(Loop *L,
 2020 static PHINode *getLoopPhiForCounter(Value *IncV, Loop *L) {
 2071 static bool needsLFTR(Loop *L, BasicBlock *ExitingBB) {
 2219 static bool isLoopCounter(PHINode* Phi, Loop *L,
 2247 static PHINode *FindLoopCounter(Loop *L, BasicBlock *ExitingBB,
 2332                            const SCEV *ExitCount, bool UsePostInc, Loop *L,
 2422 linearFunctionTestReplace(Loop *L, BasicBlock *ExitingBB,
 2566 bool IndVarSimplify::sinkUnusedInvariants(Loop *L) {
 2657                                             DominatorTree &DT, Loop *L) {
 2682 bool IndVarSimplify::optimizeLoopExits(Loop *L, SCEVExpander &Rewriter) {
 2807 bool IndVarSimplify::predicateLoopExits(Loop *L, SCEVExpander &Rewriter) {
 2975 bool IndVarSimplify::run(Loop *L) {
 3139 PreservedAnalyses IndVarSimplifyPass::run(Loop &L, LoopAnalysisManager &AM,
 3163   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
  147   static bool parseRangeCheckICmp(Loop *L, ICmpInst *ICI, ScalarEvolution &SE,
  152   extractRangeChecksFromCond(Loop *L, ScalarEvolution &SE, Use &ConditionUse,
  224   extractRangeChecksFromBranch(BranchInst *BI, Loop *L, ScalarEvolution &SE,
  241   bool run(Loop *L, function_ref<void(Loop *, bool)> LPMAddNewLoop);
  241   bool run(Loop *L, function_ref<void(Loop *, bool)> LPMAddNewLoop);
  257   bool runOnLoop(Loop *L, LPPassManager &LPM) override;
  276 InductiveRangeCheck::parseRangeCheckICmp(Loop *L, ICmpInst *ICI,
  336     Loop *L, ScalarEvolution &SE, Use &ConditionUse,
  392     BranchInst *BI, Loop *L, ScalarEvolution &SE, BranchProbabilityInfo *BPI,
  410 static void DisableAllLoopOptsOnLoop(Loop &L) {
  492                                                     Loop &, const char *&);
  552   Loop *createClonedLoopStructure(Loop *Original, Loop *Parent,
  552   Loop *createClonedLoopStructure(Loop *Original, Loop *Parent,
  552   Loop *createClonedLoopStructure(Loop *Original, Loop *Parent,
  606   function_ref<void(Loop *, bool)> LPMAddNewLoop;
  609   Loop &OriginalLoop;
  626   LoopConstrainer(Loop &L, LoopInfo &LI,
  627                   function_ref<void(Loop *, bool)> LPMAddNewLoop,
  646                                   Loop *L, ScalarEvolution &SE) {
  696                                   Loop *L, ScalarEvolution &SE) {
  737                                   BranchProbabilityInfo *BPI, Loop &L,
 1356   Loop *ParentLoop = OriginalLoop.getParentLoop();
 1364 Loop *LoopConstrainer::createClonedLoopStructure(Loop *Original, Loop *Parent,
 1364 Loop *LoopConstrainer::createClonedLoopStructure(Loop *Original, Loop *Parent,
 1364 Loop *LoopConstrainer::createClonedLoopStructure(Loop *Original, Loop *Parent,
 1367   Loop &New = *LI.AllocateLoop();
 1380   for (Loop *SubLoop : *Original)
 1531   Loop *PreL = nullptr, *PostL = nullptr;
 1663     const Loop *L = IndVar->getLoop();
 1749 PreservedAnalyses IRCEPass::run(Loop &L, LoopAnalysisManager &AM,
 1768 bool IRCELegacyPass::runOnLoop(Loop *L, LPPassManager &LPM) {
 1785     Loop *L, function_ref<void(Loop *, bool)> LPMAddNewLoop) {
 1785     Loop *L, function_ref<void(Loop *, bool)> LPMAddNewLoop) {
lib/Transforms/Scalar/LICM.cpp
  134 static bool inSubLoop(BasicBlock *BB, Loop *CurLoop, LoopInfo *LI);
  135 static bool isNotUsedOrFreeInLoop(const Instruction &I, const Loop *CurLoop,
  138 static void hoist(Instruction &I, const DominatorTree *DT, const Loop *CurLoop,
  142                  const Loop *CurLoop, ICFLoopSafetyInfo *SafetyInfo,
  146                                            const Loop *CurLoop,
  151                                      AliasSetTracker *CurAST, Loop *CurLoop,
  154                                              Loop *CurLoop,
  169   using ASTrackerMapTy = DenseMap<Loop *, std::unique_ptr<AliasSetTracker>>;
  170   bool runOnLoop(Loop *L, AliasAnalysis *AA, LoopInfo *LI, DominatorTree *DT,
  187   collectAliasInfoForLoop(Loop *L, LoopInfo *LI, AliasAnalysis *AA);
  189   collectAliasInfoForLoopWithMSSA(Loop *L, AliasAnalysis *AA,
  202   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
  266                                Loop *L) override;
  270   void deleteAnalysisValue(Value *V, Loop *L) override;
  273   void deleteAnalysisLoop(Loop *L) override;
  277 PreservedAnalyses LICMPass::run(Loop &L, LoopAnalysisManager &AM,
  327     Loop *L, AliasAnalysis *AA, LoopInfo *LI, DominatorTree *DT,
  496                       TargetTransformInfo *TTI, Loop *CurLoop,
  574   Loop *CurLoop;
  586   ControlFlowHoister(LoopInfo *LI, DominatorTree *DT, Loop *CurLoop,
  796                        DominatorTree *DT, TargetLibraryInfo *TLI, Loop *CurLoop,
  982                                   Loop *CurLoop) {
 1046                 const Loop *L) {
 1063 bool isOnlyMemoryAccess(const Instruction *I, const Loop *L,
 1081                               Loop *CurLoop, AliasSetTracker *CurAST,
 1298 static bool isFreeInLoop(const Instruction &I, const Loop *CurLoop,
 1326 static bool isNotUsedOrFreeInLoop(const Instruction &I, const Loop *CurLoop,
 1420       if (Loop *OLoop = LI->getLoopFor(OInst->getParent()))
 1457     const LoopSafetyInfo *SafetyInfo, const Loop *CurLoop,
 1491                                         LoopInfo *LI, const Loop *CurLoop,
 1563                  const Loop *CurLoop, ICFLoopSafetyInfo *SafetyInfo,
 1663 static void hoist(Instruction &I, const DominatorTree *DT, const Loop *CurLoop,
 1708                                            const Loop *CurLoop,
 1751       if (Loop *L = LI.getLoopFor(I->getParent()))
 2157 LoopInvariantCodeMotion::collectAliasInfoForLoop(Loop *L, LoopInfo *LI,
 2160   SmallVector<Loop *, 4> RecomputeLoops;
 2161   for (Loop *InnerL : L->getSubLoops()) {
 2186   for (Loop *InnerL : RecomputeLoops)
 2200     Loop *L, AliasAnalysis *AA, MemorySSAUpdater *MSSAU) {
 2210                                              Loop *L) {
 2220 void LegacyLICMPass::deleteAnalysisValue(Value *V, Loop *L) {
 2230 void LegacyLICMPass::deleteAnalysisLoop(Loop *L) {
 2238                                      AliasSetTracker *CurAST, Loop *CurLoop,
 2285                                              Loop *CurLoop,
 2333 static bool inSubLoop(BasicBlock *BB, Loop *CurLoop, LoopInfo *LI) {
lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp
   16 LoopAccessInfoPrinterPass::run(Loop &L, LoopAnalysisManager &AM,
lib/Transforms/Scalar/LoopDataPrefetch.cpp
   71   bool runOnLoop(Loop *L);
  205   for (Loop *I : *LI)
  212 bool LoopDataPrefetch::runOnLoop(Loop *L) {
lib/Transforms/Scalar/LoopDeletion.cpp
   42 static bool isLoopDead(Loop *L, ScalarEvolution &SE,
   93 static bool isLoopNeverExecuted(Loop *L) {
  135 static LoopDeletionResult deleteLoopIfDead(Loop *L, DominatorTree &DT,
  208 PreservedAnalyses LoopDeletionPass::run(Loop &L, LoopAnalysisManager &AM,
  234   bool runOnLoop(Loop *L, LPPassManager &) override;
  251 bool LoopDeletionLegacyPass::runOnLoop(Loop *L, LPPassManager &LPM) {
lib/Transforms/Scalar/LoopDistribute.cpp
  131   InstPartition(Instruction *I, Loop *L, bool DepCycle = false)
  184   Loop *cloneLoopWithPreheader(BasicBlock *InsertBefore, BasicBlock *LoopDomBB,
  195   const Loop *getClonedLoop() const { return ClonedLoop; }
  200   Loop *getDistributedLoop() const {
  260   Loop *OrigLoop;
  264   Loop *ClonedLoop = nullptr;
  282   InstPartitionContainer(Loop *L, LoopInfo *LI, DominatorTree *DT)
  449     Loop *NewLoop;
  573   Loop *L;
  605       Loop *NewLoop = Part->getDistributedLoop();
  658   LoopDistributeForLoop(Loop *L, Function *F, LoopInfo *LI, DominatorTree *DT,
  665   bool processLoop(std::function<const LoopAccessInfo &(Loop &)> &GetLAA) {
  952   Loop *L;
  976                     std::function<const LoopAccessInfo &(Loop &)> &GetLAA) {
  980   SmallVector<Loop *, 8> Worklist;
  982   for (Loop *TopLevelLoop : *LI)
  983     for (Loop *L : depth_first(TopLevelLoop))
  990   for (Loop *L : Worklist) {
 1024     std::function<const LoopAccessInfo &(Loop &)> GetLAA =
 1059   std::function<const LoopAccessInfo &(Loop &)> GetLAA =
lib/Transforms/Scalar/LoopFuse.cpp
  143   Loop *L;
  162   FusionCandidate(Loop *L, const DominatorTree *DT,
  385 using LoopVector = SmallVector<Loop *, 4>;
  448   bool isRemovedLoop(const Loop *L) const { return RemovedLoops.count(L); }
  452   void removeLoop(const Loop *L) { RemovedLoops.insert(L); }
  459       for (Loop *L : LV)
  480   SmallPtrSet<const Loop *, 8> RemovedLoops;
  610     for (Loop *L : LV) {
  841     AddRecLoopReplacer(ScalarEvolution &SE, const Loop &OldL, const Loop &NewL,
  841     AddRecLoopReplacer(ScalarEvolution &SE, const Loop &OldL, const Loop &NewL,
  847       const Loop *ExprL = Expr->getLoop();
  872     const Loop &OldL, &NewL;
  877   bool accessDiffIsPositive(const Loop &L0, const Loop &L1, Instruction &I0,
  877   bool accessDiffIsPositive(const Loop &L0, const Loop &L1, Instruction &I0,
 1145   Loop *performFusion(const FusionCandidate &FC0, const FusionCandidate &FC1) {
 1286       Loop *ChildLoop = *ChildLoopIt;
 1349   Loop *fuseGuardedLoops(const FusionCandidate &FC0,
 1539       Loop *ChildLoop = *ChildLoopIt;
lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  122   virtual void markLoopAsDeleted(Loop *L) = 0;
  129   void markLoopAsDeleted(Loop *L) override { LPM.markLoopAsDeleted(*L); }
  135   void markLoopAsDeleted(Loop *L) override {
  141   Loop *CurLoop = nullptr;
  163   bool runOnLoop(Loop *L);
  267   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
  306 PreservedAnalyses LoopIdiomRecognizePass::run(Loop &L, LoopAnalysisManager &AM,
  352 bool LoopIdiomRecognize::runOnLoop(Loop *L) {
  858 mayLoopAccessLocation(Value *Ptr, ModRefInfo Access, Loop *L,
  879   for (Loop::block_iterator BI = L->block_begin(), E = L->block_end(); BI != E;
  908                                unsigned StoreSize, Loop *CurLoop,
 1284 static bool detectPopcountIdiom(Loop *CurLoop, BasicBlock *PreCondBB,
 1419 static bool detectShiftUntilZeroIdiom(Loop *CurLoop, const DataLayout &DL,
 2338   SmallVector<Loop::Edge, 2> LoopExitEdges;
 2343   for (const Loop::Edge &Edge : LoopExitEdges) {
 2404   Loop *ParentLoop = CurLoop->getParentLoop();
 2538   Loop *PhonyLoop = LI->AllocateLoop();
lib/Transforms/Scalar/LoopInstSimplify.cpp
   50 static bool simplifyLoopInst(Loop &L, DominatorTree &DT, LoopInfo &LI,
  186   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
  223 PreservedAnalyses LoopInstSimplifyPass::run(Loop &L, LoopAnalysisManager &AM,
lib/Transforms/Scalar/LoopInterchange.cpp
   62 using LoopVector = SmallVector<Loop *, 8>;
   86                                      Loop *L, DependenceInfo *DI) {
  278   Loop *CurrentLoop = &L;
  279   const std::vector<Loop *> *Vec = &CurrentLoop->getSubLoops();
  295 static PHINode *getInductionVariable(Loop *L, ScalarEvolution *SE) {
  327   LoopInterchangeLegality(Loop *Outer, Loop *Inner, ScalarEvolution *SE,
  327   LoopInterchangeLegality(Loop *Outer, Loop *Inner, ScalarEvolution *SE,
  346   bool tightlyNested(Loop *Outer, Loop *Inner);
  346   bool tightlyNested(Loop *Outer, Loop *Inner);
  353   bool findInductionAndReductions(Loop *L,
  355                                   Loop *InnerLoop);
  357   Loop *OuterLoop;
  358   Loop *InnerLoop;
  374   LoopInterchangeProfitability(Loop *Outer, Loop *Inner, ScalarEvolution *SE,
  374   LoopInterchangeProfitability(Loop *Outer, Loop *Inner, ScalarEvolution *SE,
  385   Loop *OuterLoop;
  386   Loop *InnerLoop;
  398   LoopInterchangeTransform(Loop *Outer, Loop *Inner, ScalarEvolution *SE,
  398   LoopInterchangeTransform(Loop *Outer, Loop *Inner, ScalarEvolution *SE,
  407   void restructureLoops(Loop *NewInner, Loop *NewOuter,
  407   void restructureLoops(Loop *NewInner, Loop *NewOuter,
  410   void removeChildLoop(Loop *OuterLoop, Loop *InnerLoop);
  410   void removeChildLoop(Loop *OuterLoop, Loop *InnerLoop);
  417   Loop *OuterLoop;
  418   Loop *InnerLoop;
  452   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
  466     for (Loop *L : LoopList) {
  511     Loop *OuterMostLoop = *(LoopList.begin());
  555     Loop *InnerLoop = LoopList[InnerLoopId];
  556     Loop *OuterLoop = LoopList[OuterLoopId];
  594 bool LoopInterchangeLegality::tightlyNested(Loop *OuterLoop, Loop *InnerLoop) {
  594 bool LoopInterchangeLegality::tightlyNested(Loop *OuterLoop, Loop *InnerLoop) {
  663 static PHINode *findInnerReductionPhi(Loop *L, Value *V) {
  679     Loop *L, SmallVector<PHINode *, 8> &Inductions, Loop *InnerLoop) {
  679     Loop *L, SmallVector<PHINode *, 8> &Inductions, Loop *InnerLoop) {
  930 static bool areLoopExitPHIsSupported(Loop *OuterLoop, Loop *InnerLoop) {
  930 static bool areLoopExitPHIsSupported(Loop *OuterLoop, Loop *InnerLoop) {
 1131 void LoopInterchangeTransform::removeChildLoop(Loop *OuterLoop,
 1132                                                Loop *InnerLoop) {
 1133   for (Loop *L : *OuterLoop)
 1165     Loop *NewInner, Loop *NewOuter, BasicBlock *OrigInnerPreHeader,
 1165     Loop *NewInner, Loop *NewOuter, BasicBlock *OrigInnerPreHeader,
 1167   Loop *OuterLoopParent = OuterLoop->getParentLoop();
lib/Transforms/Scalar/LoopLoadElimination.cpp
   98                                  Loop *L) const {
  146 static bool doesStoreDominatesAllLatches(BasicBlock *StoreBlock, Loop *L,
  156 static bool isLoadConditional(LoadInst *Load, Loop *L) {
  165   LoadEliminationForLoop(Loop *L, LoopInfo *LI, const LoopAccessInfo &LAI,
  581   Loop *L;
  601                           function_ref<const LoopAccessInfo &(Loop &)> GetLAI) {
  607   SmallVector<Loop *, 8> Worklist;
  609   for (Loop *TopLevelLoop : LI)
  610     for (Loop *L : depth_first(TopLevelLoop))
  617   for (Loop *L : Worklist) {
lib/Transforms/Scalar/LoopPassManager.cpp
   25             LPMUpdater &>::run(Loop &L, LoopAnalysisManager &AM,
   41     if (!PI.runBeforePass<Loop>(*Pass, L))
   48       PI.runAfterPassInvalidated<Loop>(*Pass);
   50       PI.runAfterPass<Loop>(*Pass, L);
   87   PA.preserveSet<AllAnalysesOn<Loop>>();
  100 PreservedAnalyses PrintLoopPass::run(Loop &L, LoopAnalysisManager &,
lib/Transforms/Scalar/LoopPredication.cpp
  254   Loop *L;
  307   bool runOnLoop(Loop *L);
  322   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
  348 PreservedAnalyses LoopPredicationPass::run(Loop &L, LoopAnalysisManager &AM,
  648 static void normalizePredicate(ScalarEvolution *SE, Loop *L,
  956 bool LoopPredication::runOnLoop(Loop *Loop) {
lib/Transforms/Scalar/LoopRerollPass.cpp
  171     bool runOnLoop(Loop *L, LPPassManager &LPM) override;
  200       SimpleLoopReduction(Instruction *P, Loop *L) : Instructions(1, P) {
  252       void add(Loop *L);
  378       DAGRootTracker(LoopReroll *Parent, Loop *L, Instruction *IV,
  432       Loop *L;
  476     bool isLoopControlIV(Loop *L, Instruction *IV);
  477     void collectPossibleIVs(Loop *L, SmallInstructionVector &PossibleIVs);
  478     void collectPossibleReductions(Loop *L,
  480     bool reroll(Instruction *IV, Loop *L, BasicBlock *Header,
  500 static bool hasUsesOutsideLoop(Instruction *I, Loop *L) {
  514 bool LoopReroll::isLoopControlIV(Loop *L, Instruction *IV) {
  572 void LoopReroll::collectPossibleIVs(Loop *L,
  609 void LoopReroll::SimpleLoopReduction::add(Loop *L) {
  651 void LoopReroll::collectPossibleReductions(Loop *L,
 1615 bool LoopReroll::reroll(Instruction *IV, Loop *L, BasicBlock *Header,
 1640 bool LoopReroll::runOnLoop(Loop *L, LPPassManager &LPM) {
lib/Transforms/Scalar/LoopRotation.cpp
   37 PreservedAnalyses LoopRotatePass::run(Loop &L, LoopAnalysisManager &AM,
   89   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
lib/Transforms/Scalar/LoopSimplifyCFG.cpp
   83 static void removeBlockFromLoops(BasicBlock *BB, Loop *FirstLoop,
   84                                  Loop *LastLoop = nullptr) {
   88   for (Loop *Current = FirstLoop; Current != LastLoop;
   95 static Loop *getInnermostLoopFor(SmallPtrSetImpl<BasicBlock *> &BBs,
   96                                  Loop &L, LoopInfo &LI) {
   97   Loop *Innermost = nullptr;
   99     Loop *BBL = LI.getLoopFor(BB);
  117   Loop &L;
  381     if (Loop *OuterLoop = LI.getLoopFor(Preheader)) {
  386       Loop *StillReachable = getInnermostLoopFor(LiveExitBlocks, L, LI);
  404         Loop *FixLCSSALoop = OuterLoop;
  445         Loop *DL = LI.getLoopFor(BB);
  447           for (auto *PL = DL->getParentLoop(); PL; PL = PL->getParentLoop())
  524   ConstantTerminatorFoldingImpl(Loop &L, LoopInfo &LI, DominatorTree &DT,
  623 static bool constantFoldTerminators(Loop &L, DominatorTree &DT, LoopInfo &LI,
  641 static bool mergeBlocksIntoPredecessors(Loop &L, DominatorTree &DT,
  669 static bool simplifyLoopCFG(Loop &L, DominatorTree &DT, LoopInfo &LI,
  689 PreservedAnalyses LoopSimplifyCFGPass::run(Loop &L, LoopAnalysisManager &AM,
  718   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
lib/Transforms/Scalar/LoopSink.cpp
  174 static bool sinkInstruction(Loop &L, Instruction &I,
  251 static bool sinkLoopInvariantInstructions(Loop &L, AAResults &AA, LoopInfo &LI,
  328   SmallVector<Loop *, 4> PreorderLoops = LI.getLoopsInPreorder();
  332     Loop &L = *PreorderLoops.pop_back_val();
  356   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
lib/Transforms/Scalar/LoopStrengthReduce.cpp
  363   void initialMatch(const SCEV *S, Loop *L, ScalarEvolution &SE);
  365   bool isCanonical(const Loop &L) const;
  367   void canonicalize(const Loop &L);
  389 static void DoInitialMatch(const SCEV *S, Loop *L,
  443 void Formula::initialMatch(const SCEV *S, Loop *L, ScalarEvolution &SE) {
  465 bool Formula::isCanonical(const Loop &L) const {
  496 void Formula::canonicalize(const Loop &L) {
 1012                                      const Loop &L);
 1018   const Loop *L = nullptr;
 1025   Cost(const Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI) :
 1095   bool isUseFullyOutsideLoop(const Loop *L) const;
 1199   bool InsertFormula(const Formula &F, const Loop &L);
 1470 bool LSRFixup::isUseFullyOutsideLoop(const Loop *L) const {
 1498   for (const Loop *PIL : PostIncLoops) {
 1533 bool LSRUse::InsertFormula(const Formula &F, const Loop &L) {
 1706                                  const Formula &F, const Loop &L) {
 1760                                      const Loop &L) {
 1917   Loop *const L;
 2053   LSRInstance(Loop *L, IVUsers &IU, ScalarEvolution &SE, DominatorTree &DT,
 2719               Loop *L, ScalarEvolution &SE) {
 3487                                    const Loop *L,
 3544                               LSRUse &LU, const SCEV *S, const Loop *L,
 5036     const Loop *IPLoop = LI.getLoopFor(IP->getParent());
 5047       const Loop *IDomLoop = LI.getLoopFor(IDom);
 5085   for (const Loop *PIL : LF.PostIncLoops) {
 5322         Loop *PNLoop = LI.getLoopFor(Parent);
 5495 LSRInstance::LSRInstance(Loop *L, IVUsers &IU, ScalarEvolution &SE,
 5542     const Loop *DomLoop = LI.getLoopFor(BB);
 5674   bool runOnLoop(Loop *L, LPPassManager &LPM) override;
 5706 static bool ReduceLoopStrength(Loop *L, IVUsers &IU, ScalarEvolution &SE,
 5736 bool LoopStrengthReduce::runOnLoop(Loop *L, LPPassManager & /*LPM*/) {
 5753 PreservedAnalyses LoopStrengthReducePass::run(Loop &L, LoopAnalysisManager &AM,
lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
   93 static MDNode *GetUnrollMetadataForLoop(const Loop *L, StringRef Name) {
  101 static bool HasAnyUnrollPragma(const Loop *L, StringRef Prefix) {
  124 static bool HasUnrollAndJamEnablePragma(const Loop *L) {
  130 static unsigned UnrollAndJamCountPragmaValue(const Loop *L) {
  154     Loop *L, Loop *SubLoop, const TargetTransformInfo &TTI, DominatorTree &DT,
  154     Loop *L, Loop *SubLoop, const TargetTransformInfo &TTI, DominatorTree &DT,
  277 tryToUnrollAndJamLoop(Loop *L, DominatorTree &DT, LoopInfo *LI,
  284   Loop *SubLoop = L->getSubLoops()[0];
  387   Loop *EpilogueOuterLoop = nullptr;
  440   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
  494 PreservedAnalyses LoopUnrollAndJamPass::run(Loop &L, LoopAnalysisManager &AM,
lib/Transforms/Scalar/LoopUnrollPass.cpp
  177     Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI,
  334     const Loop *L, unsigned TripCount, DominatorTree &DT, ScalarEvolution &SE,
  640     const Loop *L, unsigned &NumCalls, bool &NotDuplicatable, bool &Convergent,
  666 static MDNode *GetUnrollMetadataForLoop(const Loop *L, StringRef Name) {
  673 static bool HasUnrollFullPragma(const Loop *L) {
  679 static bool HasUnrollEnablePragma(const Loop *L) {
  684 static bool HasRuntimeUnrollDisablePragma(const Loop *L) {
  690 static unsigned UnrollCountPragmaValue(const Loop *L) {
  737     Loop *L, const TargetTransformInfo &TTI, DominatorTree &DT, LoopInfo *LI,
 1012     Loop *L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution &SE,
 1132   Loop *RemainderLoop = nullptr;
 1219   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
 1294 PreservedAnalyses LoopFullUnrollPass::run(Loop &L, LoopAnalysisManager &AM,
 1310   Loop *ParentL = L.getParentLoop();
 1311   SmallPtrSet<Loop *, 4> OldLoops;
 1355   SmallVector<Loop *, 4> SibLoops;
 1377       SmallVector<Loop *, 4> ChildLoops(L.begin(), L.end());
 1386 static SmallVector<Loop *, 8> appendLoopsToWorklist(RangeT &&Loops) {
 1387   SmallVector<Loop *, 8> Worklist;
 1390   SmallVector<Loop *, 4> PreOrderLoops, PreOrderWorklist;
 1392   for (Loop *RootL : Loops) {
 1398       Loop *L = PreOrderWorklist.pop_back_val();
 1442   SmallVector<Loop *, 8> Worklist = appendLoopsToWorklist(LI);
 1449     Loop &L = *Worklist.pop_back_val();
 1451     Loop *ParentL = L.getParentLoop();
lib/Transforms/Scalar/LoopUnswitch.cpp
  116     using LoopPropsMap = std::map<const Loop *, LoopProperties>;
  144     bool countLoop(const Loop *L, const TargetTransformInfo &TTI,
  148     void forgetLoop(const Loop *L);
  165     void cloneData(const Loop *NewLoop, const Loop *OldLoop,
  165     void cloneData(const Loop *NewLoop, const Loop *OldLoop,
  176     std::vector<Loop*> LoopProcessWorklist;
  183     Loop *currentLoop = nullptr;
  211     bool runOnLoop(Loop *L, LPPassManager &LPM) override;
  242     void SplitExitEdges(Loop *L,
  249     void UnswitchTrivialCondition(Loop *L, Value *Cond, Constant *Val,
  251     void UnswitchNontrivialCondition(Value *LIC, Constant *OnVal, Loop *L,
  254     void RewriteLoopBodyWithConditionConstant(Loop *L, Value *LIC,
  262     void SimplifyCode(std::vector<Instruction*> &Worklist, Loop *L);
  274 bool LUAnalysisCache::countLoop(const Loop *L, const TargetTransformInfo &TTI,
  298     for (Loop::block_iterator I = L->block_begin(), E = L->block_end(); I != E;
  323 void LUAnalysisCache::forgetLoop(const Loop *L) {
  356 void LUAnalysisCache::cloneData(const Loop *NewLoop, const Loop *OldLoop,
  356 void LUAnalysisCache::cloneData(const Loop *NewLoop, const Loop *OldLoop,
  421 static Value *FindLIVLoopCondition(Value *Cond, Loop *L, bool &Changed,
  505 FindLIVLoopCondition(Value *Cond, Loop *L, bool &Changed,
  518 bool LoopUnswitch::runOnLoop(Loop *L, LPPassManager &LPM_Ref) {
  714   for (Loop::block_iterator I = currentLoop->block_begin(),
  833 static bool isTrivialLoopExitBlockHelper(Loop *L, BasicBlock *BB,
  868 static BasicBlock *isTrivialLoopExitBlock(Loop *L, BasicBlock *BB) {
  907 static Loop *CloneLoop(Loop *L, Loop *PL, ValueToValueMapTy &VM,
  907 static Loop *CloneLoop(Loop *L, Loop *PL, ValueToValueMapTy &VM,
  907 static Loop *CloneLoop(Loop *L, Loop *PL, ValueToValueMapTy &VM,
  909   Loop &New = *LI->AllocateLoop();
  917   for (Loop::block_iterator I = L->block_begin(), E = L->block_end();
  923   for (Loop *I : *L)
  999 void LoopUnswitch::UnswitchTrivialCondition(Loop *L, Value *Cond, Constant *Val,
 1215 void LoopUnswitch::SplitExitEdges(Loop *L,
 1234                                                Loop *L, Instruction *TI) {
 1295   Loop *NewLoop = CloneLoop(L, L->getParentLoop(), VMap, LI, LPM);
 1301   Loop *ParentLoop = L->getParentLoop();
 1311     if (Loop *ExitBBLoop = LI->getLoopFor(ExitBlocks[i]))
 1416                               std::vector<Instruction *> &Worklist, Loop *L,
 1442 void LoopUnswitch::RewriteLoopBodyWithConditionConstant(Loop *L, Value *LIC,
 1581 void LoopUnswitch::SimplifyCode(std::vector<Instruction*> &Worklist, Loop *L) {
lib/Transforms/Scalar/LoopVersioningLICM.cpp
  126   bool runOnLoop(Loop *L, LPPassManager &LPM) override;
  179   Loop *CurLoop = nullptr;
  207   void setNoAliasToLoop(Loop *VerLoop);
  535 void LoopVersioningLICM::setNoAliasToLoop(Loop *VerLoop) {
  567 bool LoopVersioningLICM::runOnLoop(Loop *L, LPPassManager &LPM) {
lib/Transforms/Scalar/PlaceSafepoints.cpp
  122   bool runOnLoop(Loop *);
  123   void runOnLoopAndSubLoops(Loop *L) {
  125     for (Loop *I : *L)
  135     for (Loop *I : *LI) {
  198 static bool containsUnconditionalCallSafepoint(Loop *L, BasicBlock *Header,
  240 static bool mustBeFiniteCountedLoop(Loop *L, ScalarEvolution *SE,
  306 bool PlaceBackedgeSafepointsImpl::runOnLoop(Loop *L) {
lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
  438   bool hasMoreThanOneUseInLoop(Value *v, Loop *L);
  445                             Loop *CurLoop);
  821   Loop *L = LI->getLoopFor(Variadic->getParent());
 1225     GetElementPtrInst *FirstGEP, GetElementPtrInst *SecondGEP, Loop *CurLoop) {
 1280 bool SeparateConstOffsetFromGEP::hasMoreThanOneUseInLoop(Value *V, Loop *L) {
lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
  103 collectHomogenousInstGraphLoopInvariants(Loop &L, Instruction &Root,
  141 static void replaceLoopInvariantUses(Loop &L, Value *Invariant,
  159 static bool areLoopExitPHIsLoopInvariant(Loop &L, BasicBlock &ExitingBB,
  264 static void hoistLoopToNewParent(Loop &L, BasicBlock &Preheader,
  268   Loop *OldParentL = L.getParentLoop();
  274   Loop *NewParentL = nullptr;
  276     if (Loop *ExitL = LI.getLoopFor(ExitBB))
  306   for (Loop *OldContainingL = OldParentL; OldContainingL != NewParentL;
  349 static bool unswitchTrivialBranch(Loop &L, BranchInst &BI, DominatorTree &DT,
  418     if (Loop *ExitL = LI.getLoopFor(LoopExitBB))
  572 static bool unswitchTrivialSwitch(Loop &L, SwitchInst &SI, DominatorTree &DT,
  608   Loop *OuterL = &L;
  615     Loop *ExitL = LI.getLoopFor(DefaultExitBB);
  632     Loop *ExitL = LI.getLoopFor(CaseI->getCaseSuccessor());
  851 static bool unswitchAllTrivialConditions(Loop &L, DominatorTree &DT,
  970     Loop &L, BasicBlock *LoopPH, BasicBlock *SplitBB,
 1141 static Loop *cloneLoopNest(Loop &OrigRootL, Loop *RootParentL,
 1141 static Loop *cloneLoopNest(Loop &OrigRootL, Loop *RootParentL,
 1141 static Loop *cloneLoopNest(Loop &OrigRootL, Loop *RootParentL,
 1156   Loop *ClonedRootL = LI.AllocateLoop();
 1169   SmallVector<std::pair<Loop *, Loop *>, 16> LoopsToClone;
 1169   SmallVector<std::pair<Loop *, Loop *>, 16> LoopsToClone;
 1172   for (Loop *ChildL : llvm::reverse(OrigRootL))
 1175     Loop *ClonedParentL, *L;
 1177     Loop *ClonedL = LI.AllocateLoop();
 1180     for (Loop *ChildL : llvm::reverse(*L))
 1200 static void buildClonedLoops(Loop &OrigL, ArrayRef<BasicBlock *> ExitBlocks,
 1202                              SmallVectorImpl<Loop *> &NonChildClonedLoops) {
 1203   Loop *ClonedL = nullptr;
 1215   Loop *ParentL = nullptr;
 1217   SmallDenseMap<BasicBlock *, Loop *, 16> ExitLoopMap;
 1221       if (Loop *ExitL = LI.getLoopFor(ExitBB)) {
 1317       for (Loop *PL = ClonedL; PL; PL = PL->getParentLoop())
 1325     for (Loop *ChildL : OrigL) {
 1375     Loop *ExitL = ExitLoopMap.lookup(ExitBB);
 1417     if (Loop *OuterL = ExitLoopMap.lookup(BB))
 1423     auto *OuterL = BBAndL.second;
 1432   for (Loop *ChildL : OrigL) {
 1450 deleteDeadClonedBlocks(Loop &L, ArrayRef<BasicBlock *> ExitBlocks,
 1479 static void deleteDeadBlocksFromLoop(Loop &L,
 1513   for (Loop *ParentL = &L; ParentL; ParentL = ParentL->getParentLoop()) {
 1610     if (Loop *InnerL = LI.getLoopFor(BB))
 1674 static bool rebuildLoopAfterUnswitch(Loop &L, ArrayRef<BasicBlock *> ExitBlocks,
 1676                                      SmallVectorImpl<Loop *> &HoistedLoops) {
 1681   Loop *ParentL = nullptr;
 1682   SmallVector<Loop *, 4> ExitLoops;
 1686     if (Loop *ExitL = LI.getLoopFor(ExitBB)) {
 1703     for (Loop *IL = L.getParentLoop(); IL != ParentL;
 1748   Loop *PrevExitL = L.getParentLoop(); // The deepest possible exit loop.
 1766     Loop &ExitL = *LI.getLoopFor(ExitBB);
 1811       if (Loop *BBL = LI.getLoopFor(BB))
 1825     if (Loop *BBL = LI.getLoopFor(BB))
 1840   for (auto *HoistedL : make_range(SubLoopsSplitI, SubLoops.end())) {
 1852     if (auto *NewParentL = LI.getLoopFor(HoistedL->getLoopPreheader()))
 1863     if (Loop *ParentL = L.getParentLoop())
 1902     Loop &L, Instruction &TI, ArrayRef<Value *> Invariants,
 1904     AssumptionCache &AC, function_ref<void(bool, ArrayRef<Loop *>)> UnswitchCB,
 1964   Loop *ParentL = L.getParentLoop();
 1973   Loop *OuterExitL = &L;
 1975     Loop *NewOuterExitL = LI.getLoopFor(ExitBB);
 2169   SmallVector<Loop *, 4> NonChildClonedLoops;
 2181   SmallVector<Loop *, 4> HoistedLoops;
 2254     for (Loop *ChildL : UpdateL) {
 2277   for (Loop *UpdatedL :
 2278        llvm::concat<Loop *>(NonChildClonedLoops, HoistedLoops)) {
 2292     for (Loop *OuterL = ParentL; OuterL != OuterExitL;
 2305   SmallVector<Loop *, 4> SibLoops;
 2306   for (Loop *UpdatedL : llvm::concat<Loop *>(NonChildClonedLoops, HoistedLoops))
 2306   for (Loop *UpdatedL : llvm::concat<Loop *>(NonChildClonedLoops, HoistedLoops))
 2375 turnGuardIntoBranch(IntrinsicInst *GI, Loop &L,
 2452     Instruction &TI, Loop &L, LoopInfo &LI, DominatorTree &DT,
 2471   auto *ParentL = L.getParentLoop();
 2524 unswitchBestCondition(Loop &L, DominatorTree &DT, LoopInfo &LI,
 2526                       function_ref<void(bool, ArrayRef<Loop *>)> UnswitchCB,
 2801 static bool unswitchLoop(Loop &L, DominatorTree &DT, LoopInfo &LI,
 2804                          function_ref<void(bool, ArrayRef<Loop *>)> UnswitchCB,
 2843 PreservedAnalyses SimpleLoopUnswitchPass::run(Loop &L, LoopAnalysisManager &AM,
 2907   bool runOnLoop(Loop *L, LPPassManager &LPM) override;
 2922 bool SimpleLoopUnswitchLegacyPass::runOnLoop(Loop *L, LPPassManager &LPM) {
 2948     for (auto *NewL : NewLoops)
lib/Transforms/Scalar/Sink.cpp
  125     Loop *succ = LI.getLoopFor(SuccToSinkTo);
  126     Loop *cur = LI.getLoopFor(Inst->getParent());
lib/Transforms/Scalar/StructurizeCFG.cpp
  212   Loop *getAdjustedLoop(RegionNode *RN);
  313 Loop *StructurizeCFG::getAdjustedLoop(RegionNode *RN) {
  335   SmallDenseMap<Loop*, unsigned, 8> LoopBlocks;
  341     Loop *Loop = getAdjustedLoop(RN);
  346   Loop *CurrentLoop = nullptr;
lib/Transforms/Scalar/WarnMissedTransforms.cpp
   23 static void warnAboutLeftoverTransformations(Loop *L,
   86   for (auto *L : LI->getLoopsInPreorder())
lib/Transforms/Utils/BasicBlockUtils.cpp
  415     if (Loop *L = LI->getLoopFor(Old))
  462   Loop *L = LI->getLoopFor(OldBB);
  478       if (Loop *PL = LI->getLoopFor(Pred))
  501     Loop *InnermostPredLoop = nullptr;
  503       if (Loop *PredLoop = LI->getLoopFor(Pred)) {
  853     if (Loop *L = LI->getLoopFor(Head)) {
lib/Transforms/Utils/BreakCriticalEdges.cpp
  247     if (Loop *TIL = LI->getLoopFor(TIBB)) {
  250       if (Loop *DestLoop = LI->getLoopFor(DestBB)) {
  267           if (Loop *P = DestLoop->getParentLoop())
lib/Transforms/Utils/CloneFunction.cpp
  752 Loop *llvm::cloneLoopWithPreheader(BasicBlock *Before, BasicBlock *LoopDomBB,
  753                                    Loop *OrigLoop, ValueToValueMapTy &VMap,
  758   Loop *ParentLoop = OrigLoop->getParentLoop();
  759   DenseMap<Loop *, Loop *> LMap;
  759   DenseMap<Loop *, Loop *> LMap;
  761   Loop *NewLoop = LI->AllocateLoop();
  782   for (Loop *CurLoop : OrigLoop->getLoopsInPreorder()) {
  783     Loop *&NewLoop = LMap[CurLoop];
  788       Loop *OrigParent = CurLoop->getParentLoop();
  790       Loop *NewParentLoop = LMap[OrigParent];
  798     Loop *CurLoop = LI->getLoopFor(BB);
  799     Loop *&NewLoop = LMap[CurLoop];
lib/Transforms/Utils/CodeExtractor.cpp
  254 CodeExtractor::CodeExtractor(DominatorTree &DT, Loop &L, bool AggregateArgs,
lib/Transforms/Utils/LCSSA.cpp
   86   SmallDenseMap<Loop*, SmallVector<BasicBlock *,1>> LoopExitBlocks;
   94     Loop *L = LI.getLoopFor(InstBB);
  177       if (auto *OtherLoop = LI.getLoopFor(ExitBB))
  238       if (auto *OtherLoop = LI.getLoopFor(InsertedPN->getParent()))
  276     Loop &L, DominatorTree &DT, SmallVector<BasicBlock *, 8> &ExitBlocks,
  320 bool llvm::formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI,
  385 bool llvm::formLCSSARecursively(Loop &L, DominatorTree &DT, LoopInfo *LI,
  390   for (Loop *SubLoop : L.getSubLoops())
lib/Transforms/Utils/LoopRotationUtils.cpp
   71   bool processLoop(Loop *L);
   74   bool rotateLoop(Loop *L, bool SimplifiedLatch);
   75   bool simplifyLoopLatch(Loop *L);
  176 static bool shouldRotateLoopExitingLatch(Loop *L) {
  204 bool LoopRotate::rotateLoop(Loop *L, bool SimplifiedLatch) {
  468       Loop *PredLoop = LI->getLoopFor(ExitPred);
  523                                   BasicBlock::iterator End, Loop *L) {
  595 bool LoopRotate::simplifyLoopLatch(Loop *L) {
  629 bool LoopRotate::processLoop(Loop *L) {
  655 bool llvm::LoopRotation(Loop *L, LoopInfo *LI, const TargetTransformInfo *TTI,
lib/Transforms/Utils/LoopSimplify.cpp
   87                                      Loop *L) {
  122 BasicBlock *llvm::InsertPreheaderForLoop(Loop *L, DominatorTree *DT,
  182 static PHINode *findPHIToPartitionLoops(Loop *L, DominatorTree *DT,
  224 static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader,
  224 static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader,
  268   Loop *NewOuter = LI->AllocateLoop();
  271   if (Loop *Parent = L->getParentLoop())
  279   for (Loop::block_iterator I = L->block_begin(), E = L->block_end();
  298   const std::vector<Loop*> &SubLoops = L->getSubLoops();
  348 static BasicBlock *insertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader,
  471 static bool simplifyOneLoop(Loop *L, SmallVectorImpl<Loop *> &Worklist,
  471 static bool simplifyOneLoop(Loop *L, SmallVectorImpl<Loop *> &Worklist,
  485   for (Loop::block_iterator BB = L->block_begin(), E = L->block_end();
  561       if (Loop *OuterL = separateNestedLoop(L, Preheader, DT, LI, SE,
  709 bool llvm::simplifyLoop(Loop *L, DominatorTree *DT, LoopInfo *LI,
  726   SmallVector<Loop *, 4> Worklist;
  733     Loop *L2 = Worklist[Idx];
lib/Transforms/Utils/LoopUnroll.cpp
  107 static bool needToInsertPhisForLCSSA(Loop *L, std::vector<BasicBlock *> Blocks,
  115           Loop *DefLoop = LI->getLoopFor(Def->getParent());
  131 const Loop* llvm::addClonedBlockToLoopInfo(BasicBlock *OriginalBB,
  135   const Loop *OldLoop = LI->getLoopFor(OriginalBB);
  138   Loop *&NewLoop = NewLoops[OldLoop];
  145     Loop *NewLoopParent = NewLoops.lookup(OldLoop->getParentLoop());
  185 static bool isEpilogProfitable(Loop *L) {
  199 void llvm::simplifyLoopAfterUnroll(Loop *L, bool SimplifyIVs, LoopInfo *LI,
  276 LoopUnrollResult llvm::UnrollLoop(Loop *L, UnrollLoopOptions ULO, LoopInfo *LI,
  280                                   bool PreserveLCSSA, Loop **RemainderLoop) {
  583   SmallSetVector<Loop *, 4> LoopsToSimplify;
  584   for (Loop *SubLoop : *L)
  603     SmallDenseMap<const Loop *, Loop *, 4> NewLoops;
  603     SmallDenseMap<const Loop *, Loop *, 4> NewLoops;
  614       const Loop *OldLoop = addClonedBlockToLoopInfo(*BB, New, LI, NewLoops);
  904   Loop *OuterL = L->getParentLoop();
  933         Loop *LatchLoop = LI->getLoopFor(Latches.back());
  934         Loop *FixLCSSALoop = OuterL;
  950       for (Loop *SubLoop : LoopsToSimplify)
lib/Transforms/Utils/LoopUnrollAndJam.cpp
   51 static bool partitionOuterLoopBlocks(Loop *L, Loop *SubLoop,
   51 static bool partitionOuterLoopBlocks(Loop *L, Loop *SubLoop,
  174     Loop *L, unsigned Count, unsigned TripCount, unsigned TripMultiple,
  176     AssumptionCache *AC, OptimizationRemarkEmitter *ORE, Loop **EpilogueLoop) {
  181   Loop *SubLoop = *L->begin();
  572   Loop *OuterL = L->getParentLoop();
  573   Loop *OutestLoop = OuterL ? OuterL : (!CompletelyUnroll ? L : SubLoop);
  664 static bool checkDependencies(Loop *L, BasicBlockSet &ForeBlocks,
  687 bool llvm::isSafeToUnrollAndJam(Loop *L, ScalarEvolution &SE, DominatorTree &DT,
  728   Loop *SubLoop = L->getSubLoops()[0];
lib/Transforms/Utils/LoopUnrollPeel.cpp
   77 bool llvm::canPeel(Loop *L) {
  126     PHINode *Phi, Loop *L, BasicBlock *BackEdge,
  172 static unsigned countToEliminateCompares(Loop &L, unsigned MaxPeelCount,
  259 void llvm::computePeelCount(Loop *L, unsigned LoopSize,
  469     Loop *L, unsigned IterNumber, BasicBlock *InsertTop, BasicBlock *InsertBot,
  481   Loop *ParentLoop = L->getParentLoop();
  578 bool llvm::peelLoop(Loop *L, unsigned PeelCount, LoopInfo *LI,
  750   if (Loop *ParentLoop = L->getParentLoop())
lib/Transforms/Utils/LoopUnrollRuntime.cpp
   66 static void ConnectProlog(Loop *L, Value *BECount, unsigned Count,
  136   Loop *PrologLoop = LI->getLoopFor(PrologLatch);
  182 static void ConnectEpilog(Loop *L, Value *ModVal, BasicBlock *NewExit,
  298 static Loop *
  299 CloneLoopBlocks(Loop *L, Value *NewIter, const bool CreateRemainderLoop,
  311   Loop *ParentLoop = L->getParentLoop();
  398     Loop *NewLoop = NewLoops[L];
  427 static bool canSafelyUnrollMultiExitLoop(Loop *L, BasicBlock *LatchExit,
  462     Loop *L, SmallVectorImpl<BasicBlock *> &OtherExits, BasicBlock *LatchExit,
  545 bool llvm::UnrollRuntimeLoopRemainder(Loop *L, unsigned Count,
  551                                       bool PreserveLCSSA, Loop **ResultLoop) {
  786   Loop *remainderLoop = CloneLoopBlocks(
lib/Transforms/Utils/LoopUtils.cpp
   51 bool llvm::formDedicatedExitBlocks(Loop *L, DominatorTree *DT, LoopInfo *LI,
  200 static MDNode *createStringMetadata(Loop *TheLoop, StringRef Name, unsigned V) {
  211 void llvm::addStringMetadataToLoop(Loop *TheLoop, const char *StringMD,
  251 Optional<const MDOperand *> llvm::findStringMetadataForLoop(const Loop *TheLoop,
  266 static Optional<bool> getOptionalBoolLoopAttribute(const Loop *TheLoop,
  284 static bool getBooleanLoopAttribute(const Loop *TheLoop, StringRef Name) {
  288 llvm::Optional<int> llvm::getOptionalIntLoopAttribute(Loop *TheLoop,
  383 bool llvm::hasDisableAllTransformsHint(const Loop *L) {
  387 bool llvm::hasDisableLICMTransformsHint(const Loop *L) {
  391 TransformationMode llvm::hasUnrollTransformation(Loop *L) {
  412 TransformationMode llvm::hasUnrollAndJamTransformation(Loop *L) {
  430 TransformationMode llvm::hasVectorizeTransformation(Loop *L) {
  465 TransformationMode llvm::hasDistributeTransformation(Loop *L) {
  475 TransformationMode llvm::hasLICMVersioningTransformation(Loop *L) {
  506 void llvm::deleteDeadLoop(Loop *L, DominatorTree *DT = nullptr,
  662     for (Loop::block_iterator LpI = L->block_begin(), LpE = L->block_end();
  679 Optional<unsigned> llvm::getLoopEstimatedTripCount(Loop *L) {
  720 bool llvm::hasIterationCountInvariantInParent(Loop *InnerLoop,
  722   Loop *OuterL = InnerLoop->getParentLoop();
  998 bool llvm::isKnownNegativeInLoop(const SCEV *S, const Loop *L,
 1005 bool llvm::isKnownNonNegativeInLoop(const SCEV *S, const Loop *L,
 1012 bool llvm::cannotBeMinInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE,
 1023 bool llvm::cannotBeMaxInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE,
lib/Transforms/Utils/LoopVersioning.cpp
   32 LoopVersioning::LoopVersioning(const LoopAccessInfo &LAI, Loop *L, LoopInfo *LI,
  271     SmallVector<Loop *, 8> Worklist;
  273     for (Loop *TopLevelLoop : *LI)
  274       for (Loop *L : depth_first(TopLevelLoop))
  281     for (Loop *L : Worklist) {
lib/Transforms/Utils/SimplifyIndVar.cpp
   53     Loop             *L;
   63     SimplifyIndvar(Loop *Loop, ScalarEvolution *SE, DominatorTree *DT,
  188   const Loop *ICmpLoop = LI->getLoopFor(ICmp->getParent());
  258   const Loop *ICmpLoop = LI->getLoopFor(ICmp->getParent());
  298   const Loop *L = LI->getLoopFor(SDiv->getParent());
  370   const Loop *ICmpLoop = LI->getLoopFor(Rem->getParent());
  651 static Instruction *GetLoopInvariantInsertPosition(Loop *L, Instruction *Hint) {
  792   Instruction *Def, Loop *L,
  825 static bool isSimpleIVUser(Instruction *I, const Loop *L, ScalarEvolution *SE) {
  944 bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, DominatorTree *DT,
lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
   68 LoopVectorizeHints::LoopVectorizeHints(const Loop *L,
  113     Function *F, Loop *L, bool VectorizeOnlyWhenForced) const {
  240     Function *F, Loop *L, const LoopVectorizeHints &Hints) {
  298 static bool isUniformLoop(Loop *Lp, Loop *OuterLp) {
  298 static bool isUniformLoop(Loop *Lp, Loop *OuterLp) {
  343 static bool isUniformLoopNest(Loop *Lp, Loop *OuterLp) {
  343 static bool isUniformLoopNest(Loop *Lp, Loop *OuterLp) {
  348   for (Loop *SubLp : *Lp)
  391 static bool hasOutsideLoopUser(const Loop *TheLoop, Instruction *Inst,
 1000 bool LoopVectorizationLegality::canVectorizeLoopCFG(Loop *Lp,
 1066     Loop *Lp, bool UseVPlanNativePath) {
 1080   for (Loop *SubLp : *Lp)
lib/Transforms/Vectorize/LoopVectorizationPlanner.h
  187   Loop *OrigLoop;
  223   LoopVectorizationPlanner(Loop *L, LoopInfo *LI, const TargetLibraryInfo *TLI,
lib/Transforms/Vectorize/LoopVectorize.cpp
  365 static Optional<unsigned> getSmallBestKnownTC(ScalarEvolution &SE, Loop *L) {
  400   InnerLoopVectorizer(Loop *OrigLoop, PredicatedScalarEvolution &PSE,
  515   PHINode *createInductionVariable(Loop *L, Value *Start, Value *End,
  612   Value *getOrCreateTripCount(Loop *NewLoop);
  615   Value *getOrCreateVectorTripCount(Loop *NewLoop);
  624   void emitMinimumIterationCountCheck(Loop *L, BasicBlock *Bypass);
  628   void emitSCEVChecks(Loop *L, BasicBlock *Bypass);
  631   void emitMemRuntimeChecks(Loop *L, BasicBlock *Bypass);
  662   Loop *OrigLoop;
  772   InnerLoopUnroller(Loop *OrigLoop, PredicatedScalarEvolution &PSE,
  853     StringRef RemarkName, Loop *TheLoop, Instruction *I) {
  874     OptimizationRemarkEmitter *ORE, Loop *TheLoop, Instruction *I) {
  885 static std::string getDebugLocString(const Loop *L) {
  953   LoopVectorizationCostModel(ScalarEpilogueLowering SEL, Loop *L,
 1468   Loop *TheLoop;
 1526 static bool isExplicitVecOuterLoop(Loop *OuterLp,
 1554 static void collectSupportedLoops(Loop &L, LoopInfo *LI,
 1556                                   SmallVectorImpl<Loop *> &V) {
 1575   for (Loop *InnerL : L)
 1614     std::function<const LoopAccessInfo &(Loop &)> GetLAA =
 2522 PHINode *InnerLoopVectorizer::createInductionVariable(Loop *L, Value *Start,
 2554 Value *InnerLoopVectorizer::getOrCreateTripCount(Loop *L) {
 2601 Value *InnerLoopVectorizer::getOrCreateVectorTripCount(Loop *L) {
 2677 void InnerLoopVectorizer::emitMinimumIterationCountCheck(Loop *L,
 2710 void InnerLoopVectorizer::emitSCEVChecks(Loop *L, BasicBlock *Bypass) {
 2743 void InnerLoopVectorizer::emitMemRuntimeChecks(Loop *L, BasicBlock *Bypass) {
 2946   Loop *Lp = LI->AllocateLoop();
 2947   Loop *ParentLoop = OrigLoop->getParentLoop();
 3867   auto *VectorLoop = LI->getLoopFor(PredBB);
 5702               const Loop *TheLoop) {
 6580 static void AddRuntimeUnrollDisableMetaData(Loop *L) {
 7442 getScalarEpilogueLowering(Function *F, Loop *L, LoopVectorizeHints &Hints,
 7460     Loop *L, PredicatedScalarEvolution &PSE, LoopInfo *LI, DominatorTree *DT,
 7506 bool LoopVectorizePass::processLoop(Loop *L) {
 7805     std::function<const LoopAccessInfo &(Loop &)> &GetLAA_,
 7845   SmallVector<Loop *, 8> Worklist;
 7847   for (Loop *L : *LI)
 7854     Loop *L = Worklist.pop_back_val();
 7884     std::function<const LoopAccessInfo &(Loop &)> GetLAA =
lib/Transforms/Vectorize/SLPVectorizer.cpp
 4400     Loop *L = LI->getLoopFor(I->getParent());
 6701   Loop *BBL = LI->getLoopFor(ParentBB);
lib/Transforms/Vectorize/VPRecipeBuilder.h
   27   Loop *OrigLoop;
  103   VPRecipeBuilder(Loop *OrigLoop, const TargetLibraryInfo *TLI,
lib/Transforms/Vectorize/VPlan.cpp
  187     Loop *L = State->LI->getLoopFor(State->CFG.LastBB);
  394   Loop *L = State->LI->getLoopFor(VectorHeaderBB);
lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp
   37   Loop *TheLoop;
   73   PlainCFGBuilder(Loop *Lp, LoopInfo *LI, VPlan &P)
lib/Transforms/Vectorize/VPlanHCFGBuilder.h
   42   Loop *TheLoop;
   63   VPlanHCFGBuilder(Loop *Lp, LoopInfo *LI, VPlan &P)
tools/opt/PassPrinters.cpp
  146   bool runOnLoop(Loop *L, LPPassManager &LPM) override {
tools/polly/include/polly/CodeGen/BlockGenerators.h
  448                                LoopToScevMapT &LTS, Loop *L) const;
  475                      LoopToScevMapT &LTS, Loop *L) const;
  481   Loop *getLoopForStmt(const ScopStmt &Stmt) const;
  506   Value *generateLocationAccessed(ScopStmt &Stmt, Loop *L, Value *Pointer,
  529   Value *getImplicitAddress(MemoryAccess &Access, Loop *L, LoopToScevMapT &LTS,
  663                         VectorValueMapT &ScalarMaps, Loop *L);
  927                         Loop *L);
tools/polly/include/polly/CodeGen/IRBuilder.h
   51   void pushLoop(llvm::Loop *L, bool IsParallel);
   60   void annotateLoopLatch(llvm::BranchInst *B, llvm::Loop *L, bool IsParallel,
  101   llvm::SmallVector<llvm::Loop *, 8> ActiveLoops;
tools/polly/include/polly/CodeGen/IslNodeBuilder.h
  163   MapVector<const Loop *, const SCEV *> OutsideLoopIterations;
  255                               SetVector<const Loop *> &Loops);
  429   Value *materializeNonScopLoopInductionVariable(const Loop *L);
tools/polly/include/polly/PolyhedralInfo.h
   47   bool isParallel(llvm::Loop *L) const;
   55   const Scop *getScopContainingLoop(llvm::Loop *L) const;
   64                                                llvm::Loop *L) const;
   88   bool checkParallel(llvm::Loop *L,
tools/polly/include/polly/ScopBuilder.h
  131   isl::set adjustDomainDimensions(isl::set Dom, Loop *OldL, Loop *NewL);
  131   isl::set adjustDomainDimensions(isl::set Dom, Loop *OldL, Loop *NewL);
  159   bool buildConditionSets(BasicBlock *BB, Instruction *TI, Loop *L,
  173                           Loop *L, __isl_keep isl_set *Domain,
  182   bool buildConditionSets(BasicBlock *BB, SwitchInst *SI, Loop *L,
  236       BasicBlock *BB, Loop *BBLoop,
  275       Loop *L, DenseMap<BasicBlock *, isl::set> &InvalidDomainMap);
  496   bool shouldModelInst(Instruction *Inst, Loop *L);
  764     Loop *L;
  773     LoopStackElement(Loop *L, isl::schedule S, unsigned NumBlocksProcessed)
tools/polly/include/polly/ScopDetection.h
  138     SetVector<std::pair<const SCEVUnknown *, Loop *>> NonAffineAccesses;
  218   bool involvesMultiplePtrs(const SCEV *S0, const SCEV *S1, Loop *Scope) const;
  248                           const SCEVUnknown *BasePointer, Loop *Scope) const;
  272                              const SCEVUnknown *BasePointer, Loop *Scope) const;
  443   bool isAffine(const SCEV *S, Loop *Scope, DetectionContext &Context) const;
  468   bool isValidLoop(Loop *L, DetectionContext &Context) const;
  479   countBeneficialSubLoops(Loop *L, ScalarEvolution &SE,
  493   bool canUseISLTripCount(Loop *L, DetectionContext &Context) const;
tools/polly/include/polly/ScopDetectionDiagnostic.h
  524   Loop *L;
  533   ReportLoopBound(Loop *L, const SCEV *LoopCount);
  556   Loop *L;
  561   ReportLoopHasNoExit(Loop *L)
  584   Loop *L;
  589   ReportLoopHasMultipleExits(Loop *L)
  612   Loop *L;
  617   ReportLoopOnlySomeLatches(Loop *L)
tools/polly/include/polly/ScopInfo.h
  203 using LoopBoundMapType = std::map<const Loop *, const SCEV *>;
 1158   ScopStmt(Scop &parent, BasicBlock &bb, StringRef Name, Loop *SurroundingLoop,
 1169   ScopStmt(Scop &parent, Region &R, StringRef Name, Loop *SurroundingLoop,
 1271   SmallVector<Loop *, 4> NestLoops;
 1276   Loop *SurroundingLoop;
 1355   bool contains(const Loop *L) const {
 1395   Loop *getSurroundingLoop() const {
 1590   Loop *getLoopForDimension(unsigned Dimension) const;
 1654                         Instruction *TI, Loop *L, __isl_keep isl_set *Domain,
 1678 bool buildConditionSets(Scop &S, BasicBlock *BB, Instruction *TI, Loop *L,
 1983   void addScopStmt(BasicBlock *BB, StringRef Name, Loop *SurroundingLoop,
 1997   void addScopStmt(Region *R, StringRef Name, Loop *SurroundingLoop,
 2196   bool contains(const Loop *L) const { return R.contains(L); }
 2601   bool hasNSWAddRecForLoop(Loop *L) { return Affinator.hasNSWAddRecForLoop(L); }
 2679   int getRelativeLoopDepth(const Loop *L) const;
tools/polly/include/polly/Support/SCEVAffinator.h
   48   bool hasNSWAddRecForLoop(llvm::Loop *L) const;
   71   llvm::Loop *getScope();
tools/polly/include/polly/Support/SCEVValidator.h
   45                llvm::SetVector<const llvm::Loop *> &Loops);
   65                                llvm::Loop *Scope, bool AllowLoops,
   67 bool isAffineExpr(const llvm::Region *R, llvm::Loop *Scope,
   73                         llvm::Loop *Scope, llvm::ScalarEvolution &SE,
   76 ParameterSetTy getParamsInAffineExpr(const llvm::Region *R, llvm::Loop *Scope,
tools/polly/include/polly/Support/ScopHelper.h
   48 using BoxedLoopsSetTy = llvm::SetVector<const llvm::Loop *>;
  384 llvm::Loop *getLoopSurroundingScop(Scop &S, llvm::LoopInfo &LI);
  396 unsigned getNumBlocksInLoop(llvm::Loop *L);
  402 llvm::Loop *getRegionNodeLoop(llvm::RegionNode *RN, llvm::LoopInfo &LI);
  436                    llvm::ScalarEvolution *SE, llvm::Loop *Scope);
  469 llvm::Loop *getFirstNonBoxedLoopFor(llvm::Loop *L, llvm::LoopInfo &LI,
  469 llvm::Loop *getFirstNonBoxedLoopFor(llvm::Loop *L, llvm::LoopInfo &LI,
  479 llvm::Loop *getFirstNonBoxedLoopFor(llvm::BasicBlock *BB, llvm::LoopInfo &LI,
tools/polly/include/polly/Support/VirtualInstruction.h
  120   static VirtualUse create(Scop *S, ScopStmt *UserStmt, Loop *UserScope,
  123   static VirtualUse create(ScopStmt *UserStmt, Loop *UserScope, Value *Val,
tools/polly/include/polly/ZoneAlgo.h
  334   isl::map makeValInst(llvm::Value *Val, ScopStmt *UserStmt, llvm::Loop *Scope,
  343                                        llvm::Loop *Scope,
tools/polly/lib/Analysis/PolyhedralInfo.cpp
   61   for (auto *TopLevelLoop : LI) {
   62     for (auto *L : depth_first(TopLevelLoop)) {
   72 bool PolyhedralInfo::checkParallel(Loop *L, isl_pw_aff **MinDepDistPtr) const {
   98 bool PolyhedralInfo::isParallel(Loop *L) const { return checkParallel(L); }
  100 const Scop *PolyhedralInfo::getScopContainingLoop(Loop *L) const {
  124                                                              Loop *L) const {
tools/polly/lib/Analysis/ScopBuilder.cpp
  292 isl::set ScopBuilder::adjustDomainDimensions(isl::set Dom, Loop *OldL,
  293                                              Loop *NewL) {
  391     BasicBlock *BB, SwitchInst *SI, Loop *L, __isl_keep isl_set *Domain,
  428     BasicBlock *BB, Value *Condition, Instruction *TI, Loop *L,
  562     BasicBlock *BB, Instruction *TI, Loop *L, __isl_keep isl_set *Domain,
  616     Loop *BBLoop = getRegionNodeLoop(RN, LI);
  626     BasicBlock *BB, Loop *BBLoop,
  639   auto *L = BBLoop;
  652   Loop *ExitBBLoop = getFirstNonBoxedLoopFor(ExitBB, LI, scop->getBoxedLoops());
  678   Loop *BBLoop = getFirstNonBoxedLoopFor(BB, LI, scop->getBoxedLoops());
  714     Loop *PredBBLoop =
  724     Loop *L, DenseMap<BasicBlock *, isl::set> &InvalidDomainMap) {
  829   auto *L = IsOnlyNonAffineRegion ? nullptr : LI.getLoopFor(EntryBB);
  908     auto *BBLoop = getRegionNodeLoop(RN, LI);
  958       Loop *SuccBBLoop =
 1033     auto *BBLoop = getRegionNodeLoop(RN, LI);
 1047       Loop *SuccBBLoop =
 1086   auto *Scope = LI.getLoopFor(PHI->getParent());
 1173   Loop *L = getLoopSurroundingScop(*scop, LI);
 1205   Loop *OuterScopLoop = getLoopSurroundingScop(*scop, LI);
 1231     Loop *L = getRegionNodeLoop(RN, LI);
 1235     Loop *LastLoop = LoopStack.back().L;
 1535     auto *L = LI.getLoopFor(CI->getParent());
 1647   Loop *SurroundingLoop = Stmt->getSurroundingLoop();
 1730   auto *L = LI.getLoopFor(Inst->getParent());
 1738   Loop *SurroundingLoop = Stmt->getSurroundingLoop();
 1822     Loop *L = LI.getLoopFor(Inst->getParent());
 1859   SetVector<const Loop *> Loops;
 1861   for (const Loop *L : Loops)
 1869   Loop *SurroundingLoop = Stmt->getSurroundingLoop();
 1924 bool ScopBuilder::shouldModelInst(Instruction *Inst, Loop *L) {
 1963   Loop *SurroundingLoop = LI.getLoopFor(BB);
 2094   Loop *L = LI.getLoopFor(BB);
 2180     Loop *SurroundingLoop =
 2546   auto *Scope = UserStmt->getSurroundingLoop();
 2635   Loop *L = LI.getLoopFor(BB);
 2640   SmallVector<llvm::Loop *, 8> Loops;
tools/polly/lib/Analysis/ScopDetection.cpp
  442     Loop *L = LI.getLoopFor(BB);
  487                                          Loop *Scope) const {
  520 bool ScopDetection::isAffine(const SCEV *S, Loop *Scope,
  535   Loop *L = LI.getLoopFor(&BB);
  601   Loop *L = LI.getLoopFor(&BB);
  746   Loop *L = LI.getLoopFor(II.getParent());
  904                                        Loop *Scope) const {
  979     auto *Scope = LI.getLoopFor(Insn->getParent());
 1020                                           Loop *Scope) const {
 1043     auto *Scope = Pair.second;
 1096   SetVector<const Loop *> Loops;
 1098   for (const Loop *L : Loops)
 1102   auto *Scope = LI.getLoopFor(Inst->getParent());
 1183   Loop *L = LI.getLoopFor(Inst->getParent());
 1252 static bool hasExitingBlocks(Loop *L) {
 1258 bool ScopDetection::canUseISLTripCount(Loop *L,
 1274 bool ScopDetection::isValidLoop(Loop *L, DetectionContext &Context) const {
 1338 ScopDetection::countBeneficialSubLoops(Loop *L, ScalarEvolution &SE,
 1526     Loop *L = LI.getLoopFor(BB);
 1584     auto *L = LI.getLoopFor(BB);
tools/polly/lib/Analysis/ScopDetectionDiagnostic.cpp
  448 ReportLoopBound::ReportLoopBound(Loop *L, const SCEV *LoopCount)
tools/polly/lib/Analysis/ScopInfo.cpp
 1189                    Loop *SurroundingLoop,
 1196                    Loop *SurroundingLoop,
 1246 Loop *ScopStmt::getLoopForDimension(unsigned Dimension) const {
 2369 void Scop::addScopStmt(BasicBlock *BB, StringRef Name, Loop *SurroundingLoop,
 2382 void Scop::addScopStmt(Region *R, StringRef Name, Loop *SurroundingLoop,
 2462 int Scop::getRelativeLoopDepth(const Loop *L) const {
 2470     Loop *OuterLoop = R.outermostLoopInRegion(const_cast<Loop *>(L));
tools/polly/lib/CodeGen/BlockGenerators.cpp
   67                                              Loop *L) const {
   98                                    LoopToScevMapT &LTS, Loop *L) const {
  267     ScopStmt &Stmt, Loop *L, Value *Pointer, ValueMapT &BBMap,
  295 BlockGenerator::getImplicitAddress(MemoryAccess &Access, Loop *L,
  306 Loop *BlockGenerator::getLoopForStmt(const ScopStmt &Stmt) const {
  351   Loop *L = getLoopForStmt(Stmt);
  758   Loop *L = LI.getLoopFor(Stmt.getBasicBlock());
  994       if (Loop *L = LI.getLoopFor(EUser->getParent()))
 1021                                             Loop *L) {
 1176   Loop *L = getLoopForStmt(Stmt);
 1581     Loop *L = LI.getLoopFor(BB);
 1622                                        ValueMapT &BBMap, Loop *L) {
 1667   Loop *L = LI.getLoopFor(Stmt->getRegion()->getExit());
tools/polly/lib/CodeGen/IRBuilder.cpp
   98 void ScopAnnotator::pushLoop(Loop *L, bool IsParallel) {
  123 void ScopAnnotator::annotateLoopLatch(BranchInst *B, Loop *L, bool IsParallel,
tools/polly/lib/CodeGen/IslNodeBuilder.cpp
  217       auto *Scope = References.LI.getLoopFor(BB);
  310                                             SetVector<const Loop *> &Loops) {
  666   SetVector<const Loop *> Loops;
  674   for (const Loop *L : Loops) {
  725   for (const Loop *L : Loops)
  801   Loop *L = LI.getLoopFor(CondBB);
  959 Value *IslNodeBuilder::materializeNonScopLoopInductionVariable(const Loop *L) {
 1287   if (Loop *L = LI.getLoopFor(CondBB))
 1540   Loop *L = LI.getLoopFor(S.getEntry());
tools/polly/lib/CodeGen/LoopGenerators.cpp
  103   Loop *OuterLoop = LI.getLoopFor(BeforeBB);
  104   Loop *NewLoop = LI.AllocateLoop();
tools/polly/lib/CodeGen/Utils.cpp
  151   if (Loop *L = LI.getLoopFor(SplitBlock)) {
tools/polly/lib/Exchange/JSONExporter.cpp
  811   PA.preserveSet<AllAnalysesOn<Loop>>();
tools/polly/lib/Support/SCEVAffinator.cpp
   87 Loop *SCEVAffinator::getScope() { return BB ? LI.getLoopFor(BB) : nullptr; }
  167 bool SCEVAffinator::hasNSWAddRecForLoop(Loop *L) const {
  201   auto *Scope = getScope();
  499   auto *Scope = getScope();
  516   auto *Scope = getScope();
tools/polly/lib/Support/SCEVValidator.cpp
  136   Loop *Scope;
  141   SCEVValidator(const Region *R, Loop *Scope, ScalarEvolution &SE,
  497   Loop *Scope;
  503   SCEVInRegionDependences(const Region *R, Loop *Scope, bool AllowLoops,
  558   SetVector<const Loop *> &Loops;
  561   SCEVFindLoops(SetVector<const Loop *> &Loops) : Loops(Loops) {}
  571 void findLoops(const SCEV *Expr, SetVector<const Loop *> &Loops) {
  627                                llvm::Loop *Scope, bool AllowLoops,
  635 bool isAffineExpr(const Region *R, llvm::Loop *Scope, const SCEV *Expr,
  659 static bool isAffineExpr(Value *V, const Region *R, Loop *Scope,
  676 bool isAffineConstraint(Value *V, const Region *R, llvm::Loop *Scope,
  699 ParameterSetTy getParamsInAffineExpr(const Region *R, Loop *Scope,
tools/polly/lib/Support/ScopHelper.cpp
  464 Loop *polly::getLoopSurroundingScop(Scop &S, LoopInfo &LI) {
  470   Loop *L = LI.getLoopFor(S.getEntry());
  483 unsigned polly::getNumBlocksInLoop(Loop *L) {
  503 Loop *polly::getRegionNodeLoop(RegionNode *RN, LoopInfo &LI) {
  506     Loop *L = LI.getLoopFor(BB);
  532   Loop *L = LI.getLoopFor(NonAffineSubRegion->getEntry());
  538 static bool hasVariantIndex(GetElementPtrInst *Gep, Loop *L, Region &R,
  542     Loop *OuterLoop = R.outermostLoopInRegion(L);
  552   Loop *L = LI.getLoopFor(LInst->getParent());
  637                           Loop *Scope) {
  710 llvm::Loop *polly::getFirstNonBoxedLoopFor(llvm::Loop *L, llvm::LoopInfo &LI,
  710 llvm::Loop *polly::getFirstNonBoxedLoopFor(llvm::Loop *L, llvm::LoopInfo &LI,
  717 llvm::Loop *polly::getFirstNonBoxedLoopFor(llvm::BasicBlock *BB,
  720   Loop *L = LI.getLoopFor(BB);
tools/polly/lib/Support/VirtualInstruction.cpp
   22   Loop *UserScope = LI->getLoopFor(UserBB);
   52 VirtualUse VirtualUse::create(Scop *S, ScopStmt *UserStmt, Loop *UserScope,
  349           Loop *Scope = Stmt->getSurroundingLoop();
tools/polly/lib/Transform/DeLICM.cpp
  788   isl::map makeValInst(Value *Val, ScopStmt *UserStmt, Loop *Scope,
tools/polly/lib/Transform/ForwardOpTree.cpp
  392                                       ScopStmt *UseStmt, Loop *UseLoop,
  393                                       ScopStmt *DefStmt, Loop *DefLoop,
  544                                         ScopStmt *UseStmt, Loop *UseLoop,
  545                                         ScopStmt *DefStmt, Loop *DefLoop,
  615                                          ScopStmt *DefStmt, Loop *DefLoop,
  691                                  ScopStmt *UseStmt, Loop *UseLoop, bool DoIt) {
  693     Loop *DefLoop = nullptr;
  801     Loop *InLoop = Stmt->getSurroundingLoop();
tools/polly/lib/Transform/ZoneAlgo.cpp
  315 static bool isInsideLoop(Loop *OuterLoop, Loop *InnerLoop) {
  315 static bool isInsideLoop(Loop *OuterLoop, Loop *InnerLoop) {
  747 isl::map ZoneAlgorithm::makeValInst(Value *Val, ScopStmt *UserStmt, Loop *Scope,
  874                                                     llvm::Loop *Scope,
unittests/Analysis/IVDescriptorsTest.cpp
   80         Loop *L = LI.getLoopFor(Header);
unittests/Analysis/LoopInfoTest.cpp
   84     Loop *L = LI.getLoopFor(Header);
  134     Loop *L = LI.getLoopFor(Header);
  193   Loop &L_0 = *LI.getLoopFor(&*I++);
  195   Loop &L_0_0 = *LI.getLoopFor(&*I++);
  197   Loop &L_0_1 = *LI.getLoopFor(&*I++);
  199   Loop &L_0_2 = *LI.getLoopFor(&*I++);
  201   Loop &L_1 = *LI.getLoopFor(&*I++);
  203   Loop &L_1_0 = *LI.getLoopFor(&*I++);
  205   Loop &L_1_1 = *LI.getLoopFor(&*I++);
  207   Loop &L_1_2 = *LI.getLoopFor(&*I++);
  269         Loop *L = LI.getLoopFor(Header);
  272         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  327         Loop *L = LI.getLoopFor(Header);
  330         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  385         Loop *L = LI.getLoopFor(Header);
  388         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  443         Loop *L = LI.getLoopFor(Header);
  446         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  501         Loop *L = LI.getLoopFor(Header);
  504         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  560         Loop *L = LI.getLoopFor(Header);
  563         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  618         Loop *L = LI.getLoopFor(Header);
  621         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  673         Loop *L = LI.getLoopFor(Header);
  676         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  731         Loop *L = LI.getLoopFor(Header);
  734         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  790         Loop *L = LI.getLoopFor(Header);
  793         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  849         Loop *L = LI.getLoopFor(Header);
  852         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  909         Loop *L = LI.getLoopFor(Header);
  912         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
  969         Loop *L = LI.getLoopFor(Header);
  972         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
 1021         Loop *L = LI.getLoopFor(Header);
 1024         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
 1078         Loop *L = LI.getLoopFor(Header);
 1081         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
 1148         Loop *L = LI.getLoopFor(Header);
 1151         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
 1176         Optional<Loop::LoopBounds> InnerBounds = L->getBounds(SE);
 1239         Loop *L = LI.getLoopFor(Header);
 1242         Optional<Loop::LoopBounds> Bounds = L->getBounds(SE);
 1303     Loop *L = LI.getLoopFor(Header);
 1349         Loop *L = LI.getLoopFor(Header);
 1393     Loop *L = LI.getLoopFor(Header);
 1436     Loop *L = LI.getLoopFor(Header);
unittests/Analysis/ScalarEvolutionTest.cpp
  553     auto *L2 = *LI.begin();
  554     auto *L1 = *std::next(LI.begin());
  555     auto *L0 = *std::next(LI.begin(), 2);
  860   auto *Loop = LI->getLoopFor(L);
  960   auto *Loop = LI->getLoopFor(L);
 1479       auto *Loop = LI.getLoopFor(I.getParent());
 1524       auto *Loop = LI.getLoopFor(LoopHeaderBB);
 1605       auto *Loop = LI.getLoopFor(LoopHeaderBB);
 1778       auto *Loop = LI.getLoopFor(I.getParent());
 1821       auto *Loop = LI.getLoopFor(LoopHeaderBB);
 1875       auto *Loop = LI.getLoopFor(LoopHeaderBB);
unittests/Analysis/UnrollAnalyzerTest.cpp
   33     Loop *L = LI->getLoopFor(Header);
unittests/IR/LegacyPassManagerTest.cpp
  204       bool doInitialization(Loop* L, LPPassManager &LPM) override {
  209       bool runOnLoop(Loop *L, LPPassManager &LPM) override {
unittests/IR/PassBuilderCallbacksTest.cpp
   71       bool invalidate(IRUnitT &IR, const PreservedAnalyses &PA,
   77     Result run(IRUnitT &IR, AnalysisManagerT &AM, ExtraArgTs... ExtraArgs) {
   91   static bool invalidateCallback(IRUnitT &IR, const PreservedAnalyses &PA,
   95            !PAC.template preservedSet<AllAnalysesOn<IRUnitT>>();
  137     PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM,
  164     : MockPassHandleBase<MockPassHandle<Loop>, Loop, LoopAnalysisManager,
  164     : MockPassHandleBase<MockPassHandle<Loop>, Loop, LoopAnalysisManager,
  169   static void invalidateLoop(Loop &L, LoopAnalysisManager &,
  216     : MockAnalysisHandleBase<MockAnalysisHandle<Loop>, Loop,
  216     : MockAnalysisHandleBase<MockAnalysisHandle<Loop>, Loop,
  272 template <typename IRUnitT> std::string getName(const IRUnitT &IR) {
  283   if (any_isa<const Loop *>(WrappedIR))
  284     return any_cast<const Loop *>(WrappedIR)->getName().str();
  374   using IRUnitT = TestIRUnitT;
  375   using AnalysisManagerT = AnalysisManager<TestIRUnitT, ExtraAnalysisArgTs...>;
  377       PassManager<TestIRUnitT, AnalysisManagerT, ExtraPassArgTs...>;
unittests/Transforms/Scalar/LoopPassManagerTest.cpp
   64       bool invalidate(IRUnitT &IR, const PreservedAnalyses &PA,
   70     Result run(IRUnitT &IR, AnalysisManagerT &AM, ExtraArgTs... ExtraArgs) {
   83   static bool invalidateCallback(IRUnitT &IR, const PreservedAnalyses &PA,
   87            !PAC.template preservedSet<AllAnalysesOn<IRUnitT>>();
  122     : MockAnalysisHandleBase<MockLoopAnalysisHandleTemplate<I>, Loop,
  164     PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM,
  184     : MockPassHandleBase<MockLoopPassHandle, Loop, LoopAnalysisManager,
  245   getLoopAnalysisResult(Loop &L, LoopAnalysisManager &AM,
  531     PA.preserveSet<AllAnalysesOn<Loop>>();
  690         return !(PAC.preserved() || PAC.preservedSet<AllAnalysesOn<Loop>>()) ||
  811     PA.preserveSet<AllAnalysesOn<Loop>>();
  834     PA.preserveSet<AllAnalysesOn<Loop>>();
  952         auto *NewLoop = AR.LI.AllocateLoop();
  998         auto *NewLoop = AR.LI.AllocateLoop();
 1146         auto *NewLoop = AR.LI.AllocateLoop();
 1188         Loop *NewLoops[] = {AR.LI.AllocateLoop(), AR.LI.AllocateLoop(),
 1268         auto *NewLoop = AR.LI.AllocateLoop();
 1444             Loop *ParentL = L.getParentLoop();
 1494             auto *ParentL = L.getParentLoop();
 1499             auto *NewSibling = AR.LI.AllocateLoop();
unittests/Transforms/Utils/CloningTest.cpp
  425         Loop *L = LI.getLoopFor(Header);
  432         Loop *NewLoop = cloneLoopWithPreheader(Preheader, Preheader, L, VMap,
  436         Loop::block_iterator BI = NewLoop->block_begin();
unittests/Transforms/Utils/UnrollLoopTest.cpp
   69   Loop *L = *LI.begin();
unittests/Transforms/Vectorize/VPlanSlpTest.cpp
   39   VPInterleavedAccessInfo getInterleavedAccessInfo(Function &F, Loop *L,
usr/include/c++/7.4.0/bits/move.h
   72     constexpr _Tp&&
   83     constexpr _Tp&&
usr/include/c++/7.4.0/bits/range_access.h
   48     begin(_Container& __cont) -> decltype(__cont.begin())
   58     begin(const _Container& __cont) -> decltype(__cont.begin())
   68     end(_Container& __cont) -> decltype(__cont.end())
   78     end(const _Container& __cont) -> decltype(__cont.end())
usr/include/c++/7.4.0/bits/std_function.h
  299       _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
  628       using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
usr/include/c++/7.4.0/bits/unique_ptr.h
  824     make_unique(_Args&&... __args)
usr/include/c++/7.4.0/tuple
  125       constexpr _Head_base(const _Head& __h)
  132         constexpr _Head_base(_UHead&& __h)
  159       static constexpr _Head&
  162       static constexpr const _Head&
  194       static constexpr _Head&
  197       static constexpr const _Head&
  210       constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
  216         constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
  248 		    const _Head& __head, const _Tail&... __tail)
  473       return __and_<is_constructible<_Elements, const _UElements&>...>::value;
  479       return __and_<is_convertible<const _UElements&, _Elements>...>::value;
  485       return __and_<is_constructible<_Elements, _UElements&&>...>::value;
  491       return __and_<is_convertible<_UElements&&, _Elements>...>::value;
  608         constexpr tuple(const _Elements&... __elements)
  619       explicit constexpr tuple(const _Elements&... __elements)
  646         constexpr tuple(_UElements&&... __elements)
  730 	      const _Elements&... __elements)
  741                        const _Elements&... __elements)
 1302     constexpr _Head&
 1307     constexpr const _Head&
 1313     constexpr __tuple_element_t<__i, tuple<_Elements...>>&
 1319     constexpr const __tuple_element_t<__i, tuple<_Elements...>>&
 1325     constexpr __tuple_element_t<__i, tuple<_Elements...>>&&
usr/include/c++/7.4.0/type_traits
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1554     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1633     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1983     { typedef _Up     type; };
utils/unittest/googletest/include/gtest/gtest-printers.h
  140   static void PrintValue(const T& value, ::std::ostream* os) {
  205     ::std::basic_ostream<Char, CharTraits>& os, const T& x) {
  206   TypeWithoutFormatter<T,
  207       (internal::IsAProtocolMessage<T>::value ? kProtobuf :
  208        internal::ImplicitlyConvertible<const T&, internal::BiggestInt>::value ?
  223 void DefaultPrintNonContainerTo(const T& value, ::std::ostream* os) {
  366 void UniversalPrint(const T& value, ::std::ostream* os);
  373                     const C& container, ::std::ostream* os) {
  407                     T* p, ::std::ostream* os) {
  416     if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {
  439                     const T& value, ::std::ostream* os) {
  455 void PrintTo(const T& value, ::std::ostream* os) {
  478   DefaultPrintTo(IsContainerTest<T>(0), is_pointer<T>(), value, os);
  699   static void Print(const T& value, ::std::ostream* os) {
  765   static void Print(const T& value, ::std::ostream* os) {
  856   typedef T T1;
utils/unittest/googletest/include/gtest/internal/custom/raw-ostream.h
   29   static const T& printable(const T& V) { return V; }
   29   static const T& printable(const T& V) { return V; }
   35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
   35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
   37   return StreamSwitch<T>::printable(V);