LLVM 20.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 | |
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. | |
virtual void | emitRedirectableSymbols (std::unique_ptr< MaterializationResponsibility > MR, SymbolMap InitialDests)=0 |
Emit redirectable symbol. | |
Public Member Functions inherited from llvm::orc::RedirectionManager | |
virtual | ~RedirectionManager ()=default |
virtual Error | redirect (JITDylib &JD, const SymbolMap &NewDests)=0 |
Change the redirection destination of given symbols to new destination symbols. | |
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 25 of file JITLinkRedirectableSymbolManager.h.
|
inline |
Definition at line 42 of file JITLinkRedirectableSymbolManager.h.
|
inlinestatic |
Create redirection manager that uses JITLink based implementaion.
Definition at line 29 of file JITLinkRedirectableSymbolManager.h.
References llvm::jitlink::getAnonymousPointerCreator(), llvm::orc::LinkGraphLayer::getExecutionSession(), llvm::jitlink::getPointerJumpStubCreator(), llvm::orc::ExecutionSession::getTargetTriple(), and llvm::inconvertibleErrorCode().
|
overridevirtual |
Emit redirectable symbol.
Implements llvm::orc::RedirectableSymbolManager.
Definition at line 23 of file JITLinkRedirectableSymbolManager.cpp.
References llvm::big, llvm::jitlink::Default, llvm::orc::ObjectLinkingLayer::emit(), llvm::orc::Exec, G, llvm::orc::LinkGraphLayer::getExecutionSession(), llvm::jitlink::getGenericEdgeKindName(), llvm::jitlink::Hidden, llvm::little, llvm::jitlink::Local, Name, Ptr, llvm::orc::Read, llvm::jitlink::Strong, and llvm::orc::Write.
|
inline |
Definition at line 50 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::orc::LinkGraphLayer::getExecutionSession(), llvm::orc::ExecutionSession::getExecutorProcessControl(), llvm::orc::ExecutorProcessControl::getMemoryAccess(), llvm::orc::MatchAllSymbols, Sym, and llvm::orc::ExecutorProcessControl::MemoryAccess::writePointers().