public record class LibraryIrFunctionA lowered function: a signature, its storage, its SSA value table and a structured body.
No guide page documents this yet — the page shows what the code says about itself.
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 (8)
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 LibraryIrBlock Body
Used by (4)
- CompiledLibraryTestsVixen.Raven.Tests
- LibraryIrVixen.Raven
- LibraryIrDecoderVixen.Raven
- LibraryIrEncoderVixen.Raven