LLVM 22.0.0git
llvm::orc::LazyReexportsManager Class Reference

#include "llvm/ExecutionEngine/Orc/LazyReexports.h"

Inheritance diagram for llvm::orc::LazyReexportsManager:
[legend]

Classes

struct  CallThroughInfo
class  Listener
class  MU
class  Plugin

Public Types

using OnTrampolinesReadyFn
using EmitTrampolinesFn

Public Member Functions

 LazyReexportsManager (LazyReexportsManager &&)=delete
LazyReexportsManageroperator= (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 ()

Static Public Member Functions

static Expected< std::unique_ptr< LazyReexportsManager > > Create (EmitTrampolinesFn EmitTrampolines, RedirectableSymbolManager &RSMgr, JITDylib &PlatformJD, Listener *L=nullptr)
 Create a LazyReexportsManager that uses the ORC runtime for reentry.

Friends

std::unique_ptr< MaterializationUnitlazyReexports (LazyReexportsManager &LRM, SymbolAliasMap Reexports)
 Define lazy-reexports based on the given SymbolAliasMap.

Detailed Description

Definition at line 179 of file LazyReexports.h.

Member Typedef Documentation

◆ EmitTrampolinesFn

Initial value:
unique_function<void(ResourceTrackerSP RT, size_t NumTrampolines,
OnTrampolinesReadyFn OnTrampolinesReady)>
unique_function< void( Expected< std::vector< ExecutorSymbolDef > > EntryAddrs)> OnTrampolinesReadyFn
unique_function is a type-erasing functor similar to std::function.
IntrusiveRefCntPtr< ResourceTracker > ResourceTrackerSP
Definition Core.h:52

Definition at line 218 of file LazyReexports.h.

◆ OnTrampolinesReadyFn

Initial value:
Expected<std::vector<ExecutorSymbolDef>> EntryAddrs)>
Tagged union holding either a T or a Error.
Definition Error.h:485

Definition at line 216 of file LazyReexports.h.

Constructor & Destructor Documentation

◆ LazyReexportsManager()

llvm::orc::LazyReexportsManager::LazyReexportsManager ( LazyReexportsManager && )
delete

Member Function Documentation

◆ Create()

Expected< std::unique_ptr< LazyReexportsManager > > llvm::orc::LazyReexportsManager::Create ( EmitTrampolinesFn EmitTrampolines,
RedirectableSymbolManager & RSMgr,
JITDylib & PlatformJD,
Listener * L = nullptr )
static

Create a LazyReexportsManager that uses the ORC runtime for reentry.

This will work both in-process and out-of-process.

Definition at line 286 of file LazyReexports.cpp.

References Create(), LazyReexportsManager(), and llvm::Error::success().

Referenced by Create(), and llvm::orc::createJITLinkLazyReexportsManager().

◆ handleRemoveResources()

Error llvm::orc::LazyReexportsManager::handleRemoveResources ( JITDylib & JD,
ResourceKey K )
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 297 of file LazyReexports.cpp.

References assert(), llvm::orc::JITDylib::getExecutionSession(), handleRemoveResources(), I, llvm::orc::ExecutionSession::runSessionLocked(), and llvm::Error::success().

Referenced by handleRemoveResources(), and operator=().

◆ handleTransferResources()

void llvm::orc::LazyReexportsManager::handleTransferResources ( JITDylib & JD,
ResourceKey DstK,
ResourceKey SrcK )
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 313 of file LazyReexports.cpp.

References llvm::append_range(), handleTransferResources(), and I.

Referenced by handleTransferResources(), and operator=().

◆ operator=()

LazyReexportsManager & llvm::orc::LazyReexportsManager::operator= ( LazyReexportsManager && )
delete

◆ lazyReexports

std::unique_ptr< MaterializationUnit > lazyReexports ( LazyReexportsManager & LRM,
SymbolAliasMap Reexports )
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 270 of file LazyReexports.h.

References LazyReexportsManager().


The documentation for this class was generated from the following files: