class IdentifyingPassPtr
Declaration
class IdentifyingPassPtr { /* full declaration omitted */ };
Description
Discriminated union of Pass ID types. The PassConfig API prefers dealing with IDs because they are safer and more efficient. IDs decouple configuration from instantiation. This way, when a pass is overriden, it isn't unnecessarily instantiated. It is also unsafe to refer to a Pass pointer after adding it to a pass manager, which deletes redundant pass instances. However, it is convient to directly instantiate target passes with non-default ctors. These often don't have a registered PassInfo. Rather than force all target passes to implement the pass registry boilerplate, allow the PassConfig API to handle either type. AnalysisID is sadly char*, so PointerIntPair won't work.
Declared at: llvm/include/llvm/CodeGen/TargetPassConfig.h:52
Method Overview
- public IdentifyingPassPtr()
- public IdentifyingPassPtr(llvm::AnalysisID IDPtr)
- public IdentifyingPassPtr(llvm::Pass * InstancePtr)
- public llvm::AnalysisID getID() const
- public llvm::Pass * getInstance() const
- public bool isInstance() const
- public bool isValid() const
Methods
¶IdentifyingPassPtr()
IdentifyingPassPtr()
Declared at: llvm/include/llvm/CodeGen/TargetPassConfig.h:60
¶IdentifyingPassPtr(llvm::AnalysisID IDPtr)
IdentifyingPassPtr(llvm::AnalysisID IDPtr)
Declared at: llvm/include/llvm/CodeGen/TargetPassConfig.h:61
Parameters
- llvm::AnalysisID IDPtr
¶IdentifyingPassPtr(llvm::Pass* InstancePtr)
IdentifyingPassPtr(llvm::Pass* InstancePtr)
Declared at: llvm/include/llvm/CodeGen/TargetPassConfig.h:62
Parameters
- llvm::Pass* InstancePtr
¶llvm::AnalysisID getID() const
llvm::AnalysisID getID() const
Declared at: llvm/include/llvm/CodeGen/TargetPassConfig.h:67
¶llvm::Pass* getInstance() const
llvm::Pass* getInstance() const
Declared at: llvm/include/llvm/CodeGen/TargetPassConfig.h:72
¶bool isInstance() const
bool isInstance() const
Declared at: llvm/include/llvm/CodeGen/TargetPassConfig.h:65
¶bool isValid() const
bool isValid() const
Declared at: llvm/include/llvm/CodeGen/TargetPassConfig.h:64