[MLton] SSA vs SSA2

Stephen Weeks MLton@mlton.org
Sun, 20 Nov 2005 20:14:35 -0800

> the advantage of SSA over SSA2 is that the default is immutability.
> And most optimizations, like loop-invariant code motion, are only
> sound for immutable types/values.  It's relatively easy to check for
> Ref/Array prims and ref/array types in SSA, while in SSA2, any
> possible component could be mutable.  

I don't see a significant difference.  There is are mutable constructs
in each IL, and which must be treated correctly by an optimization.

> (Witness the recent shrinker bug.)

That came from translating code written for SSA to SSA2, where the
meaning of language constructs changed.  I don't think it's indicative
of problems for new passes.