LLVM 20.0.0git
|
#include "llvm/ExecutionEngine/Orc/LazyReexports.h"
Classes | |
class | MU |
class | Plugin |
Public Types | |
using | OnTrampolinesReadyFn = unique_function< void(Expected< std::vector< ExecutorSymbolDef > > EntryAddrs)> |
using | EmitTrampolinesFn = unique_function< void(ResourceTrackerSP RT, size_t NumTrampolines, OnTrampolinesReadyFn OnTrampolinesReady)> |
Public Member Functions | |
LazyReexportsManager (LazyReexportsManager &&)=delete | |
LazyReexportsManager & | operator= (LazyReexportsManager &&)=delete |
Error | handleRemoveResources (JITDylib &JD, ResourceKey K) override |
This function will be called outside the session lock. | |
void | handleTransferResources (JITDylib &JD, ResourceKey DstK, ResourceKey SrcK) override |
This function will be called inside the session lock. | |
Public Member Functions inherited from llvm::orc::ResourceManager | |
virtual | ~ResourceManager () |
virtual Error | handleRemoveResources (JITDylib &JD, ResourceKey K)=0 |
This function will be called outside the session lock. | |
virtual void | handleTransferResources (JITDylib &JD, ResourceKey DstK, ResourceKey SrcK)=0 |
This function will be called inside the session lock. | |
Static Public Member Functions | |
static Expected< std::unique_ptr< LazyReexportsManager > > | Create (EmitTrampolinesFn EmitTrampolines, RedirectableSymbolManager &RSMgr, JITDylib &PlatformJD) |
Create a LazyReexportsManager that uses the ORC runtime for reentry. | |
Friends | |
std::unique_ptr< MaterializationUnit > | lazyReexports (LazyReexportsManager &, SymbolAliasMap) |
Define lazy-reexports based on the given SymbolAliasMap. | |
Definition at line 176 of file LazyReexports.h.
using llvm::orc::LazyReexportsManager::EmitTrampolinesFn = unique_function<void(ResourceTrackerSP RT, size_t NumTrampolines, OnTrampolinesReadyFn OnTrampolinesReady)> |
Definition at line 184 of file LazyReexports.h.
using llvm::orc::LazyReexportsManager::OnTrampolinesReadyFn = unique_function<void( Expected<std::vector<ExecutorSymbolDef> > EntryAddrs)> |
Definition at line 182 of file LazyReexports.h.
|
delete |
|
static |
Create a LazyReexportsManager that uses the ORC runtime for reentry.
This will work both in-process and out-of-process.
Definition at line 284 of file LazyReexports.cpp.
References llvm::Error::success().
Referenced by llvm::orc::createJITLinkLazyReexportsManager().
|
overridevirtual |
This function will be called outside the session lock.
ResourceManagers should perform book-keeping under the session lock, and any expensive cleanup outside the session lock.
Implements llvm::orc::ResourceManager.
Definition at line 295 of file LazyReexports.cpp.
References llvm::orc::JITDylib::getExecutionSession(), I, and llvm::orc::ExecutionSession::runSessionLocked().
|
overridevirtual |
This function will be called inside the session lock.
ResourceManagers DO NOT need to re-lock the session.
Implements llvm::orc::ResourceManager.
Definition at line 310 of file LazyReexports.cpp.
References I.
|
delete |
|
friend |
Define lazy-reexports based on the given SymbolAliasMap.
Each lazy re-export is a callable symbol that will look up and dispatch to the given aliasee on first call. All subsequent calls will go directly to the aliasee.
Definition at line 241 of file LazyReexports.h.