LLVM  8.0.1
Public Member Functions | Protected Attributes | List of all members
llvm::orc::MaterializationUnit Class Referenceabstract

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/Core.h"

Inheritance diagram for llvm::orc::MaterializationUnit:
Inheritance graph
[legend]
Collaboration diagram for llvm::orc::MaterializationUnit:
Collaboration graph
[legend]

Public Member Functions

 MaterializationUnit (SymbolFlagsMap InitalSymbolFlags, VModuleKey K)
 
virtual ~MaterializationUnit ()
 
virtual StringRef getName () const =0
 Return the name of this materialization unit. More...
 
const SymbolFlagsMapgetSymbols () const
 Return the set of symbols that this source provides. More...
 
void doMaterialize (JITDylib &JD)
 Called by materialization dispatchers (see ExecutionSession::DispatchMaterializationFunction) to trigger materialization of this MaterializationUnit. More...
 
void doDiscard (const JITDylib &JD, const SymbolStringPtr &Name)
 Called by JITDylibs to notify MaterializationUnits that the given symbol has been overridden. More...
 

Protected Attributes

SymbolFlagsMap SymbolFlags
 
VModuleKey K
 

Detailed Description

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 252 of file Core.h.

Constructor & Destructor Documentation

◆ MaterializationUnit()

llvm::orc::MaterializationUnit::MaterializationUnit ( SymbolFlagsMap  InitalSymbolFlags,
VModuleKey  K 
)
inline

Definition at line 254 of file Core.h.

◆ ~MaterializationUnit()

virtual llvm::orc::MaterializationUnit::~MaterializationUnit ( )
inlinevirtual

Definition at line 257 of file Core.h.

References getName().

Member Function Documentation

◆ doDiscard()

void llvm::orc::MaterializationUnit::doDiscard ( const JITDylib JD,
const SymbolStringPtr Name 
)
inline

Called by JITDylibs to notify MaterializationUnits that the given symbol has been overridden.

Definition at line 276 of file Core.h.

Referenced by llvm::orc::JITDylib::dump().

◆ doMaterialize()

void llvm::orc::MaterializationUnit::doMaterialize ( JITDylib JD)
inline

Called by materialization dispatchers (see ExecutionSession::DispatchMaterializationFunction) to trigger materialization of this MaterializationUnit.

Definition at line 269 of file Core.h.

◆ getName()

virtual StringRef llvm::orc::MaterializationUnit::getName ( ) const
pure virtual

◆ getSymbols()

const SymbolFlagsMap& llvm::orc::MaterializationUnit::getSymbols ( ) const
inline

Return the set of symbols that this source provides.

Definition at line 264 of file Core.h.

Referenced by llvm::orc::JITDylib::dump(), and llvm::orc::operator<<().

Member Data Documentation

◆ K

VModuleKey llvm::orc::MaterializationUnit::K
protected

Definition at line 283 of file Core.h.

◆ SymbolFlags

SymbolFlagsMap llvm::orc::MaterializationUnit::SymbolFlags
protected

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