LLVM 22.0.0git
llvm::orc::LocalIndirectStubsManager< TargetT > Class Template Reference

IndirectStubsManager implementation for the host architecture, e.g. More...

#include "llvm/ExecutionEngine/Orc/IndirectionUtils.h"

Inheritance diagram for llvm::orc::LocalIndirectStubsManager< TargetT >:
[legend]

Public Member Functions

Error createStub (StringRef StubName, ExecutorAddr StubAddr, JITSymbolFlags StubFlags) override
 Create a single stub with the given name, target address and flags.
Error createStubs (const StubInitsMap &StubInits) override
 Create StubInits.size() stubs with the given names, target addresses, and flags.
ExecutorSymbolDef findStub (StringRef Name, bool ExportedStubsOnly) override
 Find the stub with the given name.
ExecutorSymbolDef findPointer (StringRef Name) override
 Find the implementation-pointer for the stub.
Error updatePointer (StringRef Name, ExecutorAddr NewAddr) override
 Change the value of the implementation pointer for the stub.
Public Member Functions inherited from llvm::orc::IndirectStubsManager
virtual ~IndirectStubsManager ()=default
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
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.

Additional Inherited Members

Public Types inherited from llvm::orc::IndirectStubsManager
using StubInitsMap = StringMap<std::pair<ExecutorAddr, JITSymbolFlags>>
 Map type for initializing the manager. See init.

Detailed Description

template<typename TargetT>
class llvm::orc::LocalIndirectStubsManager< TargetT >

IndirectStubsManager implementation for the host architecture, e.g.

OrcX86_64. (See OrcArchitectureSupport.h).

Definition at line 379 of file IndirectionUtils.h.

Member Function Documentation

◆ createStub()

template<typename TargetT>
Error llvm::orc::LocalIndirectStubsManager< TargetT >::createStub ( StringRef StubName,
ExecutorAddr StubAddr,
JITSymbolFlags StubFlags )
inlineoverridevirtual

Create a single stub with the given name, target address and flags.

Implements llvm::orc::IndirectStubsManager.

Definition at line 381 of file IndirectionUtils.h.

References llvm::Error::success().

◆ createStubs()

template<typename TargetT>
Error llvm::orc::LocalIndirectStubsManager< TargetT >::createStubs ( const StubInitsMap & StubInits)
inlineoverridevirtual

Create StubInits.size() stubs with the given names, target addresses, and flags.

Implements llvm::orc::IndirectStubsManager.

Definition at line 392 of file IndirectionUtils.h.

References llvm::StringMapImpl::size(), and llvm::Error::success().

◆ findPointer()

template<typename TargetT>
ExecutorSymbolDef llvm::orc::LocalIndirectStubsManager< TargetT >::findPointer ( StringRef Name)
inlineoverridevirtual

◆ findStub()

template<typename TargetT>
ExecutorSymbolDef llvm::orc::LocalIndirectStubsManager< TargetT >::findStub ( StringRef Name,
bool ExportedStubsOnly )
inlineoverridevirtual

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.

Implements llvm::orc::IndirectStubsManager.

Definition at line 404 of file IndirectionUtils.h.

References assert(), llvm::orc::ExecutorAddr::fromPtr(), I, and llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key.

◆ updatePointer()

template<typename TargetT>
Error llvm::orc::LocalIndirectStubsManager< TargetT >::updatePointer ( StringRef Name,
ExecutorAddr NewAddr )
inlineoverridevirtual

The documentation for this class was generated from the following file: