Problem
For loops currently cannot handle symbolic values that are reassigned across iterations.
Symbolic values use pure SSA — assign_local only updates a Rust-side Vec, but the MLIR back-edge (cf::br with empty args &[]) has no mechanism to carry the updated SSA value from the end of one iteration to the start of the next.
Example that should work
df main() i32 {
sym x: expr<i32>;
let e: expr<i32> = x;
for i in 0..10 {
e = e + 1;
}
return eval(e, x, 0);
}
Problem
For loops currently cannot handle symbolic values that are reassigned across iterations.
Symbolic values use pure SSA —
assign_localonly updates a Rust-sideVec, but the MLIR back-edge (cf::brwith empty args&[]) has no mechanism to carry the updated SSA value from the end of one iteration to the start of the next.Example that should work