struct PassConcept
Declaration
template <typename IRUnitT,
typename AnalysisManagerT,
typename... ExtraArgTs>
struct PassConcept { /* full declaration omitted */ };
Description
Template for the abstract base class used to dispatch polymorphically over pass objects.
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:37
Templates
- IRUnitT
- AnalysisManagerT
- ExtraArgTs
Method Overview
- public virtual bool isRequired() const
- public virtual llvm::StringRef name() const
- public virtual void printPipeline(llvm::raw_ostream & OS, function_ref<llvm::StringRef (llvm::StringRef)> MapClassName2PassName)
- public virtual llvm::PreservedAnalyses run(IRUnitT & IR, AnalysisManagerT & AM, ExtraArgTs... ExtraArgs)
- public virtual ~PassConcept<IRUnitT, AnalysisManagerT, ExtraArgTs...>()
Methods
¶virtual bool isRequired() const
virtual bool isRequired() const
Description
Polymorphic method to 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.
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:59
¶virtual llvm::StringRef name() const
virtual llvm::StringRef name() const
Description
Polymorphic method to access the name of a pass.
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:53
¶virtual void printPipeline(
llvm::raw_ostream& OS,
function_ref<llvm::StringRef(llvm::StringRef)>
MapClassName2PassName)
virtual void printPipeline(
llvm::raw_ostream& OS,
function_ref<llvm::StringRef(llvm::StringRef)>
MapClassName2PassName)
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:50
Parameters
- llvm::raw_ostream& OS
- function_ref<llvm::StringRef(llvm::StringRef)> MapClassName2PassName
¶virtual llvm::PreservedAnalyses run(
IRUnitT& IR,
AnalysisManagerT& AM,
ExtraArgTs... ExtraArgs)
virtual llvm::PreservedAnalyses run(
IRUnitT& IR,
AnalysisManagerT& AM,
ExtraArgTs... ExtraArgs)
Description
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.
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:46
Parameters
- IRUnitT& IR
- AnalysisManagerT& AM
- ExtraArgTs... ExtraArgs
¶virtual ~PassConcept<IRUnitT,
AnalysisManagerT,
ExtraArgTs...>()
virtual ~PassConcept<IRUnitT,
AnalysisManagerT,
ExtraArgTs...>()
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:39