Official release 4.12.1
val lift : backend:(module Backend_intf.S) -> Flambda.program -> Flambda.program

Lift toplevel Let-expressions to Flambda program constructions such that the results of evaluation of such expressions may be accessed directly, through symbols, rather than through closures. The Let-expressions typically come from the compilation of modules (using the bytecode strategy) in Translmod.

This means of compilation supersedes the old "transl_store_" methodology for native code.

An Initialize_symbol construction generated by this pass may be subsequently rewritten to Let_symbol if it is discovered that the initializer is in fact constant. (See Initialize_symbol_to_let_symbol.)

The program constructions generated by this pass will be joined by others that arise from the lifting of constants (see Lift_constants).