MLton

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

Details and Notes