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§
- Flat
Block - A block of statements. Unlike
FlatBlock
, this has no reference information, and no panic ending. - Flat
Lowered - 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.
- Match
Arm - An arm of a match statement.
- Match
Enum Info - A statement that matches an enum, and “calls” a possibly different block for each branch.
- Match
Enum Value - A statement that matches an index enum for matching on felt252, and “calls” a possibly different block for each branch.
- Match
Extern Info - A statement that calls an extern function with branches, and “calls” a possibly different block for each branch.
- Statement
Call - A statement that calls a user function.
- Statement
Const - A statement that binds a const value to a variable.
- Statement
Desnap - A statement that desnaps a variable.
- Statement
Enum Construct - A statement that construct a variant of an enum with a single argument, and binds it to a variable.
- Statement
Snapshot - A statement that takes a snapshot of a variable.
- Statement
Struct Construct - A statement that constructs a struct (tuple included) into a new variable.
- Statement
Struct Destructure - 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§
- Dependency
Type - Used in graph algorithms, and describes how to construct the edges in function dependency graph.
- Flat
Block End - Describes what happens to the program flow at the end of a
FlatBlock
. - Match
Info - Statement
- Lowered statement.