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

Methods

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...)

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...