LLVM: llvm::orc::LinkGraphLinkingLayer::JITLinkCtx Class Reference (original) (raw)

Public Member Functions
JITLinkCtx (LinkGraphLinkingLayer &Layer, std::unique_ptr< MaterializationResponsibility > MR, std::unique_ptr< MemoryBuffer > ObjBuffer)
~JITLinkCtx () override
JITLinkMemoryManager & getMemoryManager () override
Return the MemoryManager to be used for this link.
void notifyMaterializing (LinkGraph &G)
void notifyFailed (Error Err) override
Notify this context that linking failed.
void lookup (const LookupMap &Symbols, std::unique_ptr< JITLinkAsyncLookupContinuation > LC) override
Called by JITLink to resolve external symbols.
Error notifyResolved (LinkGraph &G) override
Called by JITLink once all defined symbols in the graph have been assigned their final memory locations in the target process.
void notifyFinalized (JITLinkMemoryManager::FinalizedAlloc A) override
Called by JITLink to notify the context that the object has been finalized (i.e.
LinkGraphPassFunction getMarkLivePass (const Triple &TT) const override
Returns the mark-live pass to be used for this link.
Error modifyPassConfig (LinkGraph &LG, PassConfiguration &Config) override
Called by JITLink to modify the pass pipeline prior to linking.
Error notifyEmitted (jitlink::JITLinkMemoryManager::FinalizedAlloc FA)
Public Member Functions inherited from llvm::jitlink::JITLinkContext
JITLinkContext (const JITLinkDylib *JD)
Create a JITLinkContext.
virtual ~JITLinkContext ()
Destroy a JITLinkContext.
const JITLinkDylib * getJITLinkDylib () const
Return the JITLinkDylib that this link is targeting, if any.
virtual bool shouldAddDefaultTargetPasses (const Triple &TT) const
Called by JITLink prior to linking to determine whether default passes for the target should be added.

Definition at line 47 of file LinkGraphLinkingLayer.cpp.

~JITLinkCtx()

llvm::orc::LinkGraphLinkingLayer::JITLinkCtx::~JITLinkCtx ( ) inlineoverride

getMarkLivePass()

Returns the mark-live pass to be used for this link.

If no pass is returned (the default) then the target-specific linker implementation will choose a conservative default (usually marking all symbols live). This function is only called if shouldAddDefaultTargetPasses returns true, otherwise the JITContext is responsible for adding a mark-live pass in modifyPassConfig.

Reimplemented from llvm::jitlink::JITLinkContext.

Definition at line 226 of file LinkGraphLinkingLayer.cpp.

References G.

getMemoryManager()

JITLinkMemoryManager & llvm::orc::LinkGraphLinkingLayer::JITLinkCtx::getMemoryManager ( ) inlineoverridevirtual

lookup()

Called by JITLink to resolve external symbols.

This method is passed a lookup continutation which it must call with a result to continue the linking process.

Implements llvm::jitlink::JITLinkContext.

Definition at line 81 of file LinkGraphLinkingLayer.cpp.

References llvm::orc::SymbolLookupSet::add(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert_range(), llvm::jitlink::RequiredSymbol, llvm::orc::RequiredSymbol, llvm::orc::Resolved, llvm::orc::Result, llvm::orc::Static, llvm::jitlink::WeaklyReferencedSymbol, and llvm::orc::WeaklyReferencedSymbol.

modifyPassConfig()

notifyEmitted()

notifyFailed()

void llvm::orc::LinkGraphLinkingLayer::JITLinkCtx::notifyFailed ( Error Err) inlineoverridevirtual

notifyFinalized()

notifyMaterializing()

void llvm::orc::LinkGraphLinkingLayer::JITLinkCtx::notifyMaterializing ( LinkGraph & G) inline

notifyResolved()

Error llvm::orc::LinkGraphLinkingLayer::JITLinkCtx::notifyResolved ( LinkGraph & G) inlineoverridevirtual

Called by JITLink once all defined symbols in the graph have been assigned their final memory locations in the target process.

At this point the LinkGraph can be inspected to build a symbol table, however the block content will not generally have been copied to the target location yet.

If the client detects an error in the LinkGraph state (e.g. unexpected or missing symbols) they may return an error here. The error will be propagated to notifyFailed and the linker will bail out.

Implements llvm::jitlink::JITLinkContext.

Definition at line 126 of file LinkGraphLinkingLayer.cpp.

References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::empty(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), G, llvm::orc::LinkGraphLayer::getJITSymbolFlagsForSymbol(), I, llvm::make_error(), llvm::jitlink::SideEffectsOnly, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size(), and llvm::Error::success().


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