class MaterializationUnit
Declaration
class MaterializationUnit { /* full declaration omitted */ };
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.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:665
Member Variables
- protected llvm::orc::SymbolFlagsMap SymbolFlags
- protected llvm::orc::SymbolStringPtr InitSymbol
- public static char ID
Method Overview
- public MaterializationUnit(llvm::orc::MaterializationUnit::Interface I)
- private virtual void anchor()
- private virtual void discard(const llvm::orc::JITDylib & JD, const llvm::orc::SymbolStringPtr & Name)
- public void doDiscard(const llvm::orc::JITDylib & JD, const llvm::orc::SymbolStringPtr & Name)
- public const llvm::orc::SymbolStringPtr & getInitializerSymbol() const
- public virtual llvm::StringRef getName() const
- public const llvm::orc::SymbolFlagsMap & getSymbols() const
- public virtual void materialize(std::unique_ptr<MaterializationResponsibility> R)
- public virtual ~MaterializationUnit()
Methods
¶MaterializationUnit(
llvm::orc::MaterializationUnit::Interface I)
MaterializationUnit(
llvm::orc::MaterializationUnit::Interface I)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:685
Parameters
¶virtual void anchor()
virtual void anchor()
Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:718
¶virtual void discard(
const llvm::orc::JITDylib& JD,
const llvm::orc::SymbolStringPtr& Name)
virtual void discard(
const llvm::orc::JITDylib& JD,
const llvm::orc::SymbolStringPtr& Name)
Description
Implementations of this method should discard the given symbol from the source (e.g. if the source is an LLVM IR Module and the symbol is a function, delete the function body or mark it available externally).
Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:724
Parameters
- const llvm::orc::JITDylib& JD
- const llvm::orc::SymbolStringPtr& Name
¶void doDiscard(
const llvm::orc::JITDylib& JD,
const llvm::orc::SymbolStringPtr& Name)
void doDiscard(
const llvm::orc::JITDylib& JD,
const llvm::orc::SymbolStringPtr& Name)
Description
Called by JITDylibs to notify MaterializationUnits that the given symbol has been overridden.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:708
Parameters
- const llvm::orc::JITDylib& JD
- const llvm::orc::SymbolStringPtr& Name
¶const llvm::orc::SymbolStringPtr&
getInitializerSymbol() const
const llvm::orc::SymbolStringPtr&
getInitializerSymbol() const
Description
Returns the initialization symbol for this MaterializationUnit (if any).
Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:698
¶virtual llvm::StringRef getName() const
virtual llvm::StringRef getName() const
Description
Return the name of this materialization unit. Useful for debugging output.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:692
¶const llvm::orc::SymbolFlagsMap& getSymbols()
const
const llvm::orc::SymbolFlagsMap& getSymbols()
const
Description
Return the set of symbols that this source provides.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:695
¶virtual void materialize(
std::unique_ptr<MaterializationResponsibility>
R)
virtual void materialize(
std::unique_ptr<MaterializationResponsibility>
R)
Description
Implementations of this method should materialize all symbols in the materialzation unit, except for those that have been previously discarded.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:704
Parameters
- std::unique_ptr<MaterializationResponsibility> R
¶virtual ~MaterializationUnit()
virtual ~MaterializationUnit()
Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:688