LLVM  14.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::orc::Platform Class Referenceabstract

Platforms set up standard symbols and mediate interactions between dynamic initializers (e.g. More...

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

Inheritance diagram for llvm::orc::Platform:
Inheritance graph
[legend]

Public Member Functions

virtual ~Platform ()
 
virtual Error setupJITDylib (JITDylib &JD)=0
 This method will be called outside the session lock each time a JITDylib is created (unless it is created with EmptyJITDylib set) to allow the Platform to install any JITDylib specific standard symbols (e.g __dso_handle). More...
 
virtual Error notifyAdding (ResourceTracker &RT, const MaterializationUnit &MU)=0
 This method will be called under the ExecutionSession lock each time a MaterializationUnit is added to a JITDylib. More...
 
virtual Error notifyRemoving (ResourceTracker &RT)=0
 This method will be called under the ExecutionSession lock when a ResourceTracker is removed. More...
 

Static Public Member Functions

static Expected< DenseMap< JITDylib *, SymbolMap > > lookupInitSymbols (ExecutionSession &ES, const DenseMap< JITDylib *, SymbolLookupSet > &InitSyms)
 A utility function for looking up initializer symbols. More...
 
static void lookupInitSymbolsAsync (unique_function< void(Error)> OnComplete, ExecutionSession &ES, const DenseMap< JITDylib *, SymbolLookupSet > &InitSyms)
 Performs an async lookup for the the given symbols in each of the given JITDylibs, calling the given handler with the compound result map once all lookups have completed. More...
 

Detailed Description

Platforms set up standard symbols and mediate interactions between dynamic initializers (e.g.

C++ static constructors) and ExecutionSession state. Note that Platforms do not automatically run initializers: clients are still responsible for doing this.

Definition at line 1222 of file Core.h.

Constructor & Destructor Documentation

◆ ~Platform()

llvm::orc::Platform::~Platform ( )
virtual

Definition at line 1707 of file Core.cpp.

Member Function Documentation

◆ lookupInitSymbols()

Expected< DenseMap< JITDylib *, SymbolMap > > llvm::orc::Platform::lookupInitSymbols ( ExecutionSession ES,
const DenseMap< JITDylib *, SymbolLookupSet > &  InitSyms 
)
static

◆ lookupInitSymbolsAsync()

void llvm::orc::Platform::lookupInitSymbolsAsync ( unique_function< void(Error)>  OnComplete,
ExecutionSession ES,
const DenseMap< JITDylib *, SymbolLookupSet > &  InitSyms 
)
static

Performs an async lookup for the the given symbols in each of the given JITDylibs, calling the given handler with the compound result map once all lookups have completed.

Definition at line 1758 of file Core.cpp.

References move.

◆ notifyAdding()

virtual Error llvm::orc::Platform::notifyAdding ( ResourceTracker RT,
const MaterializationUnit MU 
)
pure virtual

This method will be called under the ExecutionSession lock each time a MaterializationUnit is added to a JITDylib.

Implemented in llvm::orc::MachOPlatform, and llvm::orc::ELFNixPlatform.

◆ notifyRemoving()

virtual Error llvm::orc::Platform::notifyRemoving ( ResourceTracker RT)
pure virtual

This method will be called under the ExecutionSession lock when a ResourceTracker is removed.

Implemented in llvm::orc::MachOPlatform, and llvm::orc::ELFNixPlatform.

◆ setupJITDylib()

virtual Error llvm::orc::Platform::setupJITDylib ( JITDylib JD)
pure virtual

This method will be called outside the session lock each time a JITDylib is created (unless it is created with EmptyJITDylib set) to allow the Platform to install any JITDylib specific standard symbols (e.g __dso_handle).

Implemented in llvm::orc::MachOPlatform, and llvm::orc::ELFNixPlatform.


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