moonpool/dev/ocaml/Lift_let_to_initialize_symbol/index.html
2023-08-28 17:11:38 +00:00

5 lines
No EOL
2.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lift_let_to_initialize_symbol (ocaml.Lift_let_to_initialize_symbol)</title><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">ocaml</a> &#x00BB; Lift_let_to_initialize_symbol</nav><header class="odoc-preamble"><h1>Module <code><span>Lift_let_to_initialize_symbol</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-lift"><a href="#val-lift" class="anchor"></a><code><span><span class="keyword">val</span> lift :
<span>backend:<span>(<span class="keyword">module</span> <a href="../Backend_intf/module-type-S/index.html">Backend_intf.S</a>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Flambda/index.html#type-program">Flambda.program</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../Flambda/index.html#type-program">Flambda.program</a></span></code></div><div class="spec-doc"><p>Lift toplevel <code>Let</code>-expressions to Flambda <code>program</code> constructions such that the results of evaluation of such expressions may be accessed directly, through symbols, rather than through closures. The <code>Let</code>-expressions typically come from the compilation of modules (using the bytecode strategy) in <code>Translmod</code>.</p><p>This means of compilation supersedes the old &quot;transl_store_&quot; methodology for native code.</p><p>An <code>Initialize_symbol</code> construction generated by this pass may be subsequently rewritten to <code>Let_symbol</code> if it is discovered that the initializer is in fact constant. (See <code>Initialize_symbol_to_let_symbol</code>.)</p><p>The <code>program</code> constructions generated by this pass will be joined by others that arise from the lifting of constants (see <code>Lift_constants</code>).</p></div></div></div></body></html>