LLVM
8.0.1
|
Manages a set of 'lazy call-through' trampolines. More...
#include "llvm/ExecutionEngine/Orc/LazyReexports.h"
Classes | |
class | NotifyResolvedFunction |
Clients will want to take some action on first resolution, e.g. More... | |
class | NotifyResolvedFunctionImpl |
Public Member Functions | |
Expected< JITTargetAddress > | getCallThroughTrampoline (JITDylib &SourceJD, SymbolStringPtr SymbolName, std::shared_ptr< NotifyResolvedFunction > NotifyResolved) |
Static Public Member Functions | |
template<typename NotifyResolvedImpl > | |
static std::unique_ptr< NotifyResolvedFunction > | createNotifyResolvedFunction (NotifyResolvedImpl NotifyResolved) |
Create a shared NotifyResolvedFunction from a given type that is callable with the correct signature. More... | |
Protected Member Functions | |
LazyCallThroughManager (ExecutionSession &ES, JITTargetAddress ErrorHandlerAddr, std::unique_ptr< TrampolinePool > TP) | |
JITTargetAddress | callThroughToSymbol (JITTargetAddress TrampolineAddr) |
void | setTrampolinePool (std::unique_ptr< 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 37 of file LazyReexports.h.
|
protected |
Definition at line 22 of file LazyReexports.cpp.
Referenced by createNotifyResolvedFunction().
|
protected |
Definition at line 42 of file LazyReexports.cpp.
References assert(), I, llvm::Lock, llvm::orc::ExecutionSession::lookup(), llvm::orc::NoDependenciesToRegister, llvm::orc::ExecutionSession::reportError(), and llvm::AMDGPU::HSAMD::Kernel::Key::SymbolName.
Referenced by createNotifyResolvedFunction().
|
inlinestatic |
Create a shared NotifyResolvedFunction from a given type that is callable with the correct signature.
Definition at line 73 of file LazyReexports.h.
References callThroughToSymbol(), getCallThroughTrampoline(), LazyCallThroughManager(), and llvm::AMDGPU::HSAMD::Kernel::Key::SymbolName.
Expected< JITTargetAddress > llvm::orc::LazyCallThroughManager::getCallThroughTrampoline | ( | JITDylib & | SourceJD, |
SymbolStringPtr | SymbolName, | ||
std::shared_ptr< NotifyResolvedFunction > | NotifyResolved | ||
) |
Definition at line 27 of file LazyReexports.cpp.
References llvm::Lock.
Referenced by createNotifyResolvedFunction(), and llvm::orc::LazyReexportsMaterializationUnit::getName().
|
inlineprotected |
Definition at line 91 of file LazyReexports.h.