class LocalIndirectStubsManager
Declaration
template <typename TargetT>
class LocalIndirectStubsManager : public IndirectStubsManager { /* full declaration omitted */ };
Description
IndirectStubsManager implementation for the host architecture, e.g. OrcX86_64. (See OrcArchitectureSupport.h).
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:370
Inherits from: IndirectStubsManager
Templates
- TargetT
Member Variables
- private unsigned int PageSize = sys::Process::getPageSizeEstimate()
- private std::mutex StubsMutex
- private std::vector<LocalIndirectStubsInfo<TargetT>> IndirectStubsInfos
- private std::vector<StubKey> FreeStubs
- private StringMap<std::pair<StubKey, JITSymbolFlags>> StubIndexes
Method Overview
- public llvm::Error createStub(llvm::StringRef StubName, llvm::JITTargetAddress StubAddr, llvm::JITSymbolFlags StubFlags)
- private void createStubInternal(llvm::StringRef StubName, llvm::JITTargetAddress InitAddr, llvm::JITSymbolFlags StubFlags)
- public llvm::Error createStubs(const llvm::orc::IndirectStubsManager::StubInitsMap & StubInits)
- public llvm::JITEvaluatedSymbol findPointer(llvm::StringRef Name)
- public llvm::JITEvaluatedSymbol findStub(llvm::StringRef Name, bool ExportedStubsOnly)
- private llvm::Error reserveStubs(unsigned int NumStubs)
- public llvm::Error updatePointer(llvm::StringRef Name, llvm::JITTargetAddress NewAddr)
Inherited from IndirectStubsManager:
Methods
¶llvm::Error createStub(
llvm::StringRef StubName,
llvm::JITTargetAddress StubAddr,
llvm::JITSymbolFlags StubFlags)
llvm::Error createStub(
llvm::StringRef StubName,
llvm::JITTargetAddress StubAddr,
llvm::JITSymbolFlags StubFlags)
Description
Create a single stub with the given name, target address and flags.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:372
Parameters
- llvm::StringRef StubName
- llvm::JITTargetAddress StubAddr
- llvm::JITSymbolFlags StubFlags
¶void createStubInternal(
llvm::StringRef StubName,
llvm::JITTargetAddress InitAddr,
llvm::JITSymbolFlags StubFlags)
void createStubInternal(
llvm::StringRef StubName,
llvm::JITTargetAddress InitAddr,
llvm::JITSymbolFlags StubFlags)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:454
Parameters
- llvm::StringRef StubName
- llvm::JITTargetAddress InitAddr
- llvm::JITSymbolFlags StubFlags
¶llvm::Error createStubs(
const llvm::orc::IndirectStubsManager::
StubInitsMap& StubInits)
llvm::Error createStubs(
const llvm::orc::IndirectStubsManager::
StubInitsMap& StubInits)
Description
Create StubInits.size() stubs with the given names, target addresses, and flags.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:383
Parameters
- const llvm::orc::IndirectStubsManager:: StubInitsMap& StubInits
¶llvm::JITEvaluatedSymbol findPointer(
llvm::StringRef Name)
llvm::JITEvaluatedSymbol findPointer(
llvm::StringRef Name)
Description
Find the implementation-pointer for the stub.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:411
Parameters
- llvm::StringRef Name
¶llvm::JITEvaluatedSymbol findStub(
llvm::StringRef Name,
bool ExportedStubsOnly)
llvm::JITEvaluatedSymbol findStub(
llvm::StringRef Name,
bool ExportedStubsOnly)
Description
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.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:395
Parameters
- llvm::StringRef Name
- bool ExportedStubsOnly
¶llvm::Error reserveStubs(unsigned int NumStubs)
llvm::Error reserveStubs(unsigned int NumStubs)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:438
Parameters
- unsigned int NumStubs
¶llvm::Error updatePointer(
llvm::StringRef Name,
llvm::JITTargetAddress NewAddr)
llvm::Error updatePointer(
llvm::StringRef Name,
llvm::JITTargetAddress NewAddr)
Description
Change the value of the implementation pointer for the stub.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:424
Parameters
- llvm::StringRef Name
- llvm::JITTargetAddress NewAddr