LLVM: llvm::orc::ObjectLinkingLayer Class Reference (original) (raw)

An ObjectLayer implementation built on JITLink. More...

#include "[llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h](ObjectLinkingLayer%5F8h%5Fsource.html)"

Public Types
using ReturnObjectBufferFunction
Public Member Functions
ObjectLinkingLayer (ExecutionSession &ES)
Construct an ObjectLinkingLayer using the ExecutorProcessControl instance's memory manager.
ObjectLinkingLayer (ExecutionSession &ES, jitlink::JITLinkMemoryManager &MemMgr)
Construct an ObjectLinkingLayer using a custom memory manager.
ObjectLinkingLayer (ExecutionSession &ES, std::unique_ptr< jitlink::JITLinkMemoryManager > MemMgr)
Construct an ObjectLinkingLayer.
void setReturnObjectBuffer (ReturnObjectBufferFunction ReturnObjectBuffer)
Set an object buffer return function.
void emit (std::unique_ptr< MaterializationResponsibility > R, std::unique_ptr< MemoryBuffer > O) override
Emit an object file.
void emit (std::unique_ptr< MaterializationResponsibility > R, std::unique_ptr< jitlink::LinkGraph > G) override
Emit a LinkGraph.
void emit (std::unique_ptr< MaterializationResponsibility > R, std::unique_ptr< jitlink::LinkGraph > G, std::unique_ptr< MemoryBuffer > ObjBuf)
Emit a LinkGraph with the given backing buffer.
virtual Error add (ResourceTrackerSP RT, std::unique_ptr< MemoryBuffer > O, MaterializationUnit::Interface I)
Adds a MaterializationUnit for the object file in the given memory buffer to the JITDylib for the given ResourceTracker.
Error add (ResourceTrackerSP RT, std::unique_ptr< MemoryBuffer > O)
Adds a MaterializationUnit for the object file in the given memory buffer to the JITDylib for the given ResourceTracker.
Error add (JITDylib &JD, std::unique_ptr< MemoryBuffer > O, MaterializationUnit::Interface I)
Adds a MaterializationUnit for the object file in the given memory buffer to the given JITDylib.
Error add (JITDylib &JD, std::unique_ptr< MemoryBuffer > O)
Adds a MaterializationUnit for the object file in the given memory buffer to the given JITDylib.
Public Member Functions inherited from llvm::orc::LinkGraphLinkingLayer
LinkGraphLinkingLayer (ExecutionSession &ES)
Construct a LinkGraphLinkingLayer using the ExecutorProcessControl instance's memory manager.
LinkGraphLinkingLayer (ExecutionSession &ES, jitlink::JITLinkMemoryManager &MemMgr)
Construct a LinkGraphLinkingLayer using a custom memory manager.
LinkGraphLinkingLayer (ExecutionSession &ES, std::unique_ptr< jitlink::JITLinkMemoryManager > MemMgr)
Construct an LinkGraphLinkingLayer.
~LinkGraphLinkingLayer () override
Destroy the LinkGraphLinkingLayer.
LinkGraphLinkingLayer & addPlugin (std::shared_ptr< Plugin > P)
Add a plugin.
void removePlugin (Plugin &P)
Remove a plugin.
LinkGraphLinkingLayer & setOverrideObjectFlagsWithResponsibilityFlags (bool OverrideObjectFlags)
Instructs this LinkgraphLinkingLayer instance to override the symbol flags found in the LinkGraph with the flags supplied by the MaterializationResponsibility instance.
LinkGraphLinkingLayer & setAutoClaimResponsibilityForObjectSymbols (bool AutoClaimObjectSymbols)
If set, this LinkGraphLinkingLayer instance will claim responsibility for any symbols provided by a given object file that were not already in the MaterializationResponsibility instance.
Public Member Functions inherited from llvm::orc::LinkGraphLayer
LinkGraphLayer (ExecutionSession &ES)
virtual ~LinkGraphLayer ()
ExecutionSession & getExecutionSession ()
virtual Error add (ResourceTrackerSP RT, std::unique_ptr< jitlink::LinkGraph > G, MaterializationUnit::Interface I)
Adds a LinkGraph to the JITDylib for the given ResourceTracker.
Error add (ResourceTrackerSP RT, std::unique_ptr< jitlink::LinkGraph > G)
Adds a LinkGraph to the JITDylib for the given ResourceTracker.
Error add (JITDylib &JD, std::unique_ptr< jitlink::LinkGraph > G, MaterializationUnit::Interface I)
Adds a LinkGraph to the given JITDylib.
Error add (JITDylib &JD, std::unique_ptr< jitlink::LinkGraph > G)
Adds a LinkGraph to the given JITDylib.
MaterializationUnit::Interface getInterface (jitlink::LinkGraph &G)
Get the interface for the given LinkGraph.
Public Member Functions inherited from llvm::RTTIExtends< ObjectLinkingLayer, ObjectLayer >
const void * dynamicClassID () const override
bool isA () const
Check whether this instance is a subclass of QueryT.
bool isA (const void *const ClassID) const override
Static Public Attributes
static char ID
Additional Inherited Members
Static Public Member Functions inherited from llvm::orc::LinkGraphLayer
static JITSymbolFlags getJITSymbolFlagsForSymbol (jitlink::Symbol &Sym)
Get the JITSymbolFlags for the given symbol.
Static Public Member Functions inherited from llvm::RTTIExtends< ObjectLinkingLayer, ObjectLayer >
static const void * classID ()
static bool classof (const T *R)
Protected Member Functions inherited from llvm::orc::LinkGraphLinkingLayer
void emit (std::unique_ptr< MaterializationResponsibility > R, std::unique_ptr< jitlink::LinkGraph > G, std::unique_ptr< MemoryBuffer > ObjBuf)
Emit a LinkGraph with the given backing buffer.
Protected Attributes inherited from llvm::orc::LinkGraphLinkingLayer
std::function< void(std::unique_ptr< MemoryBuffer >)> ReturnObjectBuffer

An ObjectLayer implementation built on JITLink.

Clients can use this class to add relocatable object files to an ExecutionSession, and it typically serves as the base layer (underneath a compiling layer like IRCompileLayer) for the rest of the JIT.

Definition at line 42 of file ObjectLinkingLayer.h.

ReturnObjectBufferFunction

Initial value:

std::function<void(std::unique_ptr)>

Definition at line 51 of file ObjectLinkingLayer.h.

llvm::orc::ObjectLinkingLayer::ObjectLinkingLayer ( ExecutionSession & ES) inline

ObjectLinkingLayer() [2/3]

ObjectLinkingLayer() [3/3]

add() [1/4]

add() [2/4]

add() [3/4]

add() [4/4]

emit() [1/3]

emit() [2/3]

Emit a LinkGraph with the given backing buffer.

This overload is intended for use by ObjectLinkingLayer.

emit() [3/3]

setReturnObjectBuffer()

void llvm::orc::ObjectLinkingLayer::setReturnObjectBuffer ( ReturnObjectBufferFunction ReturnObjectBuffer) inline

ID

char llvm::orc::ObjectLinkingLayer::ID static

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