LLVM API Documentation
#include <Passes.h>
Public Member Functions | |
IdentifyingPassPtr () | |
IdentifyingPassPtr (AnalysisID IDPtr) | |
IdentifyingPassPtr (Pass *InstancePtr) | |
bool | isValid () const |
bool | isInstance () const |
AnalysisID | getID () const |
Pass * | getInstance () const |
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.
Definition at line 55 of file CodeGen/Passes.h.
llvm::IdentifyingPassPtr::IdentifyingPassPtr | ( | ) | [inline] |
Definition at line 62 of file CodeGen/Passes.h.
llvm::IdentifyingPassPtr::IdentifyingPassPtr | ( | AnalysisID | IDPtr | ) | [inline] |
Definition at line 63 of file CodeGen/Passes.h.
llvm::IdentifyingPassPtr::IdentifyingPassPtr | ( | Pass * | InstancePtr | ) | [inline] |
Definition at line 64 of file CodeGen/Passes.h.
AnalysisID llvm::IdentifyingPassPtr::getID | ( | ) | const [inline] |
Definition at line 69 of file CodeGen/Passes.h.
References ID.
Referenced by llvm::TargetPassConfig::addPass(), and llvm::TargetPassConfig::insertPass().
Pass* llvm::IdentifyingPassPtr::getInstance | ( | ) | const [inline] |
Definition at line 73 of file CodeGen/Passes.h.
References P.
Referenced by llvm::TargetPassConfig::addPass(), and llvm::TargetPassConfig::insertPass().
bool llvm::IdentifyingPassPtr::isInstance | ( | ) | const [inline] |
Definition at line 67 of file CodeGen/Passes.h.
Referenced by llvm::TargetPassConfig::addPass(), and llvm::TargetPassConfig::insertPass().
bool llvm::IdentifyingPassPtr::isValid | ( | ) | const [inline] |
Definition at line 66 of file CodeGen/Passes.h.
References P.
Referenced by llvm::TargetPassConfig::addPass(), and applyOverride().
Definition at line 57 of file CodeGen/Passes.h.
Referenced by getID().
Definition at line 58 of file CodeGen/Passes.h.
Referenced by getInstance(), and isValid().