LLVM 20.0.0git
Public Member Functions | List of all members
llvm::PassInstrumentation Class Reference

This class provides instrumentation entry points for the Pass Manager, doing calls to callbacks registered in PassInstrumentationCallbacks. More...

#include "llvm/IR/PassInstrumentation.h"

Public Member Functions

 PassInstrumentation (PassInstrumentationCallbacks *CB=nullptr)
 Callbacks object is not owned by PassInstrumentation, its life-time should at least match the life-time of corresponding PassInstrumentationAnalysis (which usually is till the end of current compilation).
 
template<typename IRUnitT , typename PassT >
bool runBeforePass (const PassT &Pass, const IRUnitT &IR) const
 BeforePass instrumentation point - takes Pass instance to be executed and constant reference to IR it operates on.
 
template<typename IRUnitT , typename PassT >
void runAfterPass (const PassT &Pass, const IRUnitT &IR, const PreservedAnalyses &PA) const
 AfterPass instrumentation point - takes Pass instance that has just been executed and constant reference to IR it operates on.
 
template<typename IRUnitT , typename PassT >
void runAfterPassInvalidated (const PassT &Pass, const PreservedAnalyses &PA) const
 AfterPassInvalidated instrumentation point - takes Pass instance that has just been executed.
 
template<typename IRUnitT , typename PassT >
void runBeforeAnalysis (const PassT &Analysis, const IRUnitT &IR) const
 BeforeAnalysis instrumentation point - takes Analysis instance to be executed and constant reference to IR it operates on.
 
template<typename IRUnitT , typename PassT >
void runAfterAnalysis (const PassT &Analysis, const IRUnitT &IR) const
 AfterAnalysis instrumentation point - takes Analysis instance that has just been executed and constant reference to IR it operated on.
 
template<typename IRUnitT , typename PassT >
void runAnalysisInvalidated (const PassT &Analysis, const IRUnitT &IR) const
 AnalysisInvalidated instrumentation point - takes Analysis instance that has just been invalidated and constant reference to IR it operated on.
 
void runAnalysesCleared (StringRef Name) const
 AnalysesCleared instrumentation point - takes name of IR that analyses operated on.
 
template<typename IRUnitT , typename... ExtraArgsT>
bool invalidate (IRUnitT &, const class llvm::PreservedAnalyses &, ExtraArgsT...)
 Handle invalidation from the pass manager when PassInstrumentation is used as the result of PassInstrumentationAnalysis.
 
template<typename CallableT >
void pushBeforeNonSkippedPassCallback (CallableT C)
 
void popBeforeNonSkippedPassCallback ()
 
StringRef getPassNameForClassName (StringRef ClassName) const
 Get the pass name for a given pass class name.
 

Detailed Description

This class provides instrumentation entry points for the Pass Manager, doing calls to callbacks registered in PassInstrumentationCallbacks.

Definition at line 199 of file PassInstrumentation.h.

Constructor & Destructor Documentation

◆ PassInstrumentation()

llvm::PassInstrumentation::PassInstrumentation ( PassInstrumentationCallbacks CB = nullptr)
inline

Callbacks object is not owned by PassInstrumentation, its life-time should at least match the life-time of corresponding PassInstrumentationAnalysis (which usually is till the end of current compilation).

Definition at line 227 of file PassInstrumentation.h.

Member Function Documentation

◆ getPassNameForClassName()

StringRef llvm::PassInstrumentation::getPassNameForClassName ( StringRef  ClassName) const
inline

Get the pass name for a given pass class name.

Definition at line 337 of file PassInstrumentation.h.

References llvm::PassInstrumentationCallbacks::getPassNameForClassName().

Referenced by llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run().

◆ invalidate()

template<typename IRUnitT , typename... ExtraArgsT>
bool llvm::PassInstrumentation::invalidate ( IRUnitT &  ,
const class llvm::PreservedAnalyses ,
ExtraArgsT...   
)
inline

Handle invalidation from the pass manager when PassInstrumentation is used as the result of PassInstrumentationAnalysis.

On attempt to invalidate just return false. There is nothing to become invalid here.

Definition at line 321 of file PassInstrumentation.h.

◆ popBeforeNonSkippedPassCallback()

void llvm::PassInstrumentation::popBeforeNonSkippedPassCallback ( )
inline

◆ pushBeforeNonSkippedPassCallback()

template<typename CallableT >
void llvm::PassInstrumentation::pushBeforeNonSkippedPassCallback ( CallableT  C)
inline

◆ runAfterAnalysis()

template<typename IRUnitT , typename PassT >
void llvm::PassInstrumentation::runAfterAnalysis ( const PassT &  Analysis,
const IRUnitT &  IR 
) const
inline

AfterAnalysis instrumentation point - takes Analysis instance that has just been executed and constant reference to IR it operated on.

Definition at line 291 of file PassInstrumentation.h.

References Analysis, llvm::CallingConv::C, and IR.

◆ runAfterPass()

template<typename IRUnitT , typename PassT >
void llvm::PassInstrumentation::runAfterPass ( const PassT &  Pass,
const IRUnitT &  IR,
const PreservedAnalyses PA 
) const
inline

AfterPass instrumentation point - takes Pass instance that has just been executed and constant reference to IR it operates on.

IR is guaranteed to be valid at this point.

Definition at line 261 of file PassInstrumentation.h.

References llvm::CallingConv::C, and IR.

Referenced by llvm::FunctionToLoopPassAdaptor::run(), llvm::FunctionToMachineFunctionPassAdaptor::run(), llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run(), llvm::CGSCCToFunctionPassAdaptor::run(), llvm::DevirtSCCRepeatedPass::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor::run(), and llvm::ModuleToFunctionPassAdaptor::run().

◆ runAfterPassInvalidated()

template<typename IRUnitT , typename PassT >
void llvm::PassInstrumentation::runAfterPassInvalidated ( const PassT &  Pass,
const PreservedAnalyses PA 
) const
inline

AfterPassInvalidated instrumentation point - takes Pass instance that has just been executed.

For use when IR has been invalidated by Pass execution.

Definition at line 272 of file PassInstrumentation.h.

References llvm::CallingConv::C.

Referenced by llvm::FunctionToLoopPassAdaptor::run(), llvm::DevirtSCCRepeatedPass::run(), llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run(), and llvm::ModuleToPostOrderCGSCCPassAdaptor::run().

◆ runAnalysesCleared()

void llvm::PassInstrumentation::runAnalysesCleared ( StringRef  Name) const
inline

AnalysesCleared instrumentation point - takes name of IR that analyses operated on.

Definition at line 309 of file PassInstrumentation.h.

References llvm::CallingConv::C, and Name.

◆ runAnalysisInvalidated()

template<typename IRUnitT , typename PassT >
void llvm::PassInstrumentation::runAnalysisInvalidated ( const PassT &  Analysis,
const IRUnitT &  IR 
) const
inline

AnalysisInvalidated instrumentation point - takes Analysis instance that has just been invalidated and constant reference to IR it operated on.

Definition at line 301 of file PassInstrumentation.h.

References Analysis, llvm::CallingConv::C, and IR.

◆ runBeforeAnalysis()

template<typename IRUnitT , typename PassT >
void llvm::PassInstrumentation::runBeforeAnalysis ( const PassT &  Analysis,
const IRUnitT &  IR 
) const
inline

BeforeAnalysis instrumentation point - takes Analysis instance to be executed and constant reference to IR it operates on.

Definition at line 282 of file PassInstrumentation.h.

References Analysis, llvm::CallingConv::C, and IR.

◆ runBeforePass()

template<typename IRUnitT , typename PassT >
bool llvm::PassInstrumentation::runBeforePass ( const PassT &  Pass,
const IRUnitT &  IR 
) const
inline

BeforePass instrumentation point - takes Pass instance to be executed and constant reference to IR it operates on.

\Returns true if pass is allowed to be executed. These are only run on optional pass since required passes must always be run. This allows these callbacks to print info when they want to skip a pass.

Definition at line 236 of file PassInstrumentation.h.

References llvm::CallingConv::C, and IR.

Referenced by llvm::FunctionToLoopPassAdaptor::run(), llvm::FunctionToMachineFunctionPassAdaptor::run(), llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run(), llvm::CGSCCToFunctionPassAdaptor::run(), llvm::DevirtSCCRepeatedPass::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor::run(), and llvm::ModuleToFunctionPassAdaptor::run().


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