LLVM  3.7.0
Public Member Functions | List of all members
llvm::detail::PassConcept< IRUnitT > Struct Template Referenceabstract

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

#include <PassManagerInternal.h>

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

Public Member Functions

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

Detailed Description

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

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

Definition at line 34 of file PassManagerInternal.h.

Constructor & Destructor Documentation

template<typename IRUnitT >
virtual llvm::detail::PassConcept< IRUnitT >::~PassConcept ( )
inlinevirtual

Definition at line 36 of file PassManagerInternal.h.

Member Function Documentation

template<typename IRUnitT >
virtual StringRef llvm::detail::PassConcept< IRUnitT >::name ( )
pure virtual
template<typename IRUnitT >
virtual PreservedAnalyses llvm::detail::PassConcept< IRUnitT >::run ( IRUnitT &  IR,
AnalysisManager< IRUnitT > *  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, PassT, PreservedAnalysesT, false >, and llvm::detail::PassModel< IRUnitT, PassT, PreservedAnalysesT, true >.


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