LLVM API Documentation

Public Member Functions
llvm::detail::PassConcept< IRUnitT, AnalysisManagerT > Struct Template Reference

Template for the abstract base class used to dispatch polymorphically over pass objects. More...

#include <PassManager.h>

Inheritance diagram for llvm::detail::PassConcept< IRUnitT, AnalysisManagerT >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual ~PassConcept ()
virtual PreservedAnalyses run (IRUnitT IR, AnalysisManagerT *AM)=0
 The polymorphic API which runs the pass over a given IR entity.
virtual StringRef name ()=0
 Polymorphic method to access the name of a pass.

Detailed Description

template<typename IRUnitT, typename AnalysisManagerT>
struct llvm::detail::PassConcept< IRUnitT, AnalysisManagerT >

Template for the abstract base class used to dispatch polymorphically over pass objects.

Definition at line 160 of file IR/PassManager.h.


Constructor & Destructor Documentation

template<typename IRUnitT , typename AnalysisManagerT >
virtual llvm::detail::PassConcept< IRUnitT, AnalysisManagerT >::~PassConcept ( ) [inline, virtual]

Definition at line 162 of file IR/PassManager.h.


Member Function Documentation

template<typename IRUnitT , typename AnalysisManagerT >
virtual StringRef llvm::detail::PassConcept< IRUnitT, AnalysisManagerT >::name ( ) [pure virtual]
template<typename IRUnitT , typename AnalysisManagerT >
virtual PreservedAnalyses llvm::detail::PassConcept< IRUnitT, AnalysisManagerT >::run ( IRUnitT  IR,
AnalysisManagerT *  AM 
) [pure virtual]

The polymorphic API which runs the pass over a given IR entity.

Note that actual pass object can omit the analysis manager argument if desired. Also that the analysis manager may be null if there is no analysis manager in the pass pipeline.

Implemented in llvm::detail::PassModel< IRUnitT, AnalysisManagerT, PassT, false >, and llvm::detail::PassModel< IRUnitT, AnalysisManagerT, PassT, true >.


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