Documentation

Lean.Compiler.LCNF.ExplicitBoxing

This pass is responsible for inserting box and unbox instructions and generally attempts to make the IR actually type correct. After this pass is the first time where we can generally assume type information to actually be correct in the entirety of LCNF. Furthermore, it also generates boxed versions of functions if required. They take all arguments as [t]object/tagged and return a [t]object/tagged. These functions are used by the interpreter and when allocating closures.

This pass does not support: isShared, inc, dec, set, setTag and del.

For all declarations in decls add their _boxed version if required.

Equations
  • One or more equations did not get rendered due to their size.
Instances For