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
![[WWW]](moin-www.png) loop-invariant.sig
loop-invariant.sig
 
![[WWW]](moin-www.png) loop-invariant.fun
loop-invariant.fun