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)

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)

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)

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)

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)

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)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:438

Parameters

unsigned int NumStubs

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