LLVM  3.7.0
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
llvm::detail::AnalysisPassModel< IRUnitT, PassT, true > Struct Template Reference

Specialization of AnalysisPassModel which passes an AnalysisManager to PassT's run method. More...

#include <PassManagerInternal.h>

Inheritance diagram for llvm::detail::AnalysisPassModel< IRUnitT, PassT, true >:
[legend]
Collaboration diagram for llvm::detail::AnalysisPassModel< IRUnitT, PassT, true >:
[legend]

Public Types

typedef AnalysisResultModel
< IRUnitT, PassT, typename
PassT::Result > 
ResultModelT
 

Public Member Functions

 AnalysisPassModel (PassT Pass)
 
 AnalysisPassModel (const AnalysisPassModel &Arg)
 
 AnalysisPassModel (AnalysisPassModel &&Arg)
 
AnalysisPassModeloperator= (AnalysisPassModel RHS)
 
std::unique_ptr
< AnalysisResultConcept
< IRUnitT > > 
run (IRUnitT &IR, AnalysisManager< IRUnitT > *AM) override
 The model delegates to the PassT::run method. More...
 
StringRef name () override
 The model delegates to a static PassT::name method. More...
 
- Public Member Functions inherited from llvm::detail::AnalysisPassConcept< IRUnitT >
virtual ~AnalysisPassConcept ()
 

Public Attributes

PassT Pass
 

Friends

void swap (AnalysisPassModel &LHS, AnalysisPassModel &RHS)
 

Detailed Description

template<typename IRUnitT, typename PassT>
struct llvm::detail::AnalysisPassModel< IRUnitT, PassT, true >

Specialization of AnalysisPassModel which passes an AnalysisManager to PassT's run method.

Definition at line 274 of file PassManagerInternal.h.

Member Typedef Documentation

template<typename IRUnitT , typename PassT >
typedef AnalysisResultModel<IRUnitT, PassT, typename PassT::Result> llvm::detail::AnalysisPassModel< IRUnitT, PassT, true >::ResultModelT

Definition at line 291 of file PassManagerInternal.h.

Constructor & Destructor Documentation

template<typename IRUnitT , typename PassT >
llvm::detail::AnalysisPassModel< IRUnitT, PassT, true >::AnalysisPassModel ( PassT  Pass)
inlineexplicit

Definition at line 275 of file PassManagerInternal.h.

template<typename IRUnitT , typename PassT >
llvm::detail::AnalysisPassModel< IRUnitT, PassT, true >::AnalysisPassModel ( const AnalysisPassModel< IRUnitT, PassT, true > &  Arg)
inline

Definition at line 278 of file PassManagerInternal.h.

template<typename IRUnitT , typename PassT >
llvm::detail::AnalysisPassModel< IRUnitT, PassT, true >::AnalysisPassModel ( AnalysisPassModel< IRUnitT, PassT, true > &&  Arg)
inline

Definition at line 279 of file PassManagerInternal.h.

Member Function Documentation

template<typename IRUnitT , typename PassT >
StringRef llvm::detail::AnalysisPassModel< IRUnitT, PassT, true >::name ( )
inlineoverridevirtual

The model delegates to a static PassT::name method.

The returned string ref must point to constant immutable data!

Implements llvm::detail::AnalysisPassConcept< IRUnitT >.

Definition at line 304 of file PassManagerInternal.h.

References name.

template<typename IRUnitT , typename PassT >
AnalysisPassModel& llvm::detail::AnalysisPassModel< IRUnitT, PassT, true >::operator= ( AnalysisPassModel< IRUnitT, PassT, true RHS)
inline

Definition at line 284 of file PassManagerInternal.h.

References std::swap().

template<typename IRUnitT , typename PassT >
std::unique_ptr<AnalysisResultConcept<IRUnitT> > llvm::detail::AnalysisPassModel< IRUnitT, PassT, true >::run ( IRUnitT &  IR,
AnalysisManager< IRUnitT > *  AM 
)
inlineoverridevirtual

The model delegates to the PassT::run method.

The return is wrapped in an AnalysisResultModel.

Implements llvm::detail::AnalysisPassConcept< IRUnitT >.

Definition at line 297 of file PassManagerInternal.h.

Friends And Related Function Documentation

template<typename IRUnitT , typename PassT >
void swap ( AnalysisPassModel< IRUnitT, PassT, true > &  LHS,
AnalysisPassModel< IRUnitT, PassT, true > &  RHS 
)
friend

Definition at line 280 of file PassManagerInternal.h.

Member Data Documentation

template<typename IRUnitT , typename PassT >
PassT llvm::detail::AnalysisPassModel< IRUnitT, PassT, true >::Pass

Definition at line 306 of file PassManagerInternal.h.


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