|
LLVM
8.0.1
|
#include "llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h"


Public Types | |
| using | IndirectStubsManagerBuilder = std::function< std::unique_ptr< IndirectStubsManager >()> |
| Builder for IndirectStubsManagers. More... | |
| using | GlobalValueSet = std::set< const GlobalValue * > |
| using | PartitionFunction = std::function< Optional< GlobalValueSet >(GlobalValueSet Requested)> |
| Partitioning function. More... | |
Public Member Functions | |
| CompileOnDemandLayer (ExecutionSession &ES, IRLayer &BaseLayer, LazyCallThroughManager &LCTMgr, IndirectStubsManagerBuilder BuildIndirectStubsManager) | |
| Construct a CompileOnDemandLayer. More... | |
| void | setPartitionFunction (PartitionFunction Partition) |
| Sets the partition function. More... | |
| void | emit (MaterializationResponsibility R, ThreadSafeModule TSM) override |
| Emits the given module. More... | |
Public Member Functions inherited from llvm::orc::IRLayer | |
| 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... | |
Static Public Member Functions | |
| static Optional< GlobalValueSet > | compileRequested (GlobalValueSet Requested) |
| Off-the-shelf partitioning which compiles all requested symbols (usually a single function at a time). More... | |
| static Optional< GlobalValueSet > | compileWholeModule (GlobalValueSet Requested) |
| Off-the-shelf partitioning which compiles whole modules whenever any symbol in them is requested. More... | |
Friends | |
| class | PartitioningIRMaterializationUnit |
Definition at line 65 of file CompileOnDemandLayer.h.
| using llvm::orc::CompileOnDemandLayer::GlobalValueSet = std::set<const GlobalValue *> |
Definition at line 73 of file CompileOnDemandLayer.h.
| using llvm::orc::CompileOnDemandLayer::IndirectStubsManagerBuilder = std::function<std::unique_ptr<IndirectStubsManager>()> |
Builder for IndirectStubsManagers.
Definition at line 71 of file CompileOnDemandLayer.h.
| using llvm::orc::CompileOnDemandLayer::PartitionFunction = std::function<Optional<GlobalValueSet>(GlobalValueSet Requested)> |
Partitioning function.
Definition at line 77 of file CompileOnDemandLayer.h.
| llvm::orc::CompileOnDemandLayer::CompileOnDemandLayer | ( | ExecutionSession & | ES, |
| IRLayer & | BaseLayer, | ||
| LazyCallThroughManager & | LCTMgr, | ||
| IndirectStubsManagerBuilder | BuildIndirectStubsManager | ||
| ) |
Construct a CompileOnDemandLayer.
Definition at line 111 of file CompileOnDemandLayer.cpp.
|
static |
Off-the-shelf partitioning which compiles all requested symbols (usually a single function at a time).
Definition at line 102 of file CompileOnDemandLayer.cpp.
|
static |
Off-the-shelf partitioning which compiles whole modules whenever any symbol in them is requested.
Definition at line 107 of file CompileOnDemandLayer.cpp.
References llvm::None.
|
overridevirtual |
Emits the given module.
This should not be called by clients: it will be called by the JIT when a definition added via the add method is requested.
Implements llvm::orc::IRLayer.
Definition at line 121 of file CompileOnDemandLayer.cpp.
References assert(), llvm::JITSymbolFlags::fromGlobalValue(), llvm::orc::IRLayer::getExecutionSession(), llvm::orc::ThreadSafeModule::getModule(), llvm::orc::MaterializationResponsibility::getTargetJITDylib(), and Name.
| void llvm::orc::CompileOnDemandLayer::setPartitionFunction | ( | PartitionFunction | Partition | ) |
Sets the partition function.
Definition at line 117 of file CompileOnDemandLayer.cpp.
|
friend |
Definition at line 66 of file CompileOnDemandLayer.h.
1.8.13