struct RequireAnalysisPass
Declaration
template <typename AnalysisT,
typename IRUnitT,
typename AnalysisManagerT = AnalysisManager<IRUnitT>,
typename... ExtraArgTs>
struct RequireAnalysisPass { /* full declaration omitted */ };
Description
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 \c 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.
Declared at: llvm/include/llvm/IR/PassManager.h:1357
Templates
- AnalysisT
- IRUnitT
- AnalysisManagerT = AnalysisManager<IRUnitT>
- ExtraArgTs
Method Overview
- public llvm::PreservedAnalyses run(IRUnitT & Arg, AnalysisManagerT & AM, ExtraArgTs &&... Args)
Methods
ΒΆllvm::PreservedAnalyses run(IRUnitT& Arg,
AnalysisManagerT& AM,
ExtraArgTs&&... Args)
llvm::PreservedAnalyses run(IRUnitT& Arg,
AnalysisManagerT& AM,
ExtraArgTs&&... Args)
Description
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.
Declared at: llvm/include/llvm/IR/PassManager.h:1366
Parameters
- IRUnitT& Arg
- AnalysisManagerT& AM
- ExtraArgTs&&... Args