val lift : backend:(module Backend_intf.S) -> Flambda.program -> Flambda.program
Lift toplevel
Let
-expressions to Flambdaprogram
constructions such that the results of evaluation of such expressions may be accessed directly, through symbols, rather than through closures. TheLet
-expressions typically come from the compilation of modules (using the bytecode strategy) inTranslmod
.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 toLet_symbol
if it is discovered that the initializer is in fact constant. (SeeInitialize_symbol_to_let_symbol
.)The
program
constructions generated by this pass will be joined by others that arise from the lifting of constants (seeLift_constants
).