LLVM 20.0.0git
|
Base class for managing collections of named indirect stubs. More...
#include "llvm/ExecutionEngine/Orc/IndirectionUtils.h"
Public Types | |
using | StubInitsMap = StringMap< std::pair< ExecutorAddr, JITSymbolFlags > > |
Map type for initializing the manager. See init. | |
Public Member Functions | |
virtual | ~IndirectStubsManager ()=default |
virtual Error | createStub (StringRef StubName, ExecutorAddr StubAddr, JITSymbolFlags StubFlags)=0 |
Create a single stub with the given name, target address and flags. | |
virtual Error | createStubs (const StubInitsMap &StubInits)=0 |
Create StubInits.size() stubs with the given names, target addresses, and flags. | |
virtual ExecutorSymbolDef | findStub (StringRef Name, bool ExportedStubsOnly)=0 |
Find the stub with the given name. | |
virtual ExecutorSymbolDef | findPointer (StringRef Name)=0 |
Find the implementation-pointer for the stub. | |
virtual Error | updatePointer (StringRef Name, ExecutorAddr NewAddr)=0 |
Change the value of the implementation pointer for the stub. | |
Error | redirect (JITDylib &JD, const SymbolMap &NewDests) override |
— RedirectableSymbolManager implementation — | |
void | emitRedirectableSymbols (std::unique_ptr< MaterializationResponsibility > MR, SymbolMap InitialDests) override |
Emit redirectable symbol. | |
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. | |
Base class for managing collections of named indirect stubs.
Definition at line 282 of file IndirectionUtils.h.
using llvm::orc::IndirectStubsManager::StubInitsMap = StringMap<std::pair<ExecutorAddr, JITSymbolFlags> > |
Map type for initializing the manager. See init.
Definition at line 285 of file IndirectionUtils.h.
|
virtualdefault |
|
pure virtual |
Create a single stub with the given name, target address and flags.
Implemented in llvm::orc::LocalIndirectStubsManager< TargetT >.
|
pure virtual |
Create StubInits.size() stubs with the given names, target addresses, and flags.
Implemented in llvm::orc::LocalIndirectStubsManager< TargetT >.
Referenced by emitRedirectableSymbols().
|
overridevirtual |
Emit redirectable symbol.
Implements llvm::orc::RedirectableSymbolManager.
Definition at line 122 of file IndirectionUtils.cpp.
References assert(), createStubs(), findStub(), and Name.
|
pure virtual |
Find the implementation-pointer for the stub.
Implemented in llvm::orc::LocalIndirectStubsManager< TargetT >.
|
pure virtual |
Find the stub with the given name.
If ExportedStubsOnly is true, this will only return a result if the stub's flags indicate that it is exported.
Implemented in llvm::orc::LocalIndirectStubsManager< TargetT >.
Referenced by emitRedirectableSymbols().
|
overridevirtual |
— RedirectableSymbolManager implementation —
Implements llvm::orc::RedirectionManager.
Definition at line 115 of file IndirectionUtils.cpp.
References Name, llvm::Error::success(), and updatePointer().
|
pure virtual |
Change the value of the implementation pointer for the stub.
Implemented in llvm::orc::LocalIndirectStubsManager< TargetT >.
Referenced by redirect().