LLVM 20.0.0git
|
Template for the abstract base class used to dispatch polymorphically over pass objects. More...
#include "llvm/IR/PassManagerInternal.h"
Public Member Functions | |
virtual | ~PassConcept ()=default |
virtual PreservedAnalyses | run (IRUnitT &IR, AnalysisManagerT &AM, ExtraArgTs... ExtraArgs)=0 |
The polymorphic API which runs the pass over a given IR entity. | |
virtual void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)=0 |
virtual StringRef | name () const =0 |
Polymorphic method to access the name of a pass. | |
virtual bool | isRequired () const =0 |
Polymorphic method to let a pass optionally exempted from skipping by PassInstrumentation. | |
Template for the abstract base class used to dispatch polymorphically over pass objects.
Definition at line 39 of file PassManagerInternal.h.
|
virtualdefault |
|
pure virtual |
Polymorphic method to let a pass optionally exempted from skipping by PassInstrumentation.
To opt-in, pass should implement static bool isRequired()
. It's no-op to have isRequired
always return false since that is the default.
Implemented in llvm::detail::PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs >.
|
pure virtual |
Polymorphic method to access the name of a pass.
Implemented in llvm::detail::PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs >.
|
pure virtual |
|
pure virtual |
The polymorphic API which runs the pass over a given IR entity.
Note that actual pass object can omit the analysis manager argument if desired. Also that the analysis manager may be null if there is no analysis manager in the pass pipeline.
Implemented in llvm::detail::PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs >.