LLVM  6.0.0svn
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs > Struct Template Reference

Wrapper to model the analysis pass concept. More...

#include "llvm/IR/PassManagerInternal.h"

Inheritance diagram for llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >:
Inheritance graph
[legend]
Collaboration diagram for llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >:
Collaboration graph
[legend]

Public Types

using ResultModelT = AnalysisResultModel< IRUnitT, PassT, typename PassT::Result, PreservedAnalysesT, InvalidatorT >
 

Public Member Functions

 AnalysisPassModel (PassT Pass)
 
 AnalysisPassModel (const AnalysisPassModel &Arg)
 
 AnalysisPassModel (AnalysisPassModel &&Arg)
 
AnalysisPassModeloperator= (AnalysisPassModel RHS)
 
std::unique_ptr< AnalysisResultConcept< IRUnitT, PreservedAnalysesT, InvalidatorT > > run (IRUnitT &IR, AnalysisManager< IRUnitT, ExtraArgTs... > &AM, ExtraArgTs... ExtraArgs) 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, PreservedAnalysesT, InvalidatorT, ExtraArgTs... >
virtual ~AnalysisPassConcept ()=default
 

Public Attributes

PassT Pass
 

Friends

void swap (AnalysisPassModel &LHS, AnalysisPassModel &RHS)
 

Detailed Description

template<typename IRUnitT, typename PassT, typename PreservedAnalysesT, typename InvalidatorT, typename... ExtraArgTs>
struct llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >

Wrapper to model the analysis pass concept.

Can wrap any type which implements a suitable run method. The method must accept an IRUnitT& and an AnalysisManager<IRUnitT>& as arguments and produce an object which can be wrapped in a AnalysisResultModel.

Definition at line 263 of file PassManagerInternal.h.

Member Typedef Documentation

◆ ResultModelT

template<typename IRUnitT , typename PassT , typename PreservedAnalysesT , typename InvalidatorT , typename... ExtraArgTs>
using llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >::ResultModelT = AnalysisResultModel<IRUnitT, PassT, typename PassT::Result, PreservedAnalysesT, InvalidatorT>

Definition at line 284 of file PassManagerInternal.h.

Constructor & Destructor Documentation

◆ AnalysisPassModel() [1/3]

template<typename IRUnitT , typename PassT , typename PreservedAnalysesT , typename InvalidatorT , typename... ExtraArgTs>
llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >::AnalysisPassModel ( PassT  Pass)
inlineexplicit

Definition at line 265 of file PassManagerInternal.h.

◆ AnalysisPassModel() [2/3]

template<typename IRUnitT , typename PassT , typename PreservedAnalysesT , typename InvalidatorT , typename... ExtraArgTs>
llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >::AnalysisPassModel ( const AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs > &  Arg)
inline

Definition at line 268 of file PassManagerInternal.h.

◆ AnalysisPassModel() [3/3]

template<typename IRUnitT , typename PassT , typename PreservedAnalysesT , typename InvalidatorT , typename... ExtraArgTs>
llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >::AnalysisPassModel ( AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs > &&  Arg)
inline

Definition at line 269 of file PassManagerInternal.h.

Member Function Documentation

◆ name()

template<typename IRUnitT , typename PassT , typename PreservedAnalysesT , typename InvalidatorT , typename... ExtraArgTs>
StringRef llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >::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, PreservedAnalysesT, InvalidatorT, ExtraArgTs... >.

Definition at line 299 of file PassManagerInternal.h.

References name.

◆ operator=()

template<typename IRUnitT , typename PassT , typename PreservedAnalysesT , typename InvalidatorT , typename... ExtraArgTs>
AnalysisPassModel& llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >::operator= ( AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >  RHS)
inline

Definition at line 276 of file PassManagerInternal.h.

References std::swap().

◆ run()

template<typename IRUnitT , typename PassT , typename PreservedAnalysesT , typename InvalidatorT , typename... ExtraArgTs>
std::unique_ptr< AnalysisResultConcept<IRUnitT, PreservedAnalysesT, InvalidatorT> > llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >::run ( IRUnitT &  IR,
AnalysisManager< IRUnitT, ExtraArgTs... > &  AM,
ExtraArgTs...  ExtraArgs 
)
inlineoverridevirtual

The model delegates to the PassT::run method.

The return is wrapped in an AnalysisResultModel.

Implements llvm::detail::AnalysisPassConcept< IRUnitT, PreservedAnalysesT, InvalidatorT, ExtraArgTs... >.

Definition at line 291 of file PassManagerInternal.h.

Friends And Related Function Documentation

◆ swap

template<typename IRUnitT , typename PassT , typename PreservedAnalysesT , typename InvalidatorT , typename... ExtraArgTs>
void swap ( AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs > &  LHS,
AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs > &  RHS 
)
friend

Definition at line 271 of file PassManagerInternal.h.

Member Data Documentation

◆ Pass

template<typename IRUnitT , typename PassT , typename PreservedAnalysesT , typename InvalidatorT , typename... ExtraArgTs>
PassT llvm::detail::AnalysisPassModel< IRUnitT, PassT, PreservedAnalysesT, InvalidatorT, ExtraArgTs >::Pass

Definition at line 301 of file PassManagerInternal.h.


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