Module Lift_let_to_initialize_symbol
val lift : backend:(module Backend_intf.S) -> Flambda.program -> Flambda.programLift toplevel
Let-expressions to Flambdaprogramconstructions 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_symbolconstruction generated by this pass may be subsequently rewritten toLet_symbolif it is discovered that the initializer is in fact constant. (SeeInitialize_symbol_to_let_symbol.)The
programconstructions generated by this pass will be joined by others that arise from the lifting of constants (seeLift_constants).