class ReExportsMaterializationUnit

Declaration

class ReExportsMaterializationUnit : public MaterializationUnit { /* full declaration omitted */ };

Description

A materialization unit for symbol aliases. Allows existing symbols to be aliased with alternate flags.

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

Inherits from: MaterializationUnit

Member Variables

private llvm::orc::JITDylib* SourceJD = nullptr
private llvm::orc::JITDylibLookupFlags SourceJDLookupFlags
private llvm::orc::SymbolAliasMap Aliases

Inherited from MaterializationUnit:

protected SymbolFlags
protected InitSymbol
public static ID

Method Overview

  • public ReExportsMaterializationUnit(llvm::orc::JITDylib * SourceJD, llvm::orc::JITDylibLookupFlags SourceJDLookupFlags, llvm::orc::SymbolAliasMap Aliases)
  • private void discard(const llvm::orc::JITDylib & JD, const llvm::orc::SymbolStringPtr & Name)
  • private static MaterializationUnit::Interface extractFlags(const llvm::orc::SymbolAliasMap & Aliases)
  • public llvm::StringRef getName() const
  • private void materialize(std::unique_ptr<MaterializationResponsibility> R)

Inherited from MaterializationUnit:

Methods

ReExportsMaterializationUnit(
    llvm::orc::JITDylib* SourceJD,
    llvm::orc::JITDylibLookupFlags
        SourceJDLookupFlags,
    llvm::orc::SymbolAliasMap Aliases)

Description

SourceJD is allowed to be nullptr, in which case the source JITDylib is taken to be whatever JITDylib these definitions are materialized in (and MatchNonExported has no effect). This is useful for defining aliases within a JITDylib. Note: Care must be taken that no sets of aliases form a cycle, as such a cycle will result in a deadlock when any symbol in the cycle is resolved.

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

Parameters

llvm::orc::JITDylib* SourceJD
llvm::orc::JITDylibLookupFlags SourceJDLookupFlags
llvm::orc::SymbolAliasMap Aliases

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:781

Parameters

const llvm::orc::JITDylib& JD
const llvm::orc::SymbolStringPtr& Name

static MaterializationUnit::Interface
extractFlags(
    const llvm::orc::SymbolAliasMap& Aliases)

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

Parameters

const llvm::orc::SymbolAliasMap& Aliases

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:777

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:780

Parameters

std::unique_ptr<MaterializationResponsibility> R