LLVM API Documentation

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

#include <PassRegistry.h>

List of all members.

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


Constructor & Destructor Documentation

Definition at line 40 of file PassRegistry.h.

Definition at line 75 of file PassRegistry.cpp.

References Lock.


Member Function Documentation

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

Definition at line 187 of file PassRegistry.cpp.

References Lock.

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

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

Definition at line 130 of file PassRegistry.cpp.

References 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 89 of file PassRegistry.cpp.

References 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 35 of file PassRegistry.cpp.

References PassRegistryObj.

Referenced by llvm::PMDataManager::add(), llvm::TargetPassConfig::addMachinePasses(), 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::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::MachineDominatorTree::MachineDominatorTree(), llvm::MachineFunctionAnalysis::MachineFunctionAnalysis(), llvm::MachineLoopInfo::MachineLoopInfo(), llvm::MachineModuleInfo::MachineModuleInfo(), llvm::MemoryDependenceAnalysis::MemoryDependenceAnalysis(), llvm::objcarc::ObjCARCAliasAnalysis::ObjCARCAliasAnalysis(), llvm::PassRegistrationListener::PassRegistrationListener(), llvm::PEI::PEI(), llvm::PostDominatorTree::PostDominatorTree(), llvm::PMDataManager::recordAvailableAnalysis(), llvm::RegionInfo::RegionInfo(), 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(), llvm::UnifyFunctionExitNodes::UnifyFunctionExitNodes(), and llvm::PassRegistrationListener::~PassRegistrationListener().

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 101 of file PassRegistry.cpp.

References llvm::PassInfo::getPassArgument(), llvm::PassInfo::getTypeInfo(), I, and Lock.

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

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

Definition at line 193 of file PassRegistry.cpp.

References I, and Lock.

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

registerPass - Unregister a pass (by means of its PassInfo) with the registry.

Definition at line 118 of file PassRegistry.cpp.

References llvm::PassInfo::getPassArgument(), llvm::PassInfo::getTypeInfo(), I, and Lock.


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