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.