LLVM API Documentation

Classes | Public Member Functions | Static Public Member Functions
llvm::PassRegistry Class Reference

#include <PassRegistry.h>

List of all members.

Classes

struct  AnalysisGroupInfo
 AnalysisGroupInfo - Keep track of information for each analysis group.

Public Member Functions

 PassRegistry ()
 ~PassRegistry ()
const PassInfogetPassInfo (const void *TI) const
const PassInfogetPassInfo (StringRef Arg) const
void registerPass (const PassInfo &PI, bool ShouldFree=false)
void unregisterPass (const PassInfo &PI)
void registerAnalysisGroup (const void *InterfaceID, const void *PassID, PassInfo &Registeree, bool isDefault, bool ShouldFree=false)
 registerAnalysisGroup - Register an analysis group (or a pass implementing
void enumerateWith (PassRegistrationListener *L)
void addRegistrationListener (PassRegistrationListener *L)
void removeRegistrationListener (PassRegistrationListener *L)

Static Public Member Functions

static PassRegistrygetPassRegistry ()

Detailed Description

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 41 of file PassRegistry.h.


Constructor & Destructor Documentation

Definition at line 61 of file PassRegistry.h.

Definition at line 39 of file PassRegistry.cpp.


Member Function Documentation

addRegistrationListener - Register the given PassRegistrationListener to receive passRegistered() callbacks whenever a new pass is registered.

Definition at line 136 of file PassRegistry.cpp.

References Lock.

Referenced by llvm::PassNameParser::PassNameParser().

enumerateWith - Enumerate the registered passes, calling the provided PassRegistrationListener's passEnumerate() callback on each of them.

Definition at line 84 of file PassRegistry.cpp.

References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::begin(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::end(), I, Lock, and llvm::PassRegistrationListener::passEnumerate().

Referenced by llvm::PassRegistrationListener::enumeratePasses().

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(), I, Lock, and llvm::StringMapEntry< ValueTy >::second.

getPassRegistry - Access the global registry object, which is automatically initialized at application launch and destroyed by llvm_shutdown.

Definition at line 31 of file PassRegistry.cpp.

References PassRegistryObj.

Referenced by llvm::PMDataManager::add(), llvm::TargetPassConfig::addMachinePasses(), llvm::AssumptionTracker::AssumptionTracker(), llvm::BlockFrequencyInfo::BlockFrequencyInfo(), llvm::BranchProbabilityInfo::BranchProbabilityInfo(), llvm::CallGraphWrapperPass::CallGraphWrapperPass(), llvm::Pass::createPass(), llvm::DataLayoutPass::DataLayoutPass(), llvm::DependenceAnalysis::DependenceAnalysis(), llvm::DominanceFrontier::DominanceFrontier(), llvm::DominatorTreeWrapperPass::DominatorTreeWrapperPass(), llvm::PMTopLevelManager::dumpArguments(), llvm::PMDataManager::dumpPassArguments(), llvm::PassRegistrationListener::enumeratePasses(), llvm::PMTopLevelManager::findAnalysisPass(), llvm::FindUsedTypes::FindUsedTypes(), llvm::PMDataManager::freePass(), llvm::GCModuleInfo::GCModuleInfo(), llvm::Pass::getPassName(), initialize(), INITIALIZE_PASS(), llvm::InstCombiner::InstCombiner(), llvm::IntervalPartition::IntervalPartition(), llvm::IVUsers::IVUsers(), llvm::JumpInstrTableInfo::JumpInstrTableInfo(), llvm::JumpInstrTables::JumpInstrTables(), llvm::LazyValueInfo::LazyValueInfo(), llvm::LibCallAliasAnalysis::LibCallAliasAnalysis(), llvm::LiveDebugVariables::LiveDebugVariables(), llvm::LiveIntervals::LiveIntervals(), llvm::LiveStacks::LiveStacks(), llvm::LiveVariables::LiveVariables(), LLVMGetGlobalPassRegistry(), LLVMInitializeNVPTXTarget(), llvm::Pass::lookupPassInfo(), llvm::LoopInfo::LoopInfo(), llvm::MachineBlockFrequencyInfo::MachineBlockFrequencyInfo(), llvm::MachineBranchProbabilityInfo::MachineBranchProbabilityInfo(), llvm::MachineDominanceFrontier::MachineDominanceFrontier(), llvm::MachineDominatorTree::MachineDominatorTree(), llvm::MachineFunctionAnalysis::MachineFunctionAnalysis(), llvm::MachineLoopInfo::MachineLoopInfo(), llvm::MachineModuleInfo::MachineModuleInfo(), llvm::MachineRegionInfoPass::MachineRegionInfoPass(), llvm::MemoryDependenceAnalysis::MemoryDependenceAnalysis(), llvm::objcarc::ObjCARCAliasAnalysis::ObjCARCAliasAnalysis(), llvm::PassNameParser::PassNameParser(), llvm::PEI::PEI(), llvm::PostDominatorTree::PostDominatorTree(), llvm::PMDataManager::recordAvailableAnalysis(), llvm::RegionInfoPass::RegionInfoPass(), llvm::RegisterAGBase::RegisterAGBase(), llvm::RegisterPass< passName >::RegisterPass(), llvm::ScalarEvolution::ScalarEvolution(), llvm::PMTopLevelManager::schedulePass(), llvm::SelectionDAGISel::SelectionDAGISel(), llvm::SlotIndexes::SlotIndexes(), llvm::StackProtector::StackProtector(), llvm::TargetPassConfig::TargetPassConfig(), and llvm::UnifyFunctionExitNodes::UnifyFunctionExitNodes().

void PassRegistry::registerAnalysisGroup ( const void *  InterfaceID,
const void *  PassID,
PassInfo Registeree,
bool  isDefault,
bool  ShouldFree = false 
)
void PassRegistry::registerPass ( const PassInfo PI,
bool  ShouldFree = false 
)

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 llvm::PassInfo::getPassArgument(), llvm::PassInfo::getTypeInfo(), I, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::insert(), and Lock.

Referenced by initializePassOnce(), registerAnalysisGroup(), and llvm::RegisterPass< passName >::RegisterPass().

removeRegistrationListener - Unregister a PassRegistrationListener so that it no longer receives passRegistered() callbacks.

Definition at line 141 of file PassRegistry.cpp.

References I, and Lock.


The documentation for this class was generated from the following files: