18 #ifndef LLVM_CODEGEN_MACHINEPASSREGISTRY_H
19 #define LLVM_CODEGEN_MACHINEPASSREGISTRY_H
26 typedef void *(*MachinePassCtor)();
36 virtual void anchor();
56 const char *Description;
71 const char *
getName()
const {
return Name; }
121 template<
class RegistryClass>
123 public cl::parser<typename RegistryClass::FunctionPassCtor> {
126 : cl::
parser<typename RegistryClass::FunctionPassCtor>(O) {}
133 for (RegistryClass *Node = RegistryClass::getList();
134 Node; Node = Node->getNext()) {
136 (
typename RegistryClass::FunctionPassCtor)Node->getCtor(),
137 Node->getDescription());
141 RegistryClass::setListener(
this);
void NotifyAdd(const char *N, MachinePassCtor C, const char *D) override
~RegisterPassParser() override
void Add(MachinePassRegistryNode *Node)
Add - Adds a function pass to the registration list.
const char * getDescription() const
void *(* MachinePassCtor)()
MachinePassRegistryNode * getList()
RegisterPassParser class - Handle the addition of new machine passes.
virtual ~MachinePassRegistryListener()
MachinePassRegistryNode(const char *N, const char *D, MachinePassCtor C)
void removeLiteralOption(const char *Name)
removeLiteralOption - Remove the specified option.
void NotifyRemove(const char *N) override
const char * getName() const
void setListener(MachinePassRegistryListener *L)
RegisterPassParser(cl::Option &O)
void setNext(MachinePassRegistryNode *N)
MachinePassCtor getDefault()
MachinePassRegistry - Track the registration of machine passes.
MachinePassRegistryListener()
MachinePassRegistryNode * getNext() const
virtual void NotifyRemove(const char *N)=0
virtual void NotifyAdd(const char *N, MachinePassCtor C, const char *D)=0
void Remove(MachinePassRegistryNode *Node)
Remove - Removes a function pass from the registration list.
MachinePassRegistryListener - Listener to adds and removals of nodes in registration list...
MachinePassRegistryNode ** getNextAddress()
MachinePassCtor getCtor() const
MachinePassRegistryNode - Machine pass node stored in registration list.
void addLiteralOption(const char *Name, const DT &V, const char *HelpStr)
addLiteralOption - Add an entry to the mapping table.
StringRef - Represent a constant reference to a string, i.e.
void setDefault(MachinePassCtor C)