LLVM 22.0.0git
|
A MaterializationUnit represents a set of symbol definitions that can be materialized as a group, or individually discarded (when overriding definitions are encountered). More...
#include "llvm/ExecutionEngine/Orc/MaterializationUnit.h"
Classes | |
struct | Interface |
Public Member Functions | |
MaterializationUnit (Interface I) | |
virtual | ~MaterializationUnit ()=default |
virtual StringRef | getName () const =0 |
Return the name of this materialization unit. | |
const SymbolFlagsMap & | getSymbols () const |
Return the set of symbols that this source provides. | |
const SymbolStringPtr & | getInitializerSymbol () const |
Returns the initialization symbol for this MaterializationUnit (if any). | |
virtual void | materialize (std::unique_ptr< MaterializationResponsibility > R)=0 |
Implementations of this method should materialize all symbols in the materialzation unit, except for those that have been previously discarded. | |
void | doDiscard (const JITDylib &JD, const SymbolStringPtr &Name) |
Called by JITDylibs to notify MaterializationUnits that the given symbol has been overridden. |
Static Public Attributes | |
static char | ID |
Protected Attributes | |
SymbolFlagsMap | SymbolFlags |
SymbolStringPtr | InitSymbol |
Friends | |
class | ExecutionSession |
class | JITDylib |
A MaterializationUnit represents a set of symbol definitions that can be materialized as a group, or individually discarded (when overriding definitions are encountered).
MaterializationUnits are used when providing lazy definitions of symbols to JITDylibs. The JITDylib will call materialize when the address of a symbol is requested via the lookup method. The JITDylib will call discard if a stronger definition is added or already present.
Definition at line 33 of file MaterializationUnit.h.
|
inline |
Definition at line 53 of file MaterializationUnit.h.
References I, InitSymbol, llvm::move(), and SymbolFlags.
Referenced by llvm::orc::AbsoluteSymbolsMaterializationUnit::AbsoluteSymbolsMaterializationUnit(), llvm::orc::BasicObjectLayerMaterializationUnit::BasicObjectLayerMaterializationUnit(), llvm::orc::IRMaterializationUnit::IRMaterializationUnit(), llvm::orc::IRMaterializationUnit::IRMaterializationUnit(), llvm::orc::LazyReexportsMaterializationUnit::LazyReexportsMaterializationUnit(), llvm::orc::LinkGraphMaterializationUnit::LinkGraphMaterializationUnit(), llvm::orc::LinkGraphMaterializationUnit::LinkGraphMaterializationUnit(), llvm::orc::LazyReexportsManager::MU::MU(), LLVMOrcLazyCallThroughManagerRef::OrcCAPIMaterializationUnit::OrcCAPIMaterializationUnit(), llvm::orc::RedirectableMaterializationUnit::RedirectableMaterializationUnit(), llvm::orc::ReExportsMaterializationUnit::ReExportsMaterializationUnit(), llvm::orc::SectCreateMaterializationUnit::SectCreateMaterializationUnit(), and llvm::orc::SimpleMachOHeaderMU::SimpleMachOHeaderMU().
|
virtualdefault |
|
inline |
Called by JITDylibs to notify MaterializationUnits that the given symbol has been overridden.
Definition at line 76 of file MaterializationUnit.h.
References llvm::dbgs(), DEBUG_WITH_TYPE, getName(), InitSymbol, JITDylib, and SymbolFlags.
|
inline |
Returns the initialization symbol for this MaterializationUnit (if any).
Definition at line 66 of file MaterializationUnit.h.
References InitSymbol.
Referenced by llvm::orc::COFFPlatform::notifyAdding(), llvm::orc::ELFNixPlatform::notifyAdding(), and llvm::orc::MachOPlatform::notifyAdding().
|
pure virtual |
Return the name of this materialization unit.
Useful for debugging output.
Implemented in llvm::orc::AbsoluteSymbolsMaterializationUnit, llvm::orc::BasicObjectLayerMaterializationUnit, llvm::orc::IRMaterializationUnit, llvm::orc::LazyReexportsMaterializationUnit, llvm::orc::LinkGraphMaterializationUnit, llvm::orc::RedirectableMaterializationUnit, llvm::orc::ReExportsMaterializationUnit, llvm::orc::SectCreateMaterializationUnit, llvm::orc::SimpleMachOHeaderMU, and LLVMOrcLazyCallThroughManagerRef::OrcCAPIMaterializationUnit.
Referenced by llvm::orc::COFFPlatform::notifyAdding(), llvm::orc::ELFNixPlatform::notifyAdding(), llvm::orc::MachOPlatform::notifyAdding(), and llvm::orc::operator<<().
|
inline |
Return the set of symbols that this source provides.
Definition at line 63 of file MaterializationUnit.h.
References SymbolFlags.
Referenced by llvm::orc::operator<<().
|
pure virtual |
Implementations of this method should materialize all symbols in the materialzation unit, except for those that have been previously discarded.
Implemented in llvm::orc::LinkGraphMaterializationUnit, llvm::orc::RedirectableMaterializationUnit, llvm::orc::SectCreateMaterializationUnit, llvm::orc::SimpleMachOHeaderMU, and LLVMOrcLazyCallThroughManagerRef::OrcCAPIMaterializationUnit.
|
friend |
Definition at line 34 of file MaterializationUnit.h.
References ExecutionSession.
Referenced by ExecutionSession, and llvm::orc::IRMaterializationUnit::IRMaterializationUnit().
|
friend |
Definition at line 35 of file MaterializationUnit.h.
References JITDylib.
Referenced by llvm::orc::SimpleMachOHeaderMU::createHeaderBlock(), llvm::orc::RedirectableMaterializationUnit::discard(), llvm::orc::SimpleMachOHeaderMU::discard(), doDiscard(), JITDylib, llvm::orc::LazyReexportsMaterializationUnit::LazyReexportsMaterializationUnit(), and llvm::orc::ReExportsMaterializationUnit::ReExportsMaterializationUnit().
|
static |
Definition at line 38 of file MaterializationUnit.h.
|
protected |
Definition at line 90 of file MaterializationUnit.h.
Referenced by doDiscard(), getInitializerSymbol(), llvm::orc::IRMaterializationUnit::IRMaterializationUnit(), MaterializationUnit(), and LLVMOrcLazyCallThroughManagerRef::OrcCAPIMaterializationUnit::OrcCAPIMaterializationUnit().
|
protected |
Definition at line 89 of file MaterializationUnit.h.
Referenced by doDiscard(), getSymbols(), llvm::orc::IRMaterializationUnit::IRMaterializationUnit(), and MaterializationUnit().