class OuterAnalysisManagerProxy
Declaration
template <typename AnalysisManagerT,
typename IRUnitT,
typename... ExtraArgTs>
class OuterAnalysisManagerProxy { /* full declaration omitted */ };
Description
This proxy doesn't manage invalidation in any way -- that is handled by the recursive return path of each layer of the pass manager. A consequence of this is the outer analyses may be stale. We invalidate the outer analyses only when we're done running passes over the inner IR units.
Declared at: llvm/include/llvm/IR/PassManager.h:1062
Templates
- AnalysisManagerT
- IRUnitT
- ExtraArgTs
Member Variables
- private const AnalysisManagerT* OuterAM
- private static llvm::AnalysisKey Key
Method Overview
- public OuterAnalysisManagerProxy<AnalysisManagerT, IRUnitT, ExtraArgTs...>(const AnalysisManagerT & OuterAM)
- public llvm::OuterAnalysisManagerProxy::Result run(IRUnitT &, AnalysisManager<IRUnitT, ExtraArgTs...> &, ExtraArgTs...)
Methods
¶OuterAnalysisManagerProxy<AnalysisManagerT,
IRUnitT,
ExtraArgTs...>(
const AnalysisManagerT& OuterAM)
OuterAnalysisManagerProxy<AnalysisManagerT,
IRUnitT,
ExtraArgTs...>(
const AnalysisManagerT& OuterAM)
Declared at: llvm/include/llvm/IR/PassManager.h:1146
Parameters
- const AnalysisManagerT& OuterAM
¶llvm::OuterAnalysisManagerProxy::Result run(
IRUnitT&,
AnalysisManager<IRUnitT, ExtraArgTs...>&,
ExtraArgTs...)
llvm::OuterAnalysisManagerProxy::Result run(
IRUnitT&,
AnalysisManager<IRUnitT, ExtraArgTs...>&,
ExtraArgTs...)
Description
Run the analysis pass and create our proxy result object. Nothing to see here, it just forwards the \c OuterAM reference into the result.
Declared at: llvm/include/llvm/IR/PassManager.h:1152
Parameters
- IRUnitT&
- AnalysisManager<IRUnitT, ExtraArgTs...>&
- ExtraArgTs...