LLVM 20.0.0git
|
Produces trampolines on request using JITLink. More...
#include "llvm/ExecutionEngine/Orc/JITLinkReentryTrampolines.h"
Classes | |
class | TrampolineAddrScraperPlugin |
Public Types | |
using | EmitTrampolineFn = unique_function< jitlink::Symbol &(jitlink::LinkGraph &G, jitlink::Section &Sec, jitlink::Symbol &ReentrySym)> |
using | OnTrampolinesReadyFn = unique_function< void(Expected< std::vector< ExecutorSymbolDef > > EntryAddrs)> |
Public Member Functions | |
JITLinkReentryTrampolines (ObjectLinkingLayer &ObjLinkingLayer, EmitTrampolineFn EmitTrampoline) | |
JITLinkReentryTrampolines (JITLinkReentryTrampolines &&)=delete | |
JITLinkReentryTrampolines & | operator= (JITLinkReentryTrampolines &&)=delete |
void | emit (ResourceTrackerSP RT, size_t NumTrampolines, OnTrampolinesReadyFn OnTrampolinesReady) |
Static Public Member Functions | |
static Expected< std::unique_ptr< JITLinkReentryTrampolines > > | Create (ObjectLinkingLayer &ObjLinkingLayer) |
Create trampolines using the default reentry trampoline function for the session triple. | |
Produces trampolines on request using JITLink.
Definition at line 35 of file JITLinkReentryTrampolines.h.
using llvm::orc::JITLinkReentryTrampolines::EmitTrampolineFn = unique_function<jitlink::Symbol &( jitlink::LinkGraph &G, jitlink::Section &Sec, jitlink::Symbol &ReentrySym)> |
Definition at line 37 of file JITLinkReentryTrampolines.h.
using llvm::orc::JITLinkReentryTrampolines::OnTrampolinesReadyFn = unique_function<void( Expected<std::vector<ExecutorSymbolDef> > EntryAddrs)> |
Definition at line 40 of file JITLinkReentryTrampolines.h.
llvm::orc::JITLinkReentryTrampolines::JITLinkReentryTrampolines | ( | ObjectLinkingLayer & | ObjLinkingLayer, |
EmitTrampolineFn | EmitTrampoline | ||
) |
Definition at line 108 of file JITLinkReentryTrampolines.cpp.
References llvm::orc::LinkGraphLinkingLayer::addPlugin().
|
delete |
|
static |
Create trampolines using the default reentry trampoline function for the session triple.
Definition at line 86 of file JITLinkReentryTrampolines.cpp.
References llvm::Triple::aarch64, llvm::jitlink::aarch64::createAnonymousReentryTrampoline(), llvm::jitlink::x86_64::createAnonymousReentryTrampoline(), llvm::orc::LinkGraphLayer::getExecutionSession(), llvm::orc::ExecutionSession::getTargetTriple(), llvm::inconvertibleErrorCode(), and llvm::Triple::x86_64.
Referenced by llvm::orc::createJITLinkLazyReexportsManager().
void llvm::orc::JITLinkReentryTrampolines::emit | ( | ResourceTrackerSP | RT, |
size_t | NumTrampolines, | ||
OnTrampolinesReadyFn | OnTrampolinesReady | ||
) |
Definition at line 117 of file JITLinkReentryTrampolines.cpp.
References llvm::orc::ObjectLinkingLayer::add(), llvm::big, llvm::orc::Exec, G, llvm::IntrusiveRefCntPtr< T >::get(), llvm::orc::LinkGraphLayer::getExecutionSession(), llvm::jitlink::getGenericEdgeKindName(), I, llvm::little, llvm::orc::MatchAllSymbols, llvm::orc::NoDependenciesToRegister, llvm::orc::Read, llvm::orc::Ready, llvm::orc::JITLinkReentryTrampolines::TrampolineAddrScraperPlugin::registerGraph(), llvm::orc::Result, llvm::orc::Static, and llvm::orc::WeaklyReferencedSymbol.
|
delete |