Import Upstream version 20180207
[hcoop/debian/mlton.git] / doc / guide / src / ToSSA2.adoc
1 ToSSA2
2 ======
3
4 <:ToSSA2:> is a translation pass from the <:SSA:>
5 <:IntermediateLanguage:> to the <:SSA2:> <:IntermediateLanguage:>.
6
7 == Description ==
8
9 This pass is a simple conversion from a <:SSA:> program into a
10 <:SSA2:> program.
11
12 The only interesting portions of the translation are:
13
14 * an <:SSA:> `ref` type becomes an object with a single mutable field
15 * `array`, `vector`, and `ref` are eliminated in favor of select and updates
16 * `Case` transfers separate discrimination and constructor argument selects
17
18 == Implementation ==
19
20 * <!ViewGitFile(mlton,master,mlton/ssa/ssa-to-ssa2.sig)>
21 * <!ViewGitFile(mlton,master,mlton/ssa/ssa-to-ssa2.fun)>
22
23 == Details and Notes ==
24
25 {empty}