Go to the documentation of this file.
17 #ifndef LLVM_CODEGEN_MACHINEPASSREGISTRY_H
18 #define LLVM_CODEGEN_MACHINEPASSREGISTRY_H
33 virtual void anchor() {}
57 : Name(
N), Description(
D), Ctor(
C) {}
64 PassCtorTy
getCtor()
const {
return Ctor; }
91 PassCtorTy Ctor =
nullptr;
94 if (R->getName() == Name) {
99 assert(Ctor &&
"Unregistered pass name");
111 Node->getDescription());
118 I = (*I)->getNextAddress()) {
122 *
I = (*I)->getNext();
134 template <
class RegistryClass>
137 typename RegistryClass::FunctionPassCtor>,
138 public cl::parser<typename RegistryClass::FunctionPassCtor> {
148 for (RegistryClass *
Node = RegistryClass::getList();
151 (
typename RegistryClass::FunctionPassCtor)
Node->getCtor(),
152 Node->getDescription());
156 RegistryClass::setListener(
this);
171 #endif // LLVM_CODEGEN_MACHINEPASSREGISTRY_H
MachinePassRegistryNode ** getNextAddress()
This is an optimization pass for GlobalISel generic memory operations.
virtual void NotifyAdd(StringRef N, PassCtorTy C, StringRef D)=0
void setDefault(PassCtorTy C)
void Add(MachinePassRegistryNode< PassCtorTy > *Node)
Add - Adds a function pass to the registration list.
MachinePassRegistryListener - Listener to adds and removals of nodes in registration list.
MachinePassRegistryListener()=default
virtual ~MachinePassRegistryListener()=default
PassCtorTy getCtor() const
RegisterPassParser(cl::Option &O)
void removeLiteralOption(StringRef Name)
Remove the specified option.
(vector float) vec_cmpeq(*A, *B) C
MachinePassRegistryNode(const char *N, const char *D, PassCtorTy C)
void NotifyAdd(StringRef N, typename RegistryClass::FunctionPassCtor C, StringRef D) override
void Remove(MachinePassRegistryNode< PassCtorTy > *Node)
Remove - Removes a function pass from the registration list.
StringRef getDescription() const
RegisterPassParser class - Handle the addition of new machine passes.
MachinePassRegistryNode - Machine pass node stored in registration list.
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
~RegisterPassParser() override
void setNext(MachinePassRegistryNode *N)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
void addLiteralOption(StringRef Name, const DT &V, StringRef HelpStr)
Add an entry to the mapping table.
void setListener(MachinePassRegistryListener< PassCtorTy > *L)
MachinePassRegistry - Track the registration of machine passes.
StringRef - Represent a constant reference to a string, i.e.
http eax xorl edx cl sete al setne dl sall cl
MachinePassRegistryNode< PassCtorTy > * getList()
virtual void NotifyRemove(StringRef N)=0
void NotifyRemove(StringRef N) override
StringRef getName() const
void setDefault(StringRef Name)
setDefault - Set the default constructor by name.
MachinePassRegistryNode * getNext() const