Import Upstream version 20180207
[hcoop/debian/mlton.git] / doc / guide / src / LoopInvariant.adoc
CommitLineData
7f918cf1
CE
1LoopInvariant
2=============
3
4<:LoopInvariant:> is an optimization pass for the <:SSA:>
5<:IntermediateLanguage:>, invoked from <:SSASimplify:>.
6
7== Description ==
8
9This pass removes loop invariant arguments to local loops.
10
11----
12 loop (x, y)
13 ...
14 ...
15 loop (x, z)
16 ...
17----
18
19becomes
20
21----
22 loop' (x, y)
23 loop (y)
24 loop (y)
25 ...
26 ...
27 loop (z)
28 ...
29----
30
31== Implementation ==
32
33* <!ViewGitFile(mlton,master,mlton/ssa/loop-invariant.fun)>
34
35== Details and Notes ==
36
37{empty}