Module objects

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§

Block
A block of statements.
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.
Lowered
A lowered function code using flat blocks.
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 constructs 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.
VariableMarker

Enums§

BlockEnd
Describes what happens to the program flow at the end of a Block.
DependencyType
Used in graph algorithms, and describes how to construct the edges in function dependency graph.
LoweringStage
The requested lowering stage.
MatchInfo
Statement
Lowered statement.

Type Aliases§

VariableArena
VariableId