Module cairo_lang_lowering::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
Structs
A block of statements. Unlike
StructuredBlock
, this has no reference information,
and no panic ending.A statement that calls a user function.
A statement that jumps to another block. If that block ends with a BlockEnd::CallSite, the flow
returns to the statement following this one.
A statement that construct a variant of an enum with a single argument, and binds it to a
variable.
A statement that binds a literal value to a variable.
A statement that matches an enum, 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 constructs a struct (tuple included) into a new variable.
A statement that destructures a struct (tuple included), introducing its elements as new
variables.
A block of statements. Each block gets inputs and outputs, and is composed of
a linear sequence of statements.
Lowered variable representation.
Enums
Describes what happens to the program flow at the end of a
FlatBlock
.Lowered statement.
Describes what happens to the program flow at the end of a
StructuredBlock
.