LLVM
8.0.1
|
PassRegistry - This class manages the registration and intitialization of the pass subsystem as application startup, and assists the PassManager in resolving pass dependencies. More...
#include "llvm/PassRegistry.h"
Public Member Functions | |
PassRegistry ()=default | |
~PassRegistry () | |
const PassInfo * | getPassInfo (const void *TI) const |
getPassInfo - Look up a pass' corresponding PassInfo, indexed by the pass' type identifier (&MyPass::ID). More... | |
const PassInfo * | getPassInfo (StringRef Arg) const |
getPassInfo - Look up a pass' corresponding PassInfo, indexed by the pass' argument string. More... | |
void | registerPass (const PassInfo &PI, bool ShouldFree=false) |
registerPass - Register a pass (by means of its PassInfo) with the registry. More... | |
void | registerAnalysisGroup (const void *InterfaceID, const void *PassID, PassInfo &Registeree, bool isDefault, bool ShouldFree=false) |
registerAnalysisGroup - Register an analysis group (or a pass implementing More... | |
void | enumerateWith (PassRegistrationListener *L) |
enumerateWith - Enumerate the registered passes, calling the provided PassRegistrationListener's passEnumerate() callback on each of them. More... | |
void | addRegistrationListener (PassRegistrationListener *L) |
addRegistrationListener - Register the given PassRegistrationListener to receive passRegistered() callbacks whenever a new pass is registered. More... | |
void | removeRegistrationListener (PassRegistrationListener *L) |
removeRegistrationListener - Unregister a PassRegistrationListener so that it no longer receives passRegistered() callbacks. More... | |
Static Public Member Functions | |
static PassRegistry * | getPassRegistry () |
getPassRegistry - Access the global registry object, which is automatically initialized at application launch and destroyed by llvm_shutdown. More... | |
PassRegistry - This class manages the registration and intitialization of the pass subsystem as application startup, and assists the PassManager in resolving pass dependencies.
NOTE: PassRegistry is NOT thread-safe. If you want to use LLVM on multiple threads simultaneously, you will need to use a separate PassRegistry on each thread.
Definition at line 39 of file PassRegistry.h.
|
default |
|
default |
Referenced by getPassRegistry().
void PassRegistry::addRegistrationListener | ( | PassRegistrationListener * | L | ) |
addRegistrationListener - Register the given PassRegistrationListener to receive passRegistered() callbacks whenever a new pass is registered.
Definition at line 119 of file PassRegistry.cpp.
Referenced by llvm::PassNameParser::PassNameParser().
void PassRegistry::enumerateWith | ( | PassRegistrationListener * | L | ) |
enumerateWith - Enumerate the registered passes, calling the provided PassRegistrationListener's passEnumerate() callback on each of them.
Definition at line 74 of file PassRegistry.cpp.
References llvm::PassRegistrationListener::passEnumerate().
Referenced by llvm::PassRegistrationListener::enumeratePasses().
getPassInfo - Look up a pass' corresponding PassInfo, indexed by the pass' type identifier (&MyPass::ID).
Definition at line 42 of file PassRegistry.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and I.
Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::Pass::createPass(), llvm::PMTopLevelManager::findAnalysisPassInfo(), getPassInfo(), llvm::Pass::getPassName(), llvm::Pass::lookupPassInfo(), and registerAnalysisGroup().
getPassInfo - Look up a pass' corresponding PassInfo, indexed by the pass' argument string.
Definition at line 48 of file PassRegistry.cpp.
References llvm::StringMap< ValueTy, AllocatorTy >::end(), llvm::StringMap< ValueTy, AllocatorTy >::find(), and I.
|
static |
getPassRegistry - Access the global registry object, which is automatically initialized at application launch and destroyed by llvm_shutdown.
Definition at line 32 of file PassRegistry.cpp.
References PassRegistryObj, and ~PassRegistry().
Referenced by llvm::AAEvalLegacyPass::AAEvalLegacyPass(), llvm::AAResultsWrapperPass::AAResultsWrapperPass(), llvm::DOTGraphTraits< RegionInfo * >::addCustomGraphFeatures(), llvm::TargetPassConfig::addMachinePasses(), llvm::AMDGPUAAWrapperPass::AMDGPUAAWrapperPass(), llvm::LoopVersioning::annotateInstWithNoAlias(), llvm::AssumptionCacheTracker::AssumptionCacheTracker(), llvm::BasicAAWrapperPass::BasicAAWrapperPass(), llvm::BlockFrequencyInfoWrapperPass::BlockFrequencyInfoWrapperPass(), llvm::BranchProbabilityInfoWrapperPass::BranchProbabilityInfoWrapperPass(), llvm::BreakFalseDeps::BreakFalseDeps(), llvm::CallGraphWrapperPass::CallGraphWrapperPass(), llvm::CFLAndersAAWrapperPass::CFLAndersAAWrapperPass(), llvm::CFLSteensAAWrapperPass::CFLSteensAAWrapperPass(), collectSupportedLoops(), computeBranchTargetAndInversion(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), createBBSelectReg(), llvm::createFalkorMarkStridedAccessesPass(), llvm::Pass::createPass(), llvm::PPCTargetMachine::createPassConfig(), llvm::createShadowStackGCLoweringPass(), llvm::createUnpackMachineBundles(), llvm::DemandedBitsWrapperPass::DemandedBitsWrapperPass(), llvm::DependenceAnalysisWrapperPass::DependenceAnalysisWrapperPass(), doCallSiteSplitting(), llvm::ICFLoopSafetyInfo::doesNotWriteMemoryBefore(), llvm::DominanceFrontierWrapperPass::DominanceFrontierWrapperPass(), llvm::DominatorTreeWrapperPass::DominatorTreeWrapperPass(), llvm::DummyCGSCCPass::DummyCGSCCPass(), llvm::GVNExpression::Expression::dump(), llvm::CallGraphWrapperPass::dump(), llvm::AliasSetTracker::dump(), eliminateLoadsAcrossLoops(), eliminateTailRecursion(), eliminateUnreachableBlock(), llvm::LazyValueInfo::enableDT(), llvm::PassRegistrationListener::enumeratePasses(), llvm::ExternalAAWrapperPass::ExternalAAWrapperPass(), llvm::PMTopLevelManager::findAnalysisPassInfo(), formLCSSAOnAllLoops(), llvm::GCModuleInfo::GCModuleInfo(), llvm::GCOVOptions::getDefault(), llvm::AnalysisCallGraphWrapperPassTraits::getGraph(), getInductionVariable(), getLayoutSuccessorProbThreshold(), getPassInfo(), llvm::Pass::getPassName(), llvm::GISelCSEAnalysisWrapperPass::GISelCSEAnalysisWrapperPass(), llvm::GlobalsAAWrapperPass::GlobalsAAWrapperPass(), llvm::GVNHoistLegacyPass::GVNHoistLegacyPass(), llvm::gvn::GVNLegacyPass::GVNLegacyPass(), llvm::HexagonTargetMachine::HexagonTargetMachine(), INITIALIZE_PASS(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_END(), llvm::InstructionCombiningPass::InstructionCombiningPass(), llvm::InstructionSelect::InstructionSelect(), llvm::IntervalPartition::IntervalPartition(), llvm::IRTranslator::IRTranslator(), isDebug(), llvm::DenseMapInfo< VTableSlot >::isEqual(), IsInRanges(), isSecondInstructionInSequence(), llvm::IVUsersWrapperPass::IVUsersWrapperPass(), llvm::LazyBlockFrequencyInfoPass::LazyBlockFrequencyInfoPass(), llvm::LazyBranchProbabilityInfoPass::LazyBranchProbabilityInfoPass(), llvm::LazyMachineBlockFrequencyInfoPass::LazyMachineBlockFrequencyInfoPass(), llvm::LazyValueInfoWrapperPass::LazyValueInfoWrapperPass(), llvm::LCSSAVerificationPass::LCSSAVerificationPass(), llvm::LegacyDivergenceAnalysis::LegacyDivergenceAnalysis(), llvm::Legalizer::Legalizer(), llvm::LiveDebugVariables::LiveDebugVariables(), llvm::LiveIntervals::LiveIntervals(), llvm::LiveStacks::LiveStacks(), llvm::LiveVariables::LiveVariables(), LLVMGetGlobalPassRegistry(), LLVMInitializeAArch64Target(), LLVMInitializeAMDGPUTarget(), LLVMInitializeARMTarget(), llvm::LLVMInitializeAVRTarget(), LLVMInitializeBPFTarget(), LLVMInitializeHexagonTarget(), LLVMInitializeMipsTarget(), LLVMInitializeNVPTXTarget(), LLVMInitializePowerPCTarget(), LLVMInitializeRISCVTarget(), LLVMInitializeWebAssemblyTarget(), LLVMInitializeX86Target(), llvm::Pass::lookupPassInfo(), llvm::LoopAccessLegacyAnalysis::LoopAccessLegacyAnalysis(), llvm::LoopInfoWrapperPass::LoopInfoWrapperPass(), lowerSubFn(), llvm::MachineBlockFrequencyInfo::MachineBlockFrequencyInfo(), llvm::MachineBranchProbabilityInfo::MachineBranchProbabilityInfo(), llvm::MachineDominanceFrontier::MachineDominanceFrontier(), llvm::MachineDominatorTree::MachineDominatorTree(), llvm::MachineLoopInfo::MachineLoopInfo(), llvm::MachineModuleInfo::MachineModuleInfo(), llvm::MachineOptimizationRemarkEmitterPass::MachineOptimizationRemarkEmitterPass(), llvm::MachinePipeliner::MachinePipeliner(), llvm::MachineRegionInfoPass::MachineRegionInfoPass(), mayUsePostIncMode(), llvm::MemoryDependenceWrapperPass::MemoryDependenceWrapperPass(), llvm::MemorySSAPrinterLegacyPass::MemorySSAPrinterLegacyPass(), llvm::MemorySSAWrapperPass::MemorySSAWrapperPass(), llvm::ModuleSummaryIndexWrapperPass::ModuleSummaryIndexWrapperPass(), llvm::objcarc::ObjCARCAAWrapperPass::ObjCARCAAWrapperPass(), llvm::OptimizationRemarkEmitterWrapperPass::OptimizationRemarkEmitterWrapperPass(), optimizeDivRem(), llvm::SymbolRewriter::RewriteMapParser::parse(), parseCHRFilterFiles(), parseCond(), llvm::PassNameParser::PassNameParser(), patchAndReplaceAllUsesWith(), llvm::PhiValuesWrapperPass::PhiValuesWrapperPass(), llvm::PhysicalRegisterUsageInfo::PhysicalRegisterUsageInfo(), llvm::PostDominatorTreeWrapperPass::PostDominatorTreeWrapperPass(), llvm::PredicateInfoPrinterLegacyPass::PredicateInfoPrinterLegacyPass(), llvm::ReachingDefAnalysis::ReachingDefAnalysis(), RedzoneSizeForScale(), llvm::RegionInfoPass::RegionInfoPass(), llvm::RegisterAGBase::RegisterAGBase(), llvm::RegisterPass< passName >::RegisterPass(), llvm::AMDGPULibCalls::replaceCall(), replaceDevirtTrigger(), llvm::BoundsCheckingPass::run(), llvm::ForceFunctionAttrsPass::run(), llvm::DCEPass::run(), llvm::LowerAtomicPass::run(), llvm::PartiallyInlineLibCallsPass::run(), llvm::SinkingPass::run(), llvm::PromotePass::run(), llvm::LoopRotatePass::run(), llvm::InferFunctionAttrsPass::run(), llvm::StripDeadPrototypesPass::run(), llvm::GuardWideningPass::run(), llvm::BDCEPass::run(), llvm::EliminateAvailableExternallyPass::run(), llvm::GlobalOptPass::run(), llvm::IndVarSimplifyPass::run(), llvm::LoopSimplifyCFGPass::run(), llvm::LoopDeletionPass::run(), llvm::ArgumentPromotionPass::run(), llvm::WarnMissedTransformationsPass::run(), llvm::CalledValuePropagationPass::run(), llvm::DSEPass::run(), llvm::RewriteStatepointsForGC::run(), llvm::ConstantMergePass::run(), llvm::LowerExpectIntrinsicPass::run(), llvm::CFGViewerPass::run(), llvm::ADCEPass::run(), llvm::IPSCCPPass::run(), llvm::EarlyCSEPass::run(), llvm::LoopSinkPass::run(), llvm::AlwaysInlinerPass::run(), llvm::SCCPPass::run(), llvm::SimplifyCFGPass::run(), llvm::PostOrderFunctionAttrsPass::run(), llvm::InternalizePass::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::BitcodeWriterPass::run(), llvm::ReassociatePass::run(), runImpl(), runOnFunction(), llvm::ScalarEvolutionWrapperPass::ScalarEvolutionWrapperPass(), llvm::SCEVAAWrapperPass::SCEVAAWrapperPass(), llvm::ScopedNoAliasAAWrapperPass::ScopedNoAliasAAWrapperPass(), llvm::SelectionDAGISel::SelectionDAGISel(), setCannotDuplicate(), llvm::simplifyLoop(), simplifyLoopInst(), llvm::SlotIndexes::SlotIndexes(), splitGlobals(), llvm::sroa::SROALegacyPass::SROALegacyPass(), llvm::StackProtector::StackProtector(), llvm::StackSafetyGlobalInfoWrapperPass::StackSafetyGlobalInfoWrapperPass(), llvm::StackSafetyInfoWrapperPass::StackSafetyInfoWrapperPass(), llvm::TargetLibraryInfoWrapperPass::TargetLibraryInfoWrapperPass(), llvm::TargetPassConfig::TargetPassConfig(), llvm::TargetTransformInfoWrapperPass::TargetTransformInfoWrapperPass(), tryToUnrollAndJamLoop(), tryToUnrollLoop(), llvm::TypeBasedAAWrapperPass::TypeBasedAAWrapperPass(), llvm::UnifyFunctionExitNodes::UnifyFunctionExitNodes(), llvm::verifyModule(), llvm::DominatorTree::viewGraph(), llvm::WebAssemblyExceptionInfo::WebAssemblyExceptionInfo(), writeCFGToDotFile(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
void PassRegistry::registerAnalysisGroup | ( | const void * | InterfaceID, |
const void * | PassID, | ||
PassInfo & | Registeree, | ||
bool | isDefault, | ||
bool | ShouldFree = false |
||
) |
registerAnalysisGroup - Register an analysis group (or a pass implementing
Analysis Group Mechanisms.
Definition at line 81 of file PassRegistry.cpp.
References llvm::PassInfo::addInterfaceImplemented(), assert(), llvm::PassInfo::getNormalCtor(), getPassInfo(), llvm::PassInfo::isAnalysisGroup(), registerPass(), and llvm::PassInfo::setNormalCtor().
Referenced by llvm::RegisterAGBase::RegisterAGBase().
registerPass - Register a pass (by means of its PassInfo) with the registry.
Required in order to use the pass with a PassManager.
Definition at line 58 of file PassRegistry.cpp.
References assert(), llvm::PassInfo::getPassArgument(), llvm::PassInfo::getTypeInfo(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert().
Referenced by registerAnalysisGroup(), and llvm::RegisterPass< passName >::RegisterPass().
void PassRegistry::removeRegistrationListener | ( | PassRegistrationListener * | L | ) |
removeRegistrationListener - Unregister a PassRegistrationListener so that it no longer receives passRegistered() callbacks.
Definition at line 124 of file PassRegistry.cpp.
References llvm::find(), and I.