class LazyCallThroughManager
Declaration
class LazyCallThroughManager { /* full declaration omitted */ };
Description
Manages a set of 'lazy call-through' trampolines. These are compiler re-entry trampolines that are pre-bound to look up a given symbol in a given JITDylib, then jump to that address. Since compilation of symbols is triggered on first lookup, these call-through trampolines can be used to implement lazy compilation. The easiest way to construct these call-throughs is using the lazyReexport function.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:38
Member Variables
- private std::mutex LCTMMutex
- private llvm::orc::ExecutionSession& ES
- private llvm::JITTargetAddress ErrorHandlerAddr
- private llvm::orc::TrampolinePool* TP = nullptr
- private llvm::orc::LazyCallThroughManager::ReexportsMap Reexports
- private llvm::orc::LazyCallThroughManager::NotifiersMap Notifiers
Method Overview
- public LazyCallThroughManager(llvm::orc::ExecutionSession & ES, llvm::JITTargetAddress ErrorHandlerAddr, llvm::orc::TrampolinePool * TP)
- protected Expected<llvm::orc::LazyCallThroughManager::ReexportsEntry> findReexport(llvm::JITTargetAddress TrampolineAddr)
- public Expected<llvm::JITTargetAddress> getCallThroughTrampoline(llvm::orc::JITDylib & SourceJD, llvm::orc::SymbolStringPtr SymbolName, llvm::orc::LazyCallThroughManager::NotifyResolvedFunction NotifyResolved)
- protected llvm::Error notifyResolved(llvm::JITTargetAddress TrampolineAddr, llvm::JITTargetAddress ResolvedAddr)
- protected llvm::JITTargetAddress reportCallThroughError(llvm::Error Err)
- public void resolveTrampolineLandingAddress(llvm::JITTargetAddress TrampolineAddr, TrampolinePool::NotifyLandingResolvedFunction NotifyLandingResolved)
- protected void setTrampolinePool(llvm::orc::TrampolinePool & TP)
- public virtual ~LazyCallThroughManager()
Methods
¶LazyCallThroughManager(
llvm::orc::ExecutionSession& ES,
llvm::JITTargetAddress ErrorHandlerAddr,
llvm::orc::TrampolinePool* TP)
LazyCallThroughManager(
llvm::orc::ExecutionSession& ES,
llvm::JITTargetAddress ErrorHandlerAddr,
llvm::orc::TrampolinePool* TP)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:43
Parameters
- llvm::orc::ExecutionSession& ES
- llvm::JITTargetAddress ErrorHandlerAddr
- llvm::orc::TrampolinePool* TP
¶Expected<llvm::orc::LazyCallThroughManager::
ReexportsEntry>
findReexport(
llvm::JITTargetAddress TrampolineAddr)
Expected<llvm::orc::LazyCallThroughManager::
ReexportsEntry>
findReexport(
llvm::JITTargetAddress TrampolineAddr)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:68
Parameters
- llvm::JITTargetAddress TrampolineAddr
¶Expected<llvm::JITTargetAddress>
getCallThroughTrampoline(
llvm::orc::JITDylib& SourceJD,
llvm::orc::SymbolStringPtr SymbolName,
llvm::orc::LazyCallThroughManager::
NotifyResolvedFunction NotifyResolved)
Expected<llvm::JITTargetAddress>
getCallThroughTrampoline(
llvm::orc::JITDylib& SourceJD,
llvm::orc::SymbolStringPtr SymbolName,
llvm::orc::LazyCallThroughManager::
NotifyResolvedFunction NotifyResolved)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:49
Parameters
- llvm::orc::JITDylib& SourceJD
- llvm::orc::SymbolStringPtr SymbolName
- llvm::orc::LazyCallThroughManager:: NotifyResolvedFunction NotifyResolved
¶llvm::Error notifyResolved(
llvm::JITTargetAddress TrampolineAddr,
llvm::JITTargetAddress ResolvedAddr)
llvm::Error notifyResolved(
llvm::JITTargetAddress TrampolineAddr,
llvm::JITTargetAddress ResolvedAddr)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:69
Parameters
- llvm::JITTargetAddress TrampolineAddr
- llvm::JITTargetAddress ResolvedAddr
¶llvm::JITTargetAddress reportCallThroughError(
llvm::Error Err)
llvm::JITTargetAddress reportCallThroughError(
llvm::Error Err)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:67
Parameters
- llvm::Error Err
¶void resolveTrampolineLandingAddress(
llvm::JITTargetAddress TrampolineAddr,
TrampolinePool::NotifyLandingResolvedFunction
NotifyLandingResolved)
void resolveTrampolineLandingAddress(
llvm::JITTargetAddress TrampolineAddr,
TrampolinePool::NotifyLandingResolvedFunction
NotifyLandingResolved)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:52
Parameters
- llvm::JITTargetAddress TrampolineAddr
- TrampolinePool::NotifyLandingResolvedFunction NotifyLandingResolved
¶void setTrampolinePool(
llvm::orc::TrampolinePool& TP)
void setTrampolinePool(
llvm::orc::TrampolinePool& TP)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:71
Parameters
¶virtual ~LazyCallThroughManager()
virtual ~LazyCallThroughManager()
Declared at: llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:56