LLVM: llvm::RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs (original) (raw)
template<typename AnalysisT, typename IRUnitT, typename AnalysisManagerT = AnalysisManager, typename... ExtraArgTs>
struct llvm::RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs >
A utility pass template to force an analysis result to be available.
If there are extra arguments at the pass's run level there may also be extra arguments to the analysis manager's getResult routine. We can't guess how to effectively map the arguments from one to the other, and so this specialization just ignores them.
Specific patterns of run-method extra arguments and analysis manager extra arguments will have to be defined as appropriate specializations.
Definition at line 900 of file PassManager.h.
template<typename AnalysisT, typename IRUnitT, typename AnalysisManagerT = AnalysisManager, typename... ExtraArgTs>
Run this pass over some unit of IR.
This pass can be run over any unit of IR and use any analysis manager provided they satisfy the basic API requirements. When this pass is created, these methods can be instantiated to satisfy whatever the context requires.
Definition at line 909 of file PassManager.h.
References llvm::PreservedAnalyses::all().