LLVM 20.0.0git
Public Member Functions | Static 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]

Public Member Functions

PreservedAnalyses run (IRUnitT &Arg, AnalysisManagerT &AM, ExtraArgTs &&... Args)
 Run this pass over some unit of IR.
 
void printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
 
- Public Member Functions inherited from llvm::PassInfoMixin< DerivedT >
void printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
 

Static Public Member Functions

static bool isRequired ()
 
- Static Public Member Functions inherited from llvm::PassInfoMixin< DerivedT >
static StringRef name ()
 Gets the name of the pass we are mixed into.
 

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

Member Function Documentation

◆ isRequired()

template<typename AnalysisT , typename IRUnitT , typename AnalysisManagerT = AnalysisManager<IRUnitT>, typename... ExtraArgTs>
static bool llvm::RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs >::isRequired ( )
inlinestatic

Definition at line 894 of file PassManager.h.

◆ printPipeline()

template<typename AnalysisT , typename IRUnitT , typename AnalysisManagerT = AnalysisManager<IRUnitT>, typename... ExtraArgTs>
void llvm::RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs >::printPipeline ( raw_ostream OS,
function_ref< StringRef(StringRef)>  MapClassName2PassName 
)
inline

Definition at line 888 of file PassManager.h.

References OS, and PassName.

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

References llvm::PreservedAnalyses::all().


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