class LazyReexportsMaterializationUnit

Declaration

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

Description

A materialization unit that builds lazy re-exports. These are callable entry points that call through to the given symbols. Unlike a 'true' re-export, the address of the lazy re-export will not match the address of the re-exported symbol, but calling it will behave the same as calling the re-exported symbol.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:141

Inherits from: MaterializationUnit

Member Variables

private llvm::orc::LazyCallThroughManager& LCTManager
private llvm::orc::IndirectStubsManager& ISManager
private llvm::orc::JITDylib& SourceJD
private llvm::orc::SymbolAliasMap CallableAliases
private llvm::orc::ImplSymbolMap* AliaseeTable

Inherited from MaterializationUnit:

protected SymbolFlags
protected InitSymbol
public static ID

Method Overview

  • public LazyReexportsMaterializationUnit(llvm::orc::LazyCallThroughManager & LCTManager, llvm::orc::IndirectStubsManager & ISManager, llvm::orc::JITDylib & SourceJD, llvm::orc::SymbolAliasMap CallableAliases, llvm::orc::ImplSymbolMap * SrcJDLoc)
  • 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

LazyReexportsMaterializationUnit(
    llvm::orc::LazyCallThroughManager& LCTManager,
    llvm::orc::IndirectStubsManager& ISManager,
    llvm::orc::JITDylib& SourceJD,
    llvm::orc::SymbolAliasMap CallableAliases,
    llvm::orc::ImplSymbolMap* SrcJDLoc)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:143

Parameters

llvm::orc::LazyCallThroughManager& LCTManager
llvm::orc::IndirectStubsManager& ISManager
llvm::orc::JITDylib& SourceJD
llvm::orc::SymbolAliasMap CallableAliases
llvm::orc::ImplSymbolMap* SrcJDLoc

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/LazyReexports.h:153

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/LazyReexports.h:155

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/LazyReexports.h:149

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/LazyReexports.h:152

Parameters

std::unique_ptr<MaterializationResponsibility> R