LLVM
17.0.0git
|
Manages a set of 'lazy call-through' trampolines. More...
#include "llvm/ExecutionEngine/Orc/LazyReexports.h"
Classes | |
struct | ReexportsEntry |
Public Types | |
using | NotifyResolvedFunction = unique_function< Error(JITTargetAddress ResolvedAddr)> |
Public Member Functions | |
LazyCallThroughManager (ExecutionSession &ES, JITTargetAddress ErrorHandlerAddr, TrampolinePool *TP) | |
Expected< JITTargetAddress > | getCallThroughTrampoline (JITDylib &SourceJD, SymbolStringPtr SymbolName, NotifyResolvedFunction NotifyResolved) |
void | resolveTrampolineLandingAddress (JITTargetAddress TrampolineAddr, TrampolinePool::NotifyLandingResolvedFunction NotifyLandingResolved) |
virtual | ~LazyCallThroughManager ()=default |
Protected Types | |
using | NotifyLandingResolvedFunction = TrampolinePool::NotifyLandingResolvedFunction |
Protected Member Functions | |
JITTargetAddress | reportCallThroughError (Error Err) |
Expected< ReexportsEntry > | findReexport (JITTargetAddress TrampolineAddr) |
Error | notifyResolved (JITTargetAddress TrampolineAddr, JITTargetAddress 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 38 of file LazyReexports.h.
|
protected |
Definition at line 60 of file LazyReexports.h.
using llvm::orc::LazyCallThroughManager::NotifyResolvedFunction = unique_function<Error(JITTargetAddress ResolvedAddr)> |
Definition at line 41 of file LazyReexports.h.
llvm::orc::LazyCallThroughManager::LazyCallThroughManager | ( | ExecutionSession & | ES, |
JITTargetAddress | ErrorHandlerAddr, | ||
TrampolinePool * | TP | ||
) |
Definition at line 19 of file LazyReexports.cpp.
|
virtualdefault |
|
protected |
Definition at line 45 of file LazyReexports.cpp.
References llvm::createStringError(), I, and llvm::inconvertibleErrorCode().
Expected< JITTargetAddress > llvm::orc::LazyCallThroughManager::getCallThroughTrampoline | ( | JITDylib & | SourceJD, |
SymbolStringPtr | SymbolName, | ||
NotifyResolvedFunction | NotifyResolved | ||
) |
Definition at line 23 of file LazyReexports.cpp.
References assert(), llvm::orc::TrampolinePool::getTrampoline(), move, and llvm::AMDGPU::HSAMD::Kernel::Key::SymbolName.
|
protected |
Definition at line 55 of file LazyReexports.cpp.
References I, move, and llvm::Error::success().
|
protected |
Definition at line 39 of file LazyReexports.cpp.
void llvm::orc::LazyCallThroughManager::resolveTrampolineLandingAddress | ( | JITTargetAddress | TrampolineAddr, |
TrampolinePool::NotifyLandingResolvedFunction | NotifyLandingResolved | ||
) |
Definition at line 70 of file LazyReexports.cpp.
|
inlineprotected |
Definition at line 71 of file LazyReexports.h.