LLVM 22.0.0git
|
#include "llvm/ExecutionEngine/Orc/JITLinkRedirectableSymbolManager.h"
Public Member Functions | |
JITLinkRedirectableSymbolManager (ObjectLinkingLayer &ObjLinkingLayer, jitlink::AnonymousPointerCreator &AnonymousPtrCreator, jitlink::PointerJumpStubCreator &PtrJumpStubCreator) | |
ObjectLinkingLayer & | getObjectLinkingLayer () const |
void | emitRedirectableSymbols (std::unique_ptr< MaterializationResponsibility > R, SymbolMap InitialDests) override |
Emit redirectable symbol. | |
Error | redirect (JITDylib &JD, const SymbolMap &NewDests) override |
Change the redirection destination of given symbols to new destination symbols. | |
Public Member Functions inherited from llvm::orc::RedirectableSymbolManager | |
LLVM_ABI Error | createRedirectableSymbols (ResourceTrackerSP RT, SymbolMap InitialDests) |
Create redirectable symbols with given symbol names and initial desitnation symbol addresses. | |
Error | createRedirectableSymbol (ResourceTrackerSP RT, SymbolStringPtr Symbol, ExecutorSymbolDef InitialDest) |
Create a single redirectable symbol with given symbol name and initial desitnation symbol address. | |
Public Member Functions inherited from llvm::orc::RedirectionManager | |
virtual | ~RedirectionManager ()=default |
Error | redirect (JITDylib &JD, SymbolStringPtr Symbol, ExecutorSymbolDef NewDest) |
Change the redirection destination of given symbol to new destination symbol. |
Static Public Member Functions | |
static Expected< std::unique_ptr< RedirectableSymbolManager > > | Create (ObjectLinkingLayer &ObjLinkingLayer) |
Create redirection manager that uses JITLink based implementaion. |
Definition at line 26 of file JITLinkRedirectableSymbolManager.h.
|
inline |
Definition at line 44 of file JITLinkRedirectableSymbolManager.h.
References llvm::move().
Referenced by Create().
|
inlinestatic |
Create redirection manager that uses JITLink based implementaion.
Definition at line 31 of file JITLinkRedirectableSymbolManager.h.
References llvm::jitlink::getAnonymousPointerCreator(), llvm::jitlink::getPointerJumpStubCreator(), llvm::inconvertibleErrorCode(), JITLinkRedirectableSymbolManager(), and llvm::make_error().
|
overridevirtual |
Emit redirectable symbol.
Implements llvm::orc::RedirectableSymbolManager.
Definition at line 23 of file JITLinkRedirectableSymbolManager.cpp.
References llvm::jitlink::Default, llvm::orc::Exec, G, llvm::jitlink::getGenericEdgeKindName(), llvm::jitlink::Hidden, llvm::jitlink::Local, Ptr, llvm::orc::Read, llvm::jitlink::Strong, llvm::jitlink::Weak, and llvm::orc::Write.
|
inline |
Definition at line 52 of file JITLinkRedirectableSymbolManager.h.
|
overridevirtual |
Change the redirection destination of given symbols to new destination symbols.
Implements llvm::orc::RedirectionManager.
Definition at line 66 of file JITLinkRedirectableSymbolManager.cpp.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), and llvm::orc::MatchAllSymbols.