|
LLVM 23.0.0git
|
A template wrapper used to implement the polymorphic API. More...
#include "llvm/IR/PassManagerInternal.h"
Public Member Functions | |
| PassModel (PassT Pass) | |
| PreservedAnalyses | run (IRUnitT &IR, AnalysisManagerT &AM, ExtraArgTs... ExtraArgs) override |
| The polymorphic API which runs the pass over a given IR entity. | |
| void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) override |
| StringRef | name () const override |
| Polymorphic method to access the name of a pass. | |
| bool | isRequired () const override |
| Polymorphic method to let a pass optionally exempted from skipping by PassInstrumentation. | |
| Public Member Functions inherited from llvm::detail::PassConcept< IRUnitT, AnalysisManagerT, ExtraArgTs... > | |
| PassConcept ()=default | |
| virtual | ~PassConcept ()=default |
| PassConcept (const PassConcept &)=delete | |
| PassConcept & | operator= (const PassConcept &)=delete |
Public Attributes | |
| PassT | Pass |
A template wrapper used to implement the polymorphic API.
Can be instantiated for any object which provides a run method accepting an IRUnitT& and an AnalysisManager<IRUnit>&. It requires the pass to be a copyable object.
Definition at line 80 of file PassManagerInternal.h.
|
inlineexplicit |
Definition at line 81 of file PassManagerInternal.h.
References llvm::move(), and Pass.
|
inlineoverridevirtual |
Polymorphic method to let a pass optionally 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.
Implements llvm::detail::PassConcept< IRUnitT, AnalysisManagerT, ExtraArgTs... >.
Definition at line 96 of file PassManagerInternal.h.
|
inlineoverridevirtual |
Polymorphic method to access the name of a pass.
Implements llvm::detail::PassConcept< IRUnitT, AnalysisManagerT, ExtraArgTs... >.
Definition at line 94 of file PassManagerInternal.h.
|
inlineoverridevirtual |
Implements llvm::detail::PassConcept< IRUnitT, AnalysisManagerT, ExtraArgTs... >.
Definition at line 88 of file PassManagerInternal.h.
References Pass.
|
inlineoverridevirtual |
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.
Implements llvm::detail::PassConcept< IRUnitT, AnalysisManagerT, ExtraArgTs... >.
Definition at line 83 of file PassManagerInternal.h.
| PassT llvm::detail::PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs >::Pass |
Definition at line 98 of file PassManagerInternal.h.
Referenced by PassModel(), printPipeline(), and run().