Skip to main content

egraph_stmts

Function egraph_stmts 

Source
pub fn egraph_stmts<'a>(
    stmts: Vec<Stmt<'a>>,
    expr_arena: &'a Arena<Expr<'a>>,
    stmt_arena: &'a Arena<Stmt<'a>>,
    interner: &mut Interner,
) -> Vec<Stmt<'a>>
Expand description

The Architect statement pass: STRAIGHT-LINE RUNS of simple statements share one e-graph (a Let merges its variable with its defining expression’s class, so later statements extract against everything proven so far — the GVN replacement); everything else falls back to per-expression graphs and ENDS the run. Versioning makes mutation kills structural.