|
LLVM 24.0.0git
|
Template for the abstract base class used to dispatch over pass objects. More...
#include "llvm/IR/PassManagerInternal.h"
Classes | |
| struct | Deleter |
Public Types | |
| using | unique_ptr = std::unique_ptr<PassConcept, Deleter> |
Public Member Functions | |
| 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, DestroyTy Destroy, RunTy Run, PrintPipelineTy PrintPipeline) | |
| void | operator delete (void *P) |
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.
| using llvm::detail::PassConcept< IRUnitT, AnalysisManagerT, ExtraArgTs >::unique_ptr = std::unique_ptr<PassConcept, Deleter> |
Definition at line 56 of file PassManagerInternal.h.
|
inlineprotected |
Definition at line 67 of file PassManagerInternal.h.
Referenced by llvm::detail::PassConcept< IRUnitT, AnalysisManagerT, ExtraArgTs >::Deleter::operator()().
|
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 101 of file PassManagerInternal.h.
|
inline |
Get name of a pass.
Definition at line 93 of file PassManagerInternal.h.
|
inlineprotected |
Definition at line 74 of file PassManagerInternal.h.
|
delete |
|
inline |
Definition at line 87 of file PassManagerInternal.h.
|
inline |
Run the pass.
Definition at line 82 of file PassManagerInternal.h.