LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::RegisterAGBase Class Reference

#include <PassSupport.h>

Inheritance diagram for llvm::RegisterAGBase:

Inheritance graph
[legend]
Collaboration diagram for llvm::RegisterAGBase:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ~RegisterAGBase ()

Protected Member Functions

 RegisterAGBase (const std::type_info &Interface, const std::type_info *Pass=0, bool isDefault=false)
void setGroupName (const char *Name)

Detailed Description

RegisterAnalysisGroup - Register a Pass as a member of an analysis _group_. Analysis groups are used to define an interface (which need not derive from Pass) that is required by passes to do their job. Analysis Groups differ from normal analyses because any available implementation of the group will be used if it is available.

If no analysis implementing the interface is available, a default implementation is created and added. A pass registers itself as the default implementation by specifying 'true' as the third template argument of this class.

In addition to registering itself as an analysis group member, a pass must register itself normally as well. Passes may be members of multiple groups and may still be "required" specifically by name.

The actual interface may also be registered as well (by not specifying the second template argument). The interface should be registered to associate a nice name with the interface.

Definition at line 319 of file PassSupport.h.


Constructor & Destructor Documentation

RegisterAGBase::RegisterAGBase const std::type_info &  Interface,
const std::type_info *  Pass = 0,
bool  isDefault = false
[protected]
 

Definition at line 386 of file Pass.cpp.

References llvm::PassInfo::addInterfaceImplemented(), llvm::PassInfo::AnalysisGroup, AnalysisGroupInfo::DefaultImpl, llvm::PassInfo::getNormalCtor(), llvm::PassInfo::getPassType(), AnalysisGroupInfo::Implementations, llvm::Pass::lookupPassInfo(), llvm::RegisterPassBase::PIObj, llvm::RegisterPassBase::registerPass(), and llvm::PassInfo::setNormalCtor().

RegisterAGBase::~RegisterAGBase  ) 
 

Definition at line 434 of file Pass.cpp.

References AnalysisGroupInfo::DefaultImpl, AnalysisGroupInfo::Implementations, and llvm::RegisterPassBase::unregisterPass().


Member Function Documentation

void RegisterAGBase::setGroupName const char *  Name  )  [protected]
 

Definition at line 429 of file Pass.cpp.

References llvm::PassInfo::getPassName(), and llvm::PassInfo::setPassName().

Referenced by llvm::RegisterAnalysisGroup< Interface, void, false >::RegisterAnalysisGroup().


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