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)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:685

Parameters

llvm::orc::MaterializationUnit::Interface I

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)

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)

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

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

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

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)

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()

Declared at: llvm/include/llvm/ExecutionEngine/Orc/Core.h:688