cairo_lang_lowering

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§

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§

Type Aliases§