Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | LoopInvariant |
2 | ============= | |
3 | ||
4 | <:LoopInvariant:> is an optimization pass for the <:SSA:> | |
5 | <:IntermediateLanguage:>, invoked from <:SSASimplify:>. | |
6 | ||
7 | == Description == | |
8 | ||
9 | This pass removes loop invariant arguments to local loops. | |
10 | ||
11 | ---- | |
12 | loop (x, y) | |
13 | ... | |
14 | ... | |
15 | loop (x, z) | |
16 | ... | |
17 | ---- | |
18 | ||
19 | becomes | |
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} |