Table of Contents

Class IrProgram

Namespace
MuLang.IR
Assembly
MuLang.IR.dll

Represents a complete portable MuLang IR program.

public sealed record IrProgram : IEquatable<IrProgram>
Inheritance
IrProgram
Implements
Inherited Members

Constructors

IrProgram(EnvironmentFingerprint, CompilationMode, LanguageProfileFingerprint, IrFunction, IReadOnlyList<IrFunction>)

Represents a complete portable MuLang IR program.

public IrProgram(EnvironmentFingerprint EnvironmentFingerprint, CompilationMode CompilationMode, LanguageProfileFingerprint LanguageProfileFingerprint, IrFunction EntryFunction, IReadOnlyList<IrFunction> UserFunctions)

Parameters

EnvironmentFingerprint EnvironmentFingerprint

The fingerprint of the environment used during compilation.

CompilationMode CompilationMode

The source compilation mode.

LanguageProfileFingerprint LanguageProfileFingerprint

The fingerprint of the language profile used during compilation.

EntryFunction IrFunction

The program entry function.

UserFunctions IReadOnlyList<IrFunction>

The user-defined functions.

Properties

Attributes

Gets the well-known diagnostic attributes.

public IrAttributeCollection Attributes { get; init; }

Property Value

IrAttributeCollection

Blocks

Gets the basic blocks of the entry function.

public IReadOnlyList<IrBasicBlock> Blocks { get; }

Property Value

IReadOnlyList<IrBasicBlock>

CompilationMode

The source compilation mode.

public CompilationMode CompilationMode { get; init; }

Property Value

CompilationMode

EntryBlock

Gets the entry block identifier of the entry function.

public int EntryBlock { get; }

Property Value

int

EntryFunction

The program entry function.

public IrFunction EntryFunction { get; init; }

Property Value

IrFunction

EnvironmentFingerprint

The fingerprint of the environment used during compilation.

public EnvironmentFingerprint EnvironmentFingerprint { get; init; }

Property Value

EnvironmentFingerprint

LanguageProfileFingerprint

The fingerprint of the language profile used during compilation.

public LanguageProfileFingerprint LanguageProfileFingerprint { get; init; }

Property Value

LanguageProfileFingerprint

ResultType

Gets the result type of the entry function.

public TypeSymbol ResultType { get; }

Property Value

TypeSymbol

Slots

Gets the slots of the entry function.

public IReadOnlyList<IrSlot> Slots { get; }

Property Value

IReadOnlyList<IrSlot>

UserFunctions

The user-defined functions.

public IReadOnlyList<IrFunction> UserFunctions { get; init; }

Property Value

IReadOnlyList<IrFunction>

Methods

Deconstruct(out EnvironmentFingerprint, out CompilationMode, out LanguageProfileFingerprint, out IrFunction, out IReadOnlyList<IrFunction>)

public void Deconstruct(out EnvironmentFingerprint EnvironmentFingerprint, out CompilationMode CompilationMode, out LanguageProfileFingerprint LanguageProfileFingerprint, out IrFunction EntryFunction, out IReadOnlyList<IrFunction> UserFunctions)

Parameters

EnvironmentFingerprint EnvironmentFingerprint
CompilationMode CompilationMode
LanguageProfileFingerprint LanguageProfileFingerprint
EntryFunction IrFunction
UserFunctions IReadOnlyList<IrFunction>

Equals(IrProgram?)

public bool Equals(IrProgram? other)

Parameters

other IrProgram

Returns

bool

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

GetHashCode()

public override int GetHashCode()

Returns

int

ToString()

public override string ToString()

Returns

string

Operators

operator ==(IrProgram?, IrProgram?)

public static bool operator ==(IrProgram? left, IrProgram? right)

Parameters

left IrProgram
right IrProgram

Returns

bool

operator !=(IrProgram?, IrProgram?)

public static bool operator !=(IrProgram? left, IrProgram? right)

Parameters

left IrProgram
right IrProgram

Returns

bool