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

Specialization of PassModel for passes that accept an analyis manager. More...

#include <PassManagerInternal.h>

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

Public Member Functions

 PassModel (PassT Pass)
 
 PassModel (const PassModel &Arg)
 
 PassModel (PassModel &&Arg)
 
PassModeloperator= (PassModel RHS)
 
PreservedAnalysesT run (IRUnitT &IR, AnalysisManager< IRUnitT > *AM) override
 The polymorphic API which runs the pass over a given IR entity. More...
 
StringRef name () override
 Polymorphic method to access the name of a pass. More...
 
- Public Member Functions inherited from llvm::detail::PassConcept< IRUnitT >
virtual ~PassConcept ()
 

Public Attributes

PassT Pass
 

Friends

void swap (PassModel &LHS, PassModel &RHS)
 

Detailed Description

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

Specialization of PassModel for passes that accept an analyis manager.

Definition at line 83 of file PassManagerInternal.h.

Constructor & Destructor Documentation

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

Definition at line 85 of file PassManagerInternal.h.

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

Definition at line 88 of file PassManagerInternal.h.

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

Definition at line 89 of file PassManagerInternal.h.

Member Function Documentation

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

Polymorphic method to access the name of a pass.

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

Definition at line 102 of file PassManagerInternal.h.

References name.

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

Definition at line 94 of file PassManagerInternal.h.

References std::swap().

template<typename IRUnitT , typename PassT , typename PreservedAnalysesT >
PreservedAnalysesT llvm::detail::PassModel< IRUnitT, PassT, PreservedAnalysesT, true >::run ( IRUnitT &  IR,
AnalysisManager< IRUnitT > *  AM 
)
inlineoverridevirtual

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.

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

Definition at line 99 of file PassManagerInternal.h.

Friends And Related Function Documentation

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

Definition at line 90 of file PassManagerInternal.h.

Member Data Documentation

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

Definition at line 103 of file PassManagerInternal.h.


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