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:
Inherited from MaterializationUnit:
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)
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)
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)
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)
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