LLVM  4.0.0
Public Types | Public Member Functions | List of all members
llvm::orc::IRTransformLayer< BaseLayerT, TransformFtor > Class Template Reference

IR mutating layer. More...

#include <IRTransformLayer.h>

Public Types

typedef
BaseLayerT::ModuleSetHandleT 
ModuleSetHandleT
 Handle to a set of added modules. More...
 

Public Member Functions

 IRTransformLayer (BaseLayerT &BaseLayer, TransformFtor Transform=TransformFtor())
 Construct an IRTransformLayer with the given BaseLayer. More...
 
template<typename ModuleSetT , typename MemoryManagerPtrT , typename SymbolResolverPtrT >
ModuleSetHandleT addModuleSet (ModuleSetT Ms, MemoryManagerPtrT MemMgr, SymbolResolverPtrT Resolver)
 Apply the transform functor to each module in the module set, then add the resulting set of modules to the base layer, along with the memory manager and symbol resolver. More...
 
void removeModuleSet (ModuleSetHandleT H)
 Remove the module set associated with the handle H. More...
 
JITSymbol findSymbol (const std::string &Name, bool ExportedSymbolsOnly)
 Search for the given named symbol. More...
 
JITSymbol findSymbolIn (ModuleSetHandleT H, const std::string &Name, bool ExportedSymbolsOnly)
 Get the address of the given symbol in the context of the set of modules represented by the handle H. More...
 
void emitAndFinalize (ModuleSetHandleT H)
 Immediately emit and finalize the module set represented by the given handle. More...
 
TransformFtor & getTransform ()
 Access the transform functor directly. More...
 
const TransformFtor & getTransform () const
 Access the mumate functor directly. More...
 

Detailed Description

template<typename BaseLayerT, typename TransformFtor>
class llvm::orc::IRTransformLayer< BaseLayerT, TransformFtor >

IR mutating layer.

This layer accepts sets of LLVM IR Modules (via addModuleSet). It immediately applies the user supplied functor to each module, then adds the set of transformed modules to the layer below.

Definition at line 28 of file IRTransformLayer.h.

Member Typedef Documentation

template<typename BaseLayerT , typename TransformFtor >
typedef BaseLayerT::ModuleSetHandleT llvm::orc::IRTransformLayer< BaseLayerT, TransformFtor >::ModuleSetHandleT

Handle to a set of added modules.

Definition at line 31 of file IRTransformLayer.h.

Constructor & Destructor Documentation

template<typename BaseLayerT , typename TransformFtor >
llvm::orc::IRTransformLayer< BaseLayerT, TransformFtor >::IRTransformLayer ( BaseLayerT &  BaseLayer,
TransformFtor  Transform = TransformFtor() 
)
inline

Construct an IRTransformLayer with the given BaseLayer.

Definition at line 34 of file IRTransformLayer.h.

Member Function Documentation

template<typename BaseLayerT , typename TransformFtor >
template<typename ModuleSetT , typename MemoryManagerPtrT , typename SymbolResolverPtrT >
ModuleSetHandleT llvm::orc::IRTransformLayer< BaseLayerT, TransformFtor >::addModuleSet ( ModuleSetT  Ms,
MemoryManagerPtrT  MemMgr,
SymbolResolverPtrT  Resolver 
)
inline

Apply the transform functor to each module in the module set, then add the resulting set of modules to the base layer, along with the memory manager and symbol resolver.

Returns
A handle for the added modules.

Definition at line 45 of file IRTransformLayer.h.

References E, and I.

template<typename BaseLayerT , typename TransformFtor >
void llvm::orc::IRTransformLayer< BaseLayerT, TransformFtor >::emitAndFinalize ( ModuleSetHandleT  H)
inline

Immediately emit and finalize the module set represented by the given handle.

Parameters
HHandle for module set to emit/finalize.

Definition at line 83 of file IRTransformLayer.h.

template<typename BaseLayerT , typename TransformFtor >
JITSymbol llvm::orc::IRTransformLayer< BaseLayerT, TransformFtor >::findSymbol ( const std::string &  Name,
bool  ExportedSymbolsOnly 
)
inline

Search for the given named symbol.

Parameters
NameThe name of the symbol to search for.
ExportedSymbolsOnlyIf true, search only for exported symbols.
Returns
A handle for the given named symbol, if it exists.

Definition at line 63 of file IRTransformLayer.h.

template<typename BaseLayerT , typename TransformFtor >
JITSymbol llvm::orc::IRTransformLayer< BaseLayerT, TransformFtor >::findSymbolIn ( ModuleSetHandleT  H,
const std::string &  Name,
bool  ExportedSymbolsOnly 
)
inline

Get the address of the given symbol in the context of the set of modules represented by the handle H.

This call is forwarded to the base layer's implementation.

Parameters
HThe handle for the module set to search in.
NameThe name of the symbol to search for.
ExportedSymbolsOnlyIf true, search only for exported symbols.
Returns
A handle for the given named symbol, if it is found in the given module set.

Definition at line 75 of file IRTransformLayer.h.

template<typename BaseLayerT , typename TransformFtor >
TransformFtor& llvm::orc::IRTransformLayer< BaseLayerT, TransformFtor >::getTransform ( )
inline

Access the transform functor directly.

Definition at line 88 of file IRTransformLayer.h.

template<typename BaseLayerT , typename TransformFtor >
const TransformFtor& llvm::orc::IRTransformLayer< BaseLayerT, TransformFtor >::getTransform ( ) const
inline

Access the mumate functor directly.

Definition at line 91 of file IRTransformLayer.h.

template<typename BaseLayerT , typename TransformFtor >
void llvm::orc::IRTransformLayer< BaseLayerT, TransformFtor >::removeModuleSet ( ModuleSetHandleT  H)
inline

Remove the module set associated with the handle H.

Definition at line 57 of file IRTransformLayer.h.


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