= LoopInvariant

<<LoopInvariant#>> is an optimization pass for the <<SSA#>>
<<IntermediateLanguage#>>, invoked from <<SSASimplify#>>.

== Description

This pass removes loop invariant arguments to local loops.

----
  loop (x, y)
    ...
  ...
    loop (x, z)
  ...
----

becomes

----
  loop' (x, y)
    loop (y)
  loop (y)
    ...
  ...
    loop (z)
  ...
----

== Implementation

* https://github.com/MLton/mlton/blob/master/mlton/ssa/loop-invariant.fun[`loop-invariant.fun`]

== Details and Notes

{empty}
