class PartitioningIRMaterializationUnit

Declaration

class PartitioningIRMaterializationUnit : public IRMaterializationUnit { /* full declaration omitted */ };

Description

IRMaterializationUnit is a convenient base class for MaterializationUnits wrapping LLVM IR. Represents materialization responsibility for all symbols in the given module. If symbols are overridden by other definitions, then their linkage is changed to available-externally.

Declared at: llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:72

Inherits from: IRMaterializationUnit

Member Variables

private std::mutex SourceModuleMutex
private llvm::orc::CompileOnDemandLayer& Parent

Inherited from IRMaterializationUnit:

protected TSM
protected SymbolToDefinition

Inherited from MaterializationUnit:

protected SymbolFlags
protected InitSymbol
public static ID

Method Overview

  • public PartitioningIRMaterializationUnit(llvm::orc::ExecutionSession & ES, const IRSymbolMapper::ManglingOptions & MO, llvm::orc::ThreadSafeModule TSM, llvm::orc::CompileOnDemandLayer & Parent)
  • public PartitioningIRMaterializationUnit(llvm::orc::ThreadSafeModule TSM, llvm::orc::MaterializationUnit::Interface I, llvm::orc::IRMaterializationUnit::SymbolNameToDefinitionMap SymbolToDefinition, llvm::orc::CompileOnDemandLayer & Parent)
  • private void discard(const llvm::orc::JITDylib & V, const llvm::orc::SymbolStringPtr & Name)
  • private void materialize(std::unique_ptr<MaterializationResponsibility> R)

Inherited from IRMaterializationUnit:

Inherited from MaterializationUnit:

Methods

PartitioningIRMaterializationUnit(
    llvm::orc::ExecutionSession& ES,
    const IRSymbolMapper::ManglingOptions& MO,
    llvm::orc::ThreadSafeModule TSM,
    llvm::orc::CompileOnDemandLayer& Parent)

Declared at: llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:74

Parameters

llvm::orc::ExecutionSession& ES
const IRSymbolMapper::ManglingOptions& MO
llvm::orc::ThreadSafeModule TSM
llvm::orc::CompileOnDemandLayer& Parent

PartitioningIRMaterializationUnit(
    llvm::orc::ThreadSafeModule TSM,
    llvm::orc::MaterializationUnit::Interface I,
    llvm::orc::IRMaterializationUnit::
        SymbolNameToDefinitionMap
            SymbolToDefinition,
    llvm::orc::CompileOnDemandLayer& Parent)

Declared at: llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:80

Parameters

llvm::orc::ThreadSafeModule TSM
llvm::orc::MaterializationUnit::Interface I
llvm::orc::IRMaterializationUnit:: SymbolNameToDefinitionMap SymbolToDefinition
llvm::orc::CompileOnDemandLayer& Parent

void discard(
    const llvm::orc::JITDylib& V,
    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/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:94

Parameters

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

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/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:89

Parameters

std::unique_ptr<MaterializationResponsibility> R