public record class LibraryIrFunctionA lowered function: a signature, its storage, its SSA value table and a structured body.
Remarks
Values is the value table, and the instruction stream refers to a value by its id alone. Writing each type once rather than at every mention keeps the artefact small and makes the reader's interning trivial — id i becomes one object, which is what the IR verifier's define-once check needs.
A table of (id, type) pairs rather than an array indexed by id, because the numbering can have gaps: dead-branch elimination drops a folded branch after its condition was numbered. ValueCount therefore travels separately instead of being inferred from the table's length.
Fields and properties (9)
public required string KeyWhat a reference to this function resolves by: the declaration's qualified signature.
public required string NameThe identifier the function carried in the module that built it.
public required LibraryIrTypeReference ReturnTypepublic ImmutableArray<LibraryIrVariable> Parameterspublic ImmutableArray<LibraryIrVariable> Localspublic ImmutableArray<LibraryIrValue> ValuesThe type of every value the function defines, keyed by value id.
public int ValueCountHow many values the function numbered, gaps included.
public bool NoContractionWhether the declaration forbade fusing this body's arithmetic — [NoContraction].
public LibraryIrBlock Body
Used by (5)
- CompiledLibraryTestsVixen.Raven.Tests
- LibraryIrVixen.Raven
- LibraryIrDecoderVixen.Raven
- LibraryIrEncoderVixen.Raven
- NoContractionTestsVixen.Raven.Tests