struct PassModel
Declaration
template <typename IRUnitT,
typename PassT,
typename PreservedAnalysesT,
typename AnalysisManagerT,
typename... ExtraArgTs>
struct PassModel { /* full declaration omitted */ };
Description
A template wrapper used to implement the polymorphic API. Can be instantiated for any object which provides a \c run method accepting an \c IRUnitT& and an \c AnalysisManager<IRUnit>&. It requires the pass to be a copyable object.
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:69
Templates
- IRUnitT
- PassT
- PreservedAnalysesT
- AnalysisManagerT
- ExtraArgTs
Member Variables
- public PassT Pass
Method Overview
- public PassModel<IRUnitT, PassT, PreservedAnalysesT, AnalysisManagerT, ExtraArgTs...>(PassT Pass)
- public PassModel<IRUnitT, PassT, PreservedAnalysesT, AnalysisManagerT, ExtraArgTs...>(const PassModel<IRUnitT, PassT, PreservedAnalysesT, AnalysisManagerT, ExtraArgTs...> & Arg)
- public PassModel<IRUnitT, PassT, PreservedAnalysesT, AnalysisManagerT, ExtraArgTs...>(PassModel<IRUnitT, PassT, PreservedAnalysesT, AnalysisManagerT, ExtraArgTs...> && Arg)
- public bool isRequired() const
- public llvm::StringRef name() const
- public template <typename T>static std::enable_if_t<is_detected<has_required_t, T>::value, bool> passIsRequiredImpl()
- public template <typename T>static std::enable_if_t<!is_detected<has_required_t, T>::value, bool> passIsRequiredImpl()
- public void printPipeline(llvm::raw_ostream & OS, function_ref<llvm::StringRef (llvm::StringRef)> MapClassName2PassName)
- public PreservedAnalysesT run(IRUnitT & IR, AnalysisManagerT & AM, ExtraArgTs... ExtraArgs)
Methods
¶PassModel<IRUnitT,
PassT,
PreservedAnalysesT,
AnalysisManagerT,
ExtraArgTs...>(PassT Pass)
PassModel<IRUnitT,
PassT,
PreservedAnalysesT,
AnalysisManagerT,
ExtraArgTs...>(PassT Pass)
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:70
Parameters
- PassT Pass
¶PassModel<IRUnitT,
PassT,
PreservedAnalysesT,
AnalysisManagerT,
ExtraArgTs...>(
const PassModel<IRUnitT,
PassT,
PreservedAnalysesT,
AnalysisManagerT,
ExtraArgTs...>& Arg)
PassModel<IRUnitT,
PassT,
PreservedAnalysesT,
AnalysisManagerT,
ExtraArgTs...>(
const PassModel<IRUnitT,
PassT,
PreservedAnalysesT,
AnalysisManagerT,
ExtraArgTs...>& Arg)
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:73
Parameters
- const PassModel<IRUnitT, PassT, PreservedAnalysesT, AnalysisManagerT, ExtraArgTs...>& Arg
¶PassModel<IRUnitT,
PassT,
PreservedAnalysesT,
AnalysisManagerT,
ExtraArgTs...>(
PassModel<IRUnitT,
PassT,
PreservedAnalysesT,
AnalysisManagerT,
ExtraArgTs...>&& Arg)
PassModel<IRUnitT,
PassT,
PreservedAnalysesT,
AnalysisManagerT,
ExtraArgTs...>(
PassModel<IRUnitT,
PassT,
PreservedAnalysesT,
AnalysisManagerT,
ExtraArgTs...>&& Arg)
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:74
Parameters
- PassModel<IRUnitT, PassT, PreservedAnalysesT, AnalysisManagerT, ExtraArgTs...>&& Arg
¶bool isRequired() const
bool isRequired() const
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:113
¶llvm::StringRef name() const
llvm::StringRef name() const
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:97
¶template <typename T>
static std::enable_if_t<
is_detected<has_required_t, T>::value,
bool>
passIsRequiredImpl()
template <typename T>
static std::enable_if_t<
is_detected<has_required_t, T>::value,
bool>
passIsRequiredImpl()
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:104
Templates
- T
¶template <typename T>
static std::enable_if_t<
!is_detected<has_required_t, T>::value,
bool>
passIsRequiredImpl()
template <typename T>
static std::enable_if_t<
!is_detected<has_required_t, T>::value,
bool>
passIsRequiredImpl()
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:109
Templates
- T
¶void printPipeline(
llvm::raw_ostream& OS,
function_ref<llvm::StringRef(llvm::StringRef)>
MapClassName2PassName)
void printPipeline(
llvm::raw_ostream& OS,
function_ref<llvm::StringRef(llvm::StringRef)>
MapClassName2PassName)
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:91
Parameters
- llvm::raw_ostream& OS
- function_ref<llvm::StringRef(llvm::StringRef)> MapClassName2PassName
¶PreservedAnalysesT run(IRUnitT& IR,
AnalysisManagerT& AM,
ExtraArgTs... ExtraArgs)
PreservedAnalysesT run(IRUnitT& IR,
AnalysisManagerT& AM,
ExtraArgTs... ExtraArgs)
Declared at: llvm/include/llvm/IR/PassManagerInternal.h:86
Parameters
- IRUnitT& IR
- AnalysisManagerT& AM
- ExtraArgTs... ExtraArgs