LLVM  8.0.1
Public Member Functions | List of all members
llvm::RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs > Struct Template Reference

A utility pass template to force an analysis result to be available. More...

#include "llvm/IR/PassManager.h"

Inheritance diagram for llvm::RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs >:
Inheritance graph
[legend]
Collaboration diagram for llvm::RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs >:
Collaboration graph
[legend]

Public Member Functions

PreservedAnalyses run (IRUnitT &Arg, AnalysisManagerT &AM, ExtraArgTs &&... Args)
 Run this pass over some unit of IR. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::PassInfoMixin< RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs... > >
static StringRef name ()
 Gets the name of the pass we are mixed into. More...
 

Detailed Description

template<typename AnalysisT, typename IRUnitT, typename AnalysisManagerT = AnalysisManager<IRUnitT>, 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 1349 of file PassManager.h.

Member Function Documentation

◆ run()

template<typename AnalysisT , typename IRUnitT , typename AnalysisManagerT = AnalysisManager<IRUnitT>, typename... ExtraArgTs>
PreservedAnalyses llvm::RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs >::run ( IRUnitT &  Arg,
AnalysisManagerT &  AM,
ExtraArgTs &&...  Args 
)
inline

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 1358 of file PassManager.h.

References llvm::PreservedAnalyses::all(), and llvm::AMDGPU::HSAMD::Kernel::Key::Args.

Referenced by llvm::FunctionAnalysisManagerCGSCCProxy::Result::getManager().


The documentation for this struct was generated from the following file: