LLVM
8.0.1
|
Interface for layers that accept LLVM IR. More...
#include "llvm/ExecutionEngine/Orc/Layer.h"
Public Member Functions | |
IRLayer (ExecutionSession &ES) | |
virtual | ~IRLayer () |
ExecutionSession & | getExecutionSession () |
Returns the ExecutionSession for this layer. More... | |
void | setCloneToNewContextOnEmit (bool CloneToNewContextOnEmit) |
Sets the CloneToNewContextOnEmit flag (false by default). More... | |
bool | getCloneToNewContextOnEmit () const |
Returns the current value of the CloneToNewContextOnEmit flag. More... | |
virtual Error | add (JITDylib &JD, ThreadSafeModule TSM, VModuleKey K=VModuleKey()) |
Adds a MaterializationUnit representing the given IR to the given JITDylib. More... | |
virtual void | emit (MaterializationResponsibility R, ThreadSafeModule TSM)=0 |
Emit should materialize the given IR. More... | |
llvm::orc::IRLayer::IRLayer | ( | ExecutionSession & | ES | ) |
|
virtual |
Adds a MaterializationUnit representing the given IR to the given JITDylib.
Definition at line 22 of file Layer.cpp.
References llvm::orc::JITDylib::define().
Referenced by getCloneToNewContextOnEmit(), and llvm::orc::ObjectLayer::getExecutionSession().
|
pure virtual |
Emit should materialize the given IR.
Implemented in llvm::orc::CompileOnDemandLayer, llvm::orc::IRCompileLayer, and llvm::orc::IRTransformLayer.
Referenced by llvm::orc::BasicIRLayerMaterializationUnit::BasicIRLayerMaterializationUnit(), llvm::orc::IRTransformLayer::emit(), getCloneToNewContextOnEmit(), and llvm::orc::ObjectLayer::getExecutionSession().
|
inline |
Returns the current value of the CloneToNewContextOnEmit flag.
Definition at line 48 of file Layer.h.
Referenced by llvm::orc::BasicIRLayerMaterializationUnit::BasicIRLayerMaterializationUnit().
|
inline |
Returns the ExecutionSession for this layer.
Definition at line 32 of file Layer.h.
Referenced by llvm::orc::IRTransformLayer::emit(), llvm::orc::IRCompileLayer::emit(), and llvm::orc::CompileOnDemandLayer::emit().
|
inline |
Sets the CloneToNewContextOnEmit flag (false by default).
When set, IR modules added to this layer will be cloned on to a new context before emit is called. This can be used by clients who want to load all IR using one LLVMContext (to save memory via type and constant uniquing), but want to move Modules to fresh contexts before compiling them to enable concurrent compilation. Single threaded clients, or clients who load every module on a new context, need not set this.
Definition at line 43 of file Layer.h.
Referenced by llvm::orc::LLJIT::LLJIT().