|
LLVM 23.0.0git
|
Template for the abstract base class used to dispatch over pass objects. More...
#include "llvm/IR/PassManagerInternal.h"
Public Member Functions | |
| ~PassConcept () | |
| PassConcept (const PassConcept &)=delete | |
| PassConcept & | operator= (const PassConcept &)=delete |
| PreservedAnalyses | run (IRUnitT &IR, AnalysisManagerT &AM, ExtraArgTs... ExtraArgs) |
| Run the pass. | |
| void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
| StringRef | name () const |
| Get name of a pass. | |
| bool | isRequired () const |
| Indicate whether a pass can optionally be exempted from skipping by PassInstrumentation. | |
Protected Member Functions | |
| PassConcept (StringRef Name, bool IsRequired, DestructorTy Destructor, RunTy Run, PrintPipelineTy PrintPipeline) | |
Template for the abstract base class used to dispatch over pass objects.
This doesn't use virtual functions to avoid vtables, which cost a fair amount of storage that needs to be relocated in PIC builds and add an extra indirection on dispatch.
Definition at line 42 of file PassManagerInternal.h.
|
inlineprotected |
Definition at line 59 of file PassManagerInternal.h.
|
inline |
Definition at line 66 of file PassManagerInternal.h.
|
delete |
|
inline |
Indicate whether a pass can optionally be exempted from skipping by PassInstrumentation.
To opt-in, pass should implement static bool isRequired(), or inherit from RequiredPassInfoMixin or OptionalPassInfoMixin. It's no-op to have isRequired always return false since that is the default.
Definition at line 92 of file PassManagerInternal.h.
|
inline |
Get name of a pass.
Definition at line 84 of file PassManagerInternal.h.
|
delete |
|
inline |
Definition at line 78 of file PassManagerInternal.h.
|
inline |
Run the pass.
Definition at line 73 of file PassManagerInternal.h.