Module objects

Source
Expand description

Intermediate representation objects after lowering from semantic.

This representation is SSA (static single-assignment): each variable is defined before usage and assigned once. It is also normal form: each function argument is a variable, rather than a compound expression.

Re-exports§

pub use blocks::BlockId;

Modules§

blocks

Structs§

FlatBlock
A block of statements. Unlike FlatBlock, this has no reference information, and no panic ending.
FlatLowered
A lowered function code using flat blocks.
Location
The Location struct represents the source location of a lowered object. It is used to store the most relevant source location for a lowering object.
MatchArm
An arm of a match statement.
MatchEnumInfo
A statement that matches an enum, and “calls” a possibly different block for each branch.
MatchEnumValue
A statement that matches an index enum for matching on felt252, and “calls” a possibly different block for each branch.
MatchExternInfo
A statement that calls an extern function with branches, and “calls” a possibly different block for each branch.
StatementCall
A statement that calls a user function.
StatementConst
A statement that binds a const value to a variable.
StatementDesnap
A statement that desnaps a variable.
StatementEnumConstruct
A statement that construct a variant of an enum with a single argument, and binds it to a variable.
StatementSnapshot
A statement that takes a snapshot of a variable.
StatementStructConstruct
A statement that constructs a struct (tuple included) into a new variable.
StatementStructDestructure
A statement that destructures a struct (tuple included), introducing its elements as new variables.
VarRemapping
Remapping of lowered variable ids. Useful for convergence of branches.
VarUsage
Represents a usage of a variable.
Variable
Lowered variable representation.

Enums§

DependencyType
Used in graph algorithms, and describes how to construct the edges in function dependency graph.
FlatBlockEnd
Describes what happens to the program flow at the end of a FlatBlock.
MatchInfo
Statement
Lowered statement.

Type Aliases§

VariableId