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§
Structs§
- A block of statements. Unlike
FlatBlock
, this has no reference information, and no panic ending. - A lowered function code using flat blocks.
- 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.
- An arm of a match statement.
- A statement that matches an enum, and “calls” a possibly different block for each branch.
- A statement that matches an index enum for matching on felt252, and “calls” a possibly different block for each branch.
- A statement that calls an extern function with branches, and “calls” a possibly different block for each branch.
- A statement that calls a user function.
- A statement that binds a const value to a variable.
- A statement that desnaps a variable.
- A statement that construct a variant of an enum with a single argument, and binds it to a variable.
- A statement that takes a snapshot of a variable.
- A statement that constructs a struct (tuple included) into a new variable.
- A statement that destructures a struct (tuple included), introducing its elements as new variables.
- Remapping of lowered variable ids. Useful for convergence of branches.
- Represents a usage of a variable.
- Lowered variable representation.
Enums§
- Used in graph algorithms, and describes how to construct the edges in function dependency graph.
- Describes what happens to the program flow at the end of a
FlatBlock
. - Lowered statement.