LLVM 22.0.0git
|
Manages a set of 'lazy call-through' trampolines. More...
#include "llvm/ExecutionEngine/Orc/LazyReexports.h"
Classes | |
struct | ReexportsEntry |
Public Types | |
using | NotifyResolvedFunction |
Public Member Functions | |
LLVM_ABI | LazyCallThroughManager (ExecutionSession &ES, ExecutorAddr ErrorHandlerAddr, TrampolinePool *TP) |
LLVM_ABI Expected< ExecutorAddr > | getCallThroughTrampoline (JITDylib &SourceJD, SymbolStringPtr SymbolName, NotifyResolvedFunction NotifyResolved) |
LLVM_ABI void | resolveTrampolineLandingAddress (ExecutorAddr TrampolineAddr, TrampolinePool::NotifyLandingResolvedFunction NotifyLandingResolved) |
virtual | ~LazyCallThroughManager ()=default |
Protected Types | |
using | NotifyLandingResolvedFunction |
Protected Member Functions | |
LLVM_ABI ExecutorAddr | reportCallThroughError (Error Err) |
LLVM_ABI Expected< ReexportsEntry > | findReexport (ExecutorAddr TrampolineAddr) |
LLVM_ABI Error | notifyResolved (ExecutorAddr TrampolineAddr, ExecutorAddr ResolvedAddr) |
void | setTrampolinePool (TrampolinePool &TP) |
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.
Definition at line 40 of file LazyReexports.h.
|
protected |
Definition at line 62 of file LazyReexports.h.
Definition at line 42 of file LazyReexports.h.
llvm::orc::LazyCallThroughManager::LazyCallThroughManager | ( | ExecutionSession & | ES, |
ExecutorAddr | ErrorHandlerAddr, | ||
TrampolinePool * | TP ) |
Definition at line 21 of file LazyReexports.cpp.
|
virtualdefault |
|
protected |
Definition at line 48 of file LazyReexports.cpp.
References llvm::createStringError(), llvm::formatv(), I, and llvm::inconvertibleErrorCode().
Referenced by resolveTrampolineLandingAddress().
Expected< ExecutorAddr > llvm::orc::LazyCallThroughManager::getCallThroughTrampoline | ( | JITDylib & | SourceJD, |
SymbolStringPtr | SymbolName, | ||
NotifyResolvedFunction | NotifyResolved ) |
Definition at line 26 of file LazyReexports.cpp.
References assert().
|
protected |
Definition at line 58 of file LazyReexports.cpp.
References I, and llvm::Error::success().
Referenced by resolveTrampolineLandingAddress().
|
protected |
Definition at line 42 of file LazyReexports.cpp.
Referenced by resolveTrampolineLandingAddress().
void llvm::orc::LazyCallThroughManager::resolveTrampolineLandingAddress | ( | ExecutorAddr | TrampolineAddr, |
TrampolinePool::NotifyLandingResolvedFunction | NotifyLandingResolved ) |
Definition at line 73 of file LazyReexports.cpp.
References assert(), findReexport(), llvm::orc::makeJITDylibSearchOrder(), llvm::orc::MatchAllSymbols, llvm::orc::NoDependenciesToRegister, notifyResolved(), llvm::orc::Ready, reportCallThroughError(), llvm::orc::Result, and llvm::orc::Static.
|
inlineprotected |
Definition at line 74 of file LazyReexports.h.