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

Derived Classes

include/llvm/Analysis/CallGraphSCCPass.h
   34 class CallGraphSCCPass : public Pass {
include/llvm/Analysis/LoopPass.h
   28 class LoopPass : public Pass {
include/llvm/Analysis/RegionPass.h
   33 class RegionPass : public Pass {
include/llvm/Pass.h
  224 class ModulePass : public Pass {
  284 class FunctionPass : public Pass {
  321 class BasicBlockPass : public Pass {
lib/IR/LegacyPassManager.cpp
  381 class FunctionPassManagerImpl : public Pass,
  452 class MPPassManager : public Pass, public PMDataManager {
  538 class PassManagerImpl : public Pass,

Declarations

include/llvm/Analysis/InstructionSimplify.h
   50 class Pass;
include/llvm/Analysis/OptimizationRemarkEmitter.h
   27 class Pass;
include/llvm/Analysis/Passes.h
   22   class Pass;
include/llvm/Bitcode/BitcodeWriterPass.h
   23 class Pass;
include/llvm/CodeGen/GlobalISel/RegBankSelect.h
   83 class Pass;
include/llvm/CodeGen/MachineBasicBlock.h
   41 class Pass;
include/llvm/CodeGen/MachineFunction.h
   67 class Pass;
include/llvm/CodeGen/Passes.h
   26 class Pass;
include/llvm/IR/IRPrintingPasses.h
   25 class Pass;
include/llvm/IR/LegacyPassManager.h
   24 class Pass;
include/llvm/IR/LegacyPassManagers.h
   95 class Pass;
include/llvm/IR/Module.h
   49 class Pass;
include/llvm/IR/OptBisect.h
   21 class Pass;
include/llvm/IR/PassTimingInfo.h
   27 class Pass;
include/llvm/PassAnalysisSupport.h
   31 class Pass;
include/llvm/PassInfo.h
   22 class Pass;
include/llvm/PassSupport.h
   31 class Pass;
include/llvm/Transforms/Coroutines.h
   16 class Pass;
include/llvm/Transforms/IPO.h
   27 class Pass;
include/llvm/Transforms/IPO/FunctionAttrs.h
   27 class Pass;
include/llvm/Transforms/IPO/PassManagerBuilder.h
   24 class Pass;
include/llvm/Transforms/ObjCARC.h
   19 class Pass;
include/llvm/Transforms/Scalar.h
   25 class Pass;
include/llvm/Transforms/Utils.h
   21 class Pass;
include/llvm/Transforms/Vectorize.h
   20 class Pass;
lib/Target/AMDGPU/AMDGPU.h
   21 class Pass;
tools/polly/include/polly/CodeGen/Utils.h
   18 class Pass;
tools/polly/include/polly/DeLICM.h
   24 class Pass;
tools/polly/include/polly/FlattenSchedule.h
   20 class Pass;
tools/polly/include/polly/LinkAllPasses.h
   26 class Pass;
tools/polly/include/polly/PruneUnprofitable.h
   18 class Pass;
tools/polly/include/polly/Simplify.h
   20 class Pass;
tools/polly/include/polly/Support/ScopHelper.h
   27 class Pass;

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/Analysis/AliasAnalysis.h
 1176   using CallbackT = std::function<void(Pass &, Function &, AAResults &)>;
 1206     std::function<void(Pass &, Function &, AAResults &)> Callback);
 1215 AAResults createLegacyPMAAResults(Pass &P, Function &F, BasicAAResult &BAR);
include/llvm/Analysis/BasicAliasAnalysis.h
  256 BasicAAResult createLegacyPMBasicAAResult(Pass &P, Function &F);
  262   Pass &P;
  267   LegacyAARGetter(Pass &P) : P(P) {}
include/llvm/Analysis/CallGraphSCCPass.h
   34 class CallGraphSCCPass : public Pass {
   40   Pass *createPrinterPass(raw_ostream &OS,
include/llvm/Analysis/IVUsers.h
  165 Pass *createIVUsersPass();
include/llvm/Analysis/InstructionSimplify.h
  295 const SimplifyQuery getBestSimplifyQuery(Pass &, Function &);
include/llvm/Analysis/LoopPass.h
   28 class LoopPass : public Pass {
   34   Pass *createPrinterPass(raw_ostream &O,
  112   Pass *getAsPass() override { return this; }
include/llvm/Analysis/RegionPass.h
   33 class RegionPass : public Pass {
   57   Pass *createPrinterPass(raw_ostream &O,
  111   Pass *getAsPass() override { return this; }
  117   Pass *getContainedPass(unsigned N) {
  119     Pass *FP = static_cast<Pass *>(PassVector[N]);
include/llvm/Bitcode/BitcodeWriterPass.h
   44 bool isBitcodeWriterPass(Pass *P);
include/llvm/CodeGen/GlobalISel/RegBankSelect.h
  194     virtual uint64_t frequency(const Pass &P) const { return 1; }
  229     uint64_t frequency(const Pass &P) const override;
  267     uint64_t frequency(const Pass &P) const override;
  283     Pass &P;
  300     EdgeInsertPoint(MachineBasicBlock &Src, MachineBasicBlock &Dst, Pass &P)
  307     uint64_t frequency(const Pass &P) const override;
  347     Pass &P;
  356                        const TargetRegisterInfo &TRI, Pass &P,
include/llvm/CodeGen/MachineBasicBlock.h
  591   MachineBasicBlock *SplitCriticalEdge(MachineBasicBlock *Succ, Pass &P);
include/llvm/CodeGen/MachineFunction.h
  629   bool verify(Pass *p = nullptr, const char *Banner = nullptr,
include/llvm/CodeGen/MachineFunctionPass.h
   72   Pass *createPrinterPass(raw_ostream &O,
include/llvm/CodeGen/Passes.h
  406   Pass *createGlobalMergePass(const TargetMachine *TM, unsigned MaximalOffset,
include/llvm/CodeGen/SelectionDAG.h
  227   Pass *SDAGISelPass = nullptr;
  403             Pass *PassPtr, const TargetLibraryInfo *LibraryInfo,
  415   const Pass *getPass() const { return SDAGISelPass; }
include/llvm/CodeGen/TargetPassConfig.h
   55     Pass *P;
   62   IdentifyingPassPtr(Pass *InstancePtr) : P(InstancePtr), IsInstance(true) {}
   72   Pass *getInstance() const {
  442   void addPass(Pass *P, bool verifyAfter = true, bool printAfter = true);
include/llvm/IR/IRPrintingPasses.h
   58 bool isIRPrintingPass(Pass *P);
include/llvm/IR/LegacyPassManager.h
   44   virtual void add(Pass *P) = 0;
   54   void add(Pass *P) override;
   74   void add(Pass *P) override;
include/llvm/IR/LegacyPassManagers.h
  117   Pass *P;
  122   explicit PassManagerPrettyStackEntry(Pass *p)
  124   PassManagerPrettyStackEntry(Pass *p, Value &v)
  126   PassManagerPrettyStackEntry(Pass *p, Module &m)
  183   void schedulePass(Pass *P);
  186   void setLastUser(ArrayRef<Pass*> AnalysisPasses, Pass *P);
  186   void setLastUser(ArrayRef<Pass*> AnalysisPasses, Pass *P);
  189   void collectLastUses(SmallVectorImpl<Pass *> &LastUses, Pass *P);
  189   void collectLastUses(SmallVectorImpl<Pass *> &LastUses, Pass *P);
  194   Pass *findAnalysisPass(AnalysisID AID);
  200   AnalysisUsage *findAnalysisUsage(Pass *P);
  239   DenseMap<Pass *, Pass *> LastUser;
  239   DenseMap<Pass *, Pass *> LastUser;
  244   DenseMap<Pass *, SmallPtrSet<Pass *, 8> > InversedLastUser;
  244   DenseMap<Pass *, SmallPtrSet<Pass *, 8> > InversedLastUser;
  288   DenseMap<Pass *, AnalysisUsage*> AnUsageMap;
  310   virtual Pass *getAsPass() = 0;
  313   void recordAvailableAnalysis(Pass *P);
  316   void verifyPreservedAnalysis(Pass *P);
  319   void removeNotPreservedAnalysis(Pass *P);
  322   void removeDeadPasses(Pass *P, StringRef Msg,
  326   void freePass(Pass *P, StringRef Msg,
  331   void add(Pass *P, bool ProcessAnalysis = true);
  336   virtual void addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass);
  336   virtual void addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass);
  338   virtual Pass *getOnTheFlyPass(Pass *P, AnalysisID PI, Function &F);
  338   virtual Pass *getOnTheFlyPass(Pass *P, AnalysisID PI, Function &F);
  349   bool preserveHigherLevelAnalysis(Pass *P);
  355       SmallVectorImpl<Pass *> &UsedPasses,
  356       SmallVectorImpl<AnalysisID> &ReqPassNotAvailable, Pass *P);
  362   void initializeAnalysisImpl(Pass *P);
  366   Pass *findAnalysisPass(AnalysisID AID, bool Direction);
  376   void dumpLastUses(Pass *P, unsigned Offset) const;
  378   void dumpPassInfo(Pass *P, enum PassDebuggingString S1,
  380   void dumpRequiredSet(const Pass *P) const;
  381   void dumpPreservedSet(const Pass *P) const;
  382   void dumpUsedSet(const Pass *P) const;
  393   DenseMap<AnalysisID, Pass*> *getAvailableAnalysis() {
  422       Pass *P, Module &M, int64_t Delta, unsigned CountBefore,
  431   SmallVector<Pass *, 16> PassVector;
  436   DenseMap<AnalysisID, Pass *> *InheritedAnalysis[PMT_Last];
  443   void dumpAnalysisUsage(StringRef Msg, const Pass *P,
  450   DenseMap<AnalysisID, Pass*> AvailableAnalysis;
  454   SmallVector<Pass *, 16> HigherLevelAnalysis;
  499   Pass *getAsPass() override { return this; }
include/llvm/IR/Module.h
  260   std::unique_ptr<RandomNumberGenerator> createRNG(const Pass* P) const;
include/llvm/IR/OptBisect.h
   31   virtual bool shouldRunPass(const Pass *P, StringRef IRDescription) {
   67   bool shouldRunPass(const Pass *P, StringRef IRDescription) override;
include/llvm/IR/PassTimingInfo.h
   37 Timer *getPassTimer(Pass *);
include/llvm/Pass.h
   87   Pass(const Pass &) = delete;
   88   Pass &operator=(const Pass &) = delete;
   88   Pass &operator=(const Pass &) = delete;
  123   virtual Pass *createPrinterPass(raw_ostream &OS,
  184   static Pass *createPass(AnalysisID ID);
  224 class ModulePass : public Pass {
  232   Pass *createPrinterPass(raw_ostream &OS,
  284 class FunctionPass : public Pass {
  289   Pass *createPrinterPass(raw_ostream &OS,
  321 class BasicBlockPass : public Pass {
  326   Pass *createPrinterPass(raw_ostream &OS,
include/llvm/PassAnalysisSupport.h
  155   Pass *findImplPass(AnalysisID PI) {
  156     Pass *ResultPass = nullptr;
  167   Pass *findImplPass(Pass *P, AnalysisID PI, Function &F);
  167   Pass *findImplPass(Pass *P, AnalysisID PI, Function &F);
  169   void addAnalysisImplsPair(AnalysisID PI, Pass *P) {
  172     std::pair<AnalysisID, Pass*> pir = std::make_pair(PI,P);
  182   Pass *getAnalysisIfAvailable(AnalysisID ID, bool Direction) const;
  187   std::vector<std::pair<AnalysisID, Pass *>> AnalysisImpls;
  206   Pass *ResultPass = Resolver->getAnalysisIfAvailable(PI, true);
  226 AnalysisType &Pass::getAnalysisID(AnalysisID PI) const {
  232   Pass *ResultPass = Resolver->findImplPass(PI);
  261   Pass *ResultPass = Resolver->findImplPass(this, PI, F);
include/llvm/PassInfo.h
   32   using NormalCtor_t = Pass* (*)();
   96   Pass *createPass() const {
include/llvm/PassSupport.h
   76 template <typename PassName> Pass *callDefaultCtor() { return new PassName(); }
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 };
include/llvm/Transforms/Coroutines.h
   23 Pass *createCoroEarlyPass();
   26 Pass *createCoroSplitPass();
   30 Pass *createCoroElidePass();
   33 Pass *createCoroCleanupPass();
include/llvm/Transforms/IPO.h
   94 Pass *createFunctionImportPass();
  105 Pass *createFunctionInliningPass();
  106 Pass *createFunctionInliningPass(int Threshold);
  107 Pass *createFunctionInliningPass(unsigned OptLevel, unsigned SizeOptLevel,
  109 Pass *createFunctionInliningPass(InlineParams &Params);
  115 Pass *createPruneEHPass();
  151 Pass *createArgumentPromotionPass(unsigned maxElements = 3);
  171 Pass *createLoopExtractorPass();
  176 Pass *createSingleLoopExtractorPass();
  199 Pass *createReversePostOrderFunctionAttrsPass();
include/llvm/Transforms/IPO/AlwaysInliner.h
   41 Pass *createAlwaysInlinerLegacyPass(bool InsertLifetime = true);
include/llvm/Transforms/IPO/Attributor.h
 1524 Pass *createAttributorLegacyPass();
include/llvm/Transforms/IPO/ForceFunctionAttrs.h
   28 Pass *createForceFunctionAttrsLegacyPass();
include/llvm/Transforms/IPO/FunctionAttrs.h
   57 Pass *createPostOrderFunctionAttrsLegacyPass();
include/llvm/Transforms/IPO/InferFunctionAttrs.h
   31 Pass *createInferFunctionAttrsLegacyPass();
include/llvm/Transforms/IPO/PassManagerBuilder.h
  142   Pass *Inliner;
include/llvm/Transforms/ObjCARC.h
   25 Pass *createObjCARCAPElimPass();
   31 Pass *createObjCARCExpandPass();
   37 Pass *createObjCARCContractPass();
   43 Pass *createObjCARCOptPass();
include/llvm/Transforms/Scalar.h
   56 Pass *createDeadInstEliminationPass();
  105 Pass *createLoopGuardWideningPass();
  126 Pass *createInductiveRangeCheckEliminationPass();
  133 Pass *createIndVarSimplifyPass();
  139 Pass *createLICMPass();
  140 Pass *createLICMPass(unsigned LicmMssaOptCap,
  148 Pass *createLoopSinkPass();
  154 Pass *createLoopPredicationPass();
  161 Pass *createLoopInterchangePass();
  168 Pass *createLoopStrengthReducePass();
  174 Pass *createLoopUnswitchPass(bool OptimizeForSize = false,
  181 Pass *createLoopInstSimplifyPass();
  187 Pass *createLoopUnrollPass(int OptLevel = 2, bool OnlyWhenForced = false,
  193 Pass *createSimpleLoopUnrollPass(int OptLevel = 2, bool OnlyWhenForced = false,
  200 Pass *createLoopUnrollAndJamPass(int OptLevel = 2);
  206 Pass *createLoopRerollPass();
  212 Pass *createLoopRotatePass(int MaxHeaderSize = -1);
  218 Pass *createLoopIdiomPass();
  224 Pass *createLoopVersioningLICMPass();
  276 Pass *createStructurizeCFGPass(bool SkipUniformRegions = false);
  338 Pass *createLoopDeletionPass();
  356 Pass *createLowerAtomicPass();
  362 Pass *createLowerGuardIntrinsicPass();
  368 Pass *createLowerWidenableConditionPass();
  374 Pass *createMergeICmpsLegacyPass();
  380 Pass *createCorrelatedValuePropagationPass();
  511 Pass *createLoopSimplifyCFGPass();
  518 Pass *createWarnMissedTransformationsPass();
include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
   75 Pass *createSimpleLoopUnswitchLegacyPass(bool NonTrivial = false);
include/llvm/Transforms/Scalar/WarnMissedTransforms.h
   33 Pass *createWarnMissedTransformationsPass();
include/llvm/Transforms/Utils.h
   79 Pass *createLCSSAPass();
  109 Pass *createLoopSimplifyPass();
include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
   49 Pass *createUnifyFunctionExitNodesPass();
include/llvm/Transforms/Vectorize.h
  112 Pass *createLoopVectorizePass();
  113 Pass *createLoopVectorizePass(bool InterleaveOnlyWhenForced,
  120 Pass *createSLPVectorizerPass();
  132 bool vectorizeBasicBlock(Pass *P, BasicBlock &BB,
  140 Pass *createLoadStoreVectorizerPass();
include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h
   22 Pass *createLoadStoreVectorizerPass();
lib/Analysis/AliasAnalysis.cpp
  841 AAResults llvm::createLegacyPMAAResults(Pass &P, Function &F,
lib/Analysis/BasicAliasAnalysis.cpp
 2095 BasicAAResult llvm::createLegacyPMBasicAAResult(Pass &P, Function &F) {
lib/Analysis/CallGraphSCCPass.cpp
   82   Pass *getAsPass() override { return this; }
   88       Pass *P = getContainedPass(Index);
   94   Pass *getContainedPass(unsigned N) {
  107   bool RunPassOnSCC(Pass *P, CallGraphSCC &CurSCC,
  118 bool CGPassManager::RunPassOnSCC(Pass *P, CallGraphSCC &CurSCC,
  419     Pass *P = getContainedPass(PassNo);
  593     Pass *P = CGP;
  679 Pass *CallGraphSCCPass::createPrinterPass(raw_ostream &OS,
lib/Analysis/IVUsers.cpp
   54 Pass *llvm::createIVUsersPass() { return new IVUsersWrapperPass(); }
lib/Analysis/InstructionSimplify.cpp
 5493 const SimplifyQuery getBestSimplifyQuery(Pass &P, Function &F) {
lib/Analysis/LoopAccessAnalysis.cpp
 2460   Pass *createLAAPass() {
lib/Analysis/LoopPass.cpp
  295         Pass *P = getContainedPass(Index);
  317     Pass *P = getContainedPass(Index);
  327 Pass *LoopPass::createPrinterPass(raw_ostream &O,
  379     Pass *P = LPPM->getAsPass();
lib/Analysis/RegionPass.cpp
  140         Pass *P = getContainedPass(Index);
  172     Pass *P = getContainedPass(Index);
  276 Pass *RegionPass::createPrinterPass(raw_ostream &O,
lib/Bitcode/Writer/BitcodeWriterPass.cpp
   83 bool llvm::isBitcodeWriterPass(Pass *P) {
lib/CodeGen/GlobalISel/RegBankSelect.cpp
  723     MachineInstr &MI, unsigned OpIdx, const TargetRegisterInfo &TRI, Pass &P,
  880 uint64_t RegBankSelect::InstrInsertPoint::frequency(const Pass &P) const {
  890 uint64_t RegBankSelect::MBBInsertPoint::frequency(const Pass &P) const {
  911 uint64_t RegBankSelect::EdgeInsertPoint::frequency(const Pass &P) const {
lib/CodeGen/GlobalMerge.cpp
  675 Pass *llvm::createGlobalMergePass(const TargetMachine *TM, unsigned Offset,
lib/CodeGen/MachineBasicBlock.cpp
  875                                                         Pass &P) {
lib/CodeGen/MachineFunctionPass.cpp
   33 Pass *MachineFunctionPass::createPrinterPass(raw_ostream &O,
lib/CodeGen/MachineVerifier.cpp
   87     MachineVerifier(Pass *pass, const char *b) : PASS(pass), Banner(b) {}
   91     Pass *const PASS;
  328 bool MachineFunction::verify(Pass *p, const char *Banner, bool AbortOnErrors)
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
 1007                         Pass *PassPtr, const TargetLibraryInfo *LibraryInfo,
lib/CodeGen/TargetPassConfig.cpp
  297   Pass *getInsertedPass() const {
  301     Pass *NP = Pass::createPass(InsertedPassID.getID());
  301     Pass *NP = Pass::createPass(InsertedPassID.getID());
  518 void TargetPassConfig::addPass(Pass *P, bool verifyAfter, bool printAfter) {
  574   Pass *P;
  578     P = Pass::createPass(FinalPtr.getID());
lib/IR/IRPrintingPasses.cpp
  162 bool llvm::isIRPrintingPass(Pass *P) {
lib/IR/LegacyPassManager.cpp
  166     Pass *P, Module &M, int64_t Delta, unsigned CountBefore,
  347   Pass *getAsPass() override { return this; }
  381 class FunctionPassManagerImpl : public Pass,
  394   void add(Pass *P) {
  399   Pass *createPrinterPass(raw_ostream &O,
  422   Pass *getAsPass() override { return this; }
  452 class MPPassManager : public Pass, public PMDataManager {
  467   Pass *createPrinterPass(raw_ostream &O,
  487   void addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) override;
  487   void addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) override;
  492   Pass* getOnTheFlyPass(Pass *MP, AnalysisID PI, Function &F) override;
  492   Pass* getOnTheFlyPass(Pass *MP, AnalysisID PI, Function &F) override;
  497   Pass *getAsPass() override { return this; }
  505       MapVector<Pass *, FunctionPassManagerImpl *>::const_iterator I =
  525    MapVector<Pass *, FunctionPassManagerImpl *> OnTheFlyManagers;
  538 class PassManagerImpl : public Pass,
  550   void add(Pass *P) {
  555   Pass *createPrinterPass(raw_ostream &O,
  573   Pass *getAsPass() override { return this; }
  603 PMTopLevelManager::setLastUser(ArrayRef<Pass*> AnalysisPasses, Pass *P) {
  603 PMTopLevelManager::setLastUser(ArrayRef<Pass*> AnalysisPasses, Pass *P) {
  608   for (Pass *AP : AnalysisPasses) {
  617     SmallVector<Pass *, 12> LastUses;
  618     SmallVector<Pass *, 12> LastPMUses;
  620       Pass *AnalysisPass = findAnalysisPass(ID);
  652 void PMTopLevelManager::collectLastUses(SmallVectorImpl<Pass *> &LastUses,
  653                                         Pass *P) {
  654   DenseMap<Pass *, SmallPtrSet<Pass *, 8> >::iterator DMI =
  654   DenseMap<Pass *, SmallPtrSet<Pass *, 8> >::iterator DMI =
  659   SmallPtrSet<Pass *, 8> &LU = DMI->second;
  660   for (Pass *LUP : LU) {
  666 AnalysisUsage *PMTopLevelManager::findAnalysisUsage(Pass *P) {
  702 void PMTopLevelManager::schedulePass(Pass *P) {
  730       Pass *AnalysisPass = findAnalysisPass(ID);
  742             Pass *AnalysisPass2 = findAnalysisPass(ID2);
  788     Pass *PP = P->createPrinterPass(
  797     Pass *PP = P->createPrinterPass(
  806 Pass *PMTopLevelManager::findAnalysisPass(AnalysisID AID) {
  809   if (Pass *P = ImmutablePassMap.lookup(AID))
  814     if (Pass *P = PassManager->findAnalysisPass(AID, false))
  819     if (Pass *P = IndirectPassManager->findAnalysisPass(AID, false))
  899     SmallPtrSet<Pass *, 8> &L = InversedLastUser[LU.second];
  917 void PMDataManager::recordAvailableAnalysis(Pass *P) {
  935 bool PMDataManager::preserveHigherLevelAnalysis(Pass *P) {
  941   for (Pass *P1 : HigherLevelAnalysis) {
  951 void PMDataManager::verifyPreservedAnalysis(Pass *P) {
  961     if (Pass *AP = findAnalysisPass(AID, true)) {
  969 void PMDataManager::removeNotPreservedAnalysis(Pass *P) {
  975   for (DenseMap<AnalysisID, Pass*>::iterator I = AvailableAnalysis.begin(),
  977     DenseMap<AnalysisID, Pass*>::iterator Info = I++;
  982         Pass *S = Info->second;
  997     for (DenseMap<AnalysisID, Pass*>::iterator
 1000       DenseMap<AnalysisID, Pass *>::iterator Info = I++;
 1005           Pass *S = Info->second;
 1016 void PMDataManager::removeDeadPasses(Pass *P, StringRef Msg,
 1019   SmallVector<Pass *, 12> DeadPasses;
 1033   for (Pass *P : DeadPasses)
 1037 void PMDataManager::freePass(Pass *P, StringRef Msg,
 1058       DenseMap<AnalysisID, Pass*>::iterator Pos =
 1068 void PMDataManager::add(Pass *P, bool ProcessAnalysis) {
 1076   SmallVector<Pass *, 12> TransferLastUses;
 1085   SmallVector<Pass *, 12> LastUses;
 1086   SmallVector<Pass *, 8> UsedPasses;
 1092   for (Pass *PUsed : UsedPasses) {
 1118     Pass *My_PM = getAsPass();
 1126     Pass *AnalysisPass = PI->createPass();
 1144     SmallVectorImpl<Pass *> &UP, SmallVectorImpl<AnalysisID> &RP_NotAvail,
 1145     Pass *P) {
 1149     if (Pass *AnalysisPass = findAnalysisPass(UsedID, true))
 1153     if (Pass *AnalysisPass = findAnalysisPass(RequiredID, true))
 1159     if (Pass *AnalysisPass = findAnalysisPass(RequiredID, true))
 1170 void PMDataManager::initializeAnalysisImpl(Pass *P) {
 1174     Pass *Impl = findAnalysisPass(ID, true);
 1187 Pass *PMDataManager::findAnalysisPass(AnalysisID AID, bool SearchParent) {
 1190   DenseMap<AnalysisID, Pass*>::const_iterator I =  AvailableAnalysis.find(AID);
 1203 void PMDataManager::dumpLastUses(Pass *P, unsigned Offset) const{
 1205   SmallVector<Pass *, 12> LUses;
 1213   for (Pass *P : LUses) {
 1220   for (Pass *P : PassVector) {
 1231 void PMDataManager::dumpPassInfo(Pass *P, enum PassDebuggingString S1,
 1275 void PMDataManager::dumpRequiredSet(const Pass *P) const {
 1284 void PMDataManager::dumpPreservedSet(const Pass *P) const {
 1293 void PMDataManager::dumpUsedSet(const Pass *P) const {
 1302 void PMDataManager::dumpAnalysisUsage(StringRef Msg, const Pass *P,
 1326 void PMDataManager::addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) {
 1326 void PMDataManager::addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) {
 1348 Pass *PMDataManager::getOnTheFlyPass(Pass *P, AnalysisID PI, Function &F) {
 1348 Pass *PMDataManager::getOnTheFlyPass(Pass *P, AnalysisID PI, Function &F) {
 1354   for (Pass *P : PassVector)
 1361 Pass *AnalysisResolver::getAnalysisIfAvailable(AnalysisID ID, bool dir) const {
 1365 Pass *AnalysisResolver::findImplPass(Pass *P, AnalysisID AnalysisPI,
 1365 Pass *AnalysisResolver::findImplPass(Pass *P, AnalysisID AnalysisPI,
 1498 void FunctionPassManager::add(Pass *P) {
 1795 void MPPassManager::addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) {
 1795 void MPPassManager::addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) {
 1815   Pass *FoundPass = nullptr;
 1827   SmallVector<Pass *, 1> LU;
 1835 Pass* MPPassManager::getOnTheFlyPass(Pass *MP, AnalysisID PI, Function &F){
 1835 Pass* MPPassManager::getOnTheFlyPass(Pass *MP, AnalysisID PI, Function &F){
 1886 void PassManager::add(Pass *P) {
lib/IR/Module.cpp
   92 std::unique_ptr<RandomNumberGenerator> Module::createRNG(const Pass* P) const {
lib/IR/OptBisect.cpp
   42 bool OptBisect::shouldRunPass(const Pass *P, StringRef IRDescription) {
lib/IR/Pass.cpp
   49 Pass *ModulePass::createPrinterPass(raw_ostream &OS,
  153 Pass *FunctionPass::createPrinterPass(raw_ostream &OS,
  183 Pass *BasicBlockPass::createPrinterPass(raw_ostream &OS,
  232 Pass *Pass::createPass(AnalysisID ID) {
  308   const PassInfo *PI = Pass::lookupPassInfo(Arg);
lib/IR/PassTimingInfo.cpp
   84   Timer *getPassTimer(Pass *, PassInstanceID);
  128 Timer *PassTimingInfo::getPassTimer(Pass *P, PassInstanceID Pass) {
  139     if (const PassInfo *PI = Pass::lookupPassInfo(P->getPassID()))
  150 Timer *getPassTimer(Pass *P) {
lib/Target/AMDGPU/AMDGPU.h
   73 Pass *createAMDGPUAnnotateKernelFeaturesPass();
  183 Pass *createAMDGPUStructurizeCFGPass();
  233 Pass *createAMDGPUFunctionInliningPass();
lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp
  374 Pass *llvm::createAMDGPUAnnotateKernelFeaturesPass() {
lib/Target/AMDGPU/AMDGPUInline.cpp
   97 Pass *llvm::createAMDGPUFunctionInliningPass() { return new AMDGPUInliner(); }
lib/Target/ARM/ARM.h
   38 Pass *createMVETailPredicationPass();
   40 Pass *createARMParallelDSPPass();
lib/Target/ARM/ARMParallelDSP.cpp
  809 Pass *llvm::createARMParallelDSPPass() {
lib/Target/ARM/MVETailPredication.cpp
  512 Pass *llvm::createMVETailPredicationPass() {
lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
  110   Pass *createHexagonLoopIdiomPass();
 2441 Pass *llvm::createHexagonLoopIdiomPass() {
lib/Target/Hexagon/HexagonTargetMachine.cpp
  143   Pass *createHexagonLoopIdiomPass();
  144   Pass *createHexagonVectorLoopCarriedReusePass();
lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp
  163 Pass *createHexagonVectorLoopCarriedReusePass();
  746 Pass *llvm::createHexagonVectorLoopCarriedReusePass() {
lib/Target/XCore/XCoreLowerThreadLocal.cpp
  128 static bool replaceConstantExprOp(ConstantExpr *CE, Pass *P) {
  160 static bool rewriteNonInstructionUses(GlobalVariable *GV, Pass *P) {
lib/Transforms/Coroutines/CoroCleanup.cpp
  139 Pass *llvm::createCoroCleanupPass() { return new CoroCleanup(); }
lib/Transforms/Coroutines/CoroEarly.cpp
  274 Pass *llvm::createCoroEarlyPass() { return new CoroEarly(); }
lib/Transforms/Coroutines/CoroElide.cpp
  343 Pass *llvm::createCoroElidePass() { return new CoroElide(); }
lib/Transforms/Coroutines/CoroSplit.cpp
 1601 Pass *llvm::createCoroSplitPass() { return new CoroSplit(); }
lib/Transforms/IPO/AlwaysInliner.cpp
  137 Pass *llvm::createAlwaysInlinerLegacyPass(bool InsertLifetime) {
lib/Transforms/IPO/ArgumentPromotion.cpp
 1112 Pass *llvm::createArgumentPromotionPass(unsigned MaxElements) {
lib/Transforms/IPO/Attributor.cpp
 4994 Pass *llvm::createAttributorLegacyPass() { return new AttributorLegacyPass(); }
lib/Transforms/IPO/ForceFunctionAttrs.cpp
  126 Pass *llvm::createForceFunctionAttrsLegacyPass() {
lib/Transforms/IPO/FunctionAttrs.cpp
 1487 Pass *llvm::createPostOrderFunctionAttrsLegacyPass() {
 1551 Pass *llvm::createReversePostOrderFunctionAttrsPass() {
lib/Transforms/IPO/FunctionImport.cpp
 1307 Pass *createFunctionImportPass() {
lib/Transforms/IPO/InferFunctionAttrs.cpp
   82 Pass *llvm::createInferFunctionAttrsLegacyPass() {
lib/Transforms/IPO/InlineSimple.cpp
   97 Pass *llvm::createFunctionInliningPass() { return new SimpleInliner(); }
   99 Pass *llvm::createFunctionInliningPass(int Threshold) {
  103 Pass *llvm::createFunctionInliningPass(unsigned OptLevel,
  112 Pass *llvm::createFunctionInliningPass(InlineParams &Params) {
lib/Transforms/IPO/LoopExtractor.cpp
   83 Pass *llvm::createLoopExtractorPass() { return new LoopExtractor(); }
  165 Pass *llvm::createSingleLoopExtractorPass() {
lib/Transforms/IPO/PruneEH.cpp
   60 Pass *llvm::createPruneEHPass() { return new PruneEH(); }
lib/Transforms/ObjCARC/ObjCARCAPElim.cpp
   60 Pass *llvm::createObjCARCAPElimPass() {
lib/Transforms/ObjCARC/ObjCARCContract.cpp
  767 Pass *llvm::createObjCARCContractPass() { return new ObjCARCContract(); }
lib/Transforms/ObjCARC/ObjCARCExpand.cpp
   70 Pass *llvm::createObjCARCExpandPass() {
lib/Transforms/ObjCARC/ObjCARCOpts.cpp
  580 Pass *llvm::createObjCARCOptPass() {
lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
  121 Pass *llvm::createCorrelatedValuePropagationPass() {
lib/Transforms/Scalar/DCE.cpp
   79 Pass *llvm::createDeadInstEliminationPass() {
lib/Transforms/Scalar/GuardWidening.cpp
  944 Pass *llvm::createLoopGuardWideningPass() {
lib/Transforms/Scalar/IndVarSimplify.cpp
 3196 Pass *llvm::createIndVarSimplifyPass() {
lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
 1894 Pass *llvm::createInductiveRangeCheckEliminationPass() {
lib/Transforms/Scalar/LICM.cpp
  314 Pass *llvm::createLICMPass() { return new LegacyLICMPass(); }
  315 Pass *llvm::createLICMPass(unsigned LicmMssaOptCap,
lib/Transforms/Scalar/LoopDeletion.cpp
  249 Pass *llvm::createLoopDeletionPass() { return new LoopDeletionLegacyPass(); }
lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  339 Pass *llvm::createLoopIdiomPass() { return new LoopIdiomRecognizeLegacyPass(); }
lib/Transforms/Scalar/LoopInstSimplify.cpp
  253 Pass *llvm::createLoopInstSimplifyPass() {
lib/Transforms/Scalar/LoopInterchange.cpp
 1599 Pass *llvm::createLoopInterchangePass() { return new LoopInterchange(); }
lib/Transforms/Scalar/LoopPredication.cpp
  344 Pass *llvm::createLoopPredicationPass() {
lib/Transforms/Scalar/LoopRerollPass.cpp
  493 Pass *llvm::createLoopRerollPass() {
lib/Transforms/Scalar/LoopRotation.cpp
  122 Pass *llvm::createLoopRotatePass(int MaxHeaderSize) {
lib/Transforms/Scalar/LoopSimplifyCFG.cpp
  760 Pass *llvm::createLoopSimplifyCFGPass() {
lib/Transforms/Scalar/LoopSink.cpp
  384 Pass *llvm::createLoopSinkPass() { return new LegacyLoopSinkPass(); }
lib/Transforms/Scalar/LoopStrengthReduce.cpp
 5776 Pass *llvm::createLoopStrengthReducePass() { return new LoopStrengthReduce(); }
lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
  490 Pass *llvm::createLoopUnrollAndJamPass(int OptLevel) {
lib/Transforms/Scalar/LoopUnrollPass.cpp
 1271 Pass *llvm::createLoopUnrollPass(int OptLevel, bool OnlyWhenForced,
 1288 Pass *llvm::createSimpleLoopUnrollPass(int OptLevel, bool OnlyWhenForced,
lib/Transforms/Scalar/LoopUnswitch.cpp
  398 Pass *llvm::createLoopUnswitchPass(bool Os, bool hasBranchDivergence) {
lib/Transforms/Scalar/LoopVersioningLICM.cpp
  640 Pass *llvm::createLoopVersioningLICMPass() { return new LoopVersioningLICM(); }
lib/Transforms/Scalar/LowerAtomic.cpp
  177 Pass *llvm::createLowerAtomicPass() { return new LowerAtomicLegacyPass(); }
lib/Transforms/Scalar/LowerGuardIntrinsic.cpp
   79 Pass *llvm::createLowerGuardIntrinsicPass() {
lib/Transforms/Scalar/LowerWidenableCondition.cpp
   75 Pass *llvm::createLowerWidenableConditionPass() {
lib/Transforms/Scalar/MergeICmps.cpp
  930 Pass *llvm::createMergeICmpsLegacyPass() { return new MergeICmpsLegacyPass(); }
lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
 2992 Pass *llvm::createSimpleLoopUnswitchLegacyPass(bool NonTrivial) {
lib/Transforms/Scalar/StructurizeCFG.cpp
 1061 Pass *llvm::createStructurizeCFGPass(bool SkipUniformRegions) {
lib/Transforms/Scalar/WarnMissedTransforms.cpp
  146 Pass *llvm::createWarnMissedTransformationsPass() {
lib/Transforms/Utils/LCSSA.cpp
  466 Pass *llvm::createLCSSAPass() { return new LCSSAWrapperPass(); }
lib/Transforms/Utils/LoopSimplify.cpp
  792 Pass *llvm::createLoopSimplifyPass() { return new LoopSimplify(); }
lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
   28 Pass *llvm::createUnifyFunctionExitNodesPass() {
lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
  245 Pass *llvm::createLoadStoreVectorizerPass() {
lib/Transforms/Vectorize/LoopVectorize.cpp
 6342 Pass *createLoopVectorizePass() { return new LoopVectorize(); }
 6344 Pass *createLoopVectorizePass(bool InterleaveOnlyWhenForced,
lib/Transforms/Vectorize/SLPVectorizer.cpp
 7147 Pass *llvm::createSLPVectorizerPass() { return new SLPVectorizer(); }
tools/bugpoint/bugpoint.cpp
  108   void add(Pass *P) override {
tools/llc/llc.cpp
  376   Pass *P;
tools/llvm-exegesis/lib/Assembler.cpp
   65   Pass *P = PI->getNormalCtor()();
tools/opt/PassPrinters.cpp
   50     getAnalysisID<Pass>(PassToPrint->getTypeInfo()).print(Out, F.getParent());
   85         getAnalysisID<Pass>(PassToPrint->getTypeInfo())
  119     getAnalysisID<Pass>(PassToPrint->getTypeInfo()).print(Out, &M);
  151     getAnalysisID<Pass>(PassToPrint->getTypeInfo())
  186     getAnalysisID<Pass>(PassToPrint->getTypeInfo())
  220     getAnalysisID<Pass>(PassToPrint->getTypeInfo())
tools/opt/opt.cpp
  316   void add(Pass *P) override {
  352 static inline void addPass(legacy::PassManagerBase &PM, Pass *P) {
  738     Pass *TPC = LTM.createPassConfig(Passes);
  781     Pass *P = nullptr;
tools/polly/include/polly/DeLICM.h
   30 llvm::Pass *createDeLICMPass();
tools/polly/include/polly/FlattenSchedule.h
   24 llvm::Pass *createFlattenSchedulePass();
tools/polly/include/polly/LinkAllPasses.h
   31 llvm::Pass *createCodePreparationPass();
   32 llvm::Pass *createScopInlinerPass();
   33 llvm::Pass *createDeadCodeElimPass();
   34 llvm::Pass *createDependenceInfoPass();
   35 llvm::Pass *createDependenceInfoWrapperPassPass();
   36 llvm::Pass *createDOTOnlyPrinterPass();
   37 llvm::Pass *createDOTOnlyViewerPass();
   38 llvm::Pass *createDOTPrinterPass();
   39 llvm::Pass *createDOTViewerPass();
   40 llvm::Pass *createJSONExporterPass();
   41 llvm::Pass *createJSONImporterPass();
   42 llvm::Pass *createPollyCanonicalizePass();
   43 llvm::Pass *createPolyhedralInfoPass();
   44 llvm::Pass *createScopDetectionWrapperPassPass();
   45 llvm::Pass *createScopInfoRegionPassPass();
   46 llvm::Pass *createScopInfoWrapperPassPass();
   47 llvm::Pass *createRewriteByrefParamsPass();
   48 llvm::Pass *createIslAstInfoWrapperPassPass();
   49 llvm::Pass *createCodeGenerationPass();
   58 llvm::Pass *createIslScheduleOptimizerPass();
   59 llvm::Pass *createFlattenSchedulePass();
   60 llvm::Pass *createDeLICMPass();
   61 llvm::Pass *createMaximalStaticExpansionPass();
tools/polly/include/polly/PruneUnprofitable.h
   26 llvm::Pass *createPruneUnprofitablePass();
tools/polly/include/polly/Simplify.h
   52 llvm::Pass *createSimplifyPass(int CallNo = 0);
tools/polly/include/polly/Support/ScopHelper.h
  316 void splitEntryBlockForAlloca(llvm::BasicBlock *EntryBlock, llvm::Pass *P);
tools/polly/lib/Analysis/DependenceInfo.cpp
  900 Pass *polly::createDependenceInfoPass() { return new DependenceInfo(); }
  952 Pass *polly::createDependenceInfoWrapperPassPass() {
tools/polly/lib/Analysis/PolyhedralInfo.cpp
  154 Pass *polly::createPolyhedralInfoPass() { return new PolyhedralInfo(); }
tools/polly/lib/Analysis/PruneUnprofitable.cpp
   99 Pass *polly::createPruneUnprofitablePass() { return new PruneUnprofitable(); }
tools/polly/lib/Analysis/ScopDetection.cpp
 1919 Pass *polly::createScopDetectionWrapperPassPass() {
tools/polly/lib/Analysis/ScopGraphPrinter.cpp
  258 Pass *polly::createDOTViewerPass() { return new ScopViewer(); }
  260 Pass *polly::createDOTOnlyViewerPass() { return new ScopOnlyViewer(); }
  262 Pass *polly::createDOTPrinterPass() { return new ScopPrinter(); }
  264 Pass *polly::createDOTOnlyPrinterPass() { return new ScopOnlyPrinter(); }
tools/polly/lib/Analysis/ScopInfo.cpp
 2702 Pass *polly::createScopInfoRegionPassPass() { return new ScopInfoRegionPass(); }
 2830 Pass *polly::createScopInfoWrapperPassPass() {
tools/polly/lib/CodeGen/CodeGeneration.cpp
  373 Pass *polly::createCodeGenerationPass() { return new CodeGeneration(); }
tools/polly/lib/CodeGen/IslAst.cpp
  826 Pass *polly::createIslAstInfoWrapperPassPass() {
tools/polly/lib/Exchange/JSONExporter.cpp
  756 Pass *polly::createJSONExporterPass() { return new JSONExporter(); }
  794 Pass *polly::createJSONImporterPass() { return new JSONImporter(); }
tools/polly/lib/Support/ScopHelper.cpp
  212 void polly::splitEntryBlockForAlloca(BasicBlock *EntryBlock, Pass *P) {
tools/polly/lib/Transform/Canonicalization.cpp
   94 Pass *polly::createPollyCanonicalizePass() { return new PollyCanonicalize(); }
tools/polly/lib/Transform/CodePreparation.cpp
  113 Pass *polly::createCodePreparationPass() { return new CodePreparation(); }
tools/polly/lib/Transform/DeLICM.cpp
 1417 Pass *polly::createDeLICMPass() { return new DeLICM(); }
tools/polly/lib/Transform/DeadCodeElimination.cpp
  168 Pass *polly::createDeadCodeElimPass() { return new DeadCodeElim(); }
tools/polly/lib/Transform/FlattenSchedule.cpp
  101 Pass *polly::createFlattenSchedulePass() { return new FlattenSchedule(); }
tools/polly/lib/Transform/MaximalStaticExpansion.cpp
  475 Pass *polly::createMaximalStaticExpansionPass() {
tools/polly/lib/Transform/RewriteByReferenceParameters.cpp
   93 Pass *polly::createRewriteByrefParamsPass() { return new RewriteByrefParams(); }
tools/polly/lib/Transform/ScheduleOptimizer.cpp
 1669 Pass *polly::createIslScheduleOptimizerPass() {
tools/polly/lib/Transform/ScopInliner.cpp
  106 Pass *polly::createScopInlinerPass() {
tools/polly/lib/Transform/Simplify.cpp
  719 Pass *polly::createSimplifyPass(int CallNo) { return new Simplify(CallNo); }
unittests/IR/LegacyPassManagerTest.cpp
  403       bool shouldRunPass(const Pass *P, StringRef IRDescription) {
usr/include/c++/7.4.0/bits/move.h
   72     constexpr _Tp&&
   83     constexpr _Tp&&
usr/include/c++/7.4.0/bits/std_function.h
  314       _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
  628       using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
usr/include/c++/7.4.0/type_traits
 1633     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1983     { typedef _Up     type; };