<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>ProcCfg (infer.Absint.ProcCfg)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.1"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><scriptsrc="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><divclass="content"><header><nav><ahref="../index.html">Up</a>–<ahref="../../index.html">infer</a>»<ahref="../index.html">Absint</a>» ProcCfg</nav><h1>Module <code>Absint.ProcCfg</code></h1></header><aside><p>Control-flow graph for a single procedure (as opposed to cfg.ml, which represents a cfg for a file). Defines useful wrappers that allows us to do tricks like turn a forward cfg to into a backward one, or view a cfg as having a single instruction per block</p></aside><divclass="spec module-type"id="module-type-Node"><ahref="#module-type-Node"class="anchor"></a><code><spanclass="keyword">module</span><spanclass="keyword">type</span><ahref="module-type-Node/index.html">Node</a> = <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><divclass="spec module-type"id="module-type-S"><ahref="#module-type-S"class="anchor"></a><code><spanclass="keyword">module</span><spanclass="keyword">type</span><ahref="module-type-S/index.html">S</a> = <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><divclass="spec module"id="module-DefaultNode"><ahref="#module-DefaultNode"class="anchor"></a><code><spanclass="keyword">module</span><ahref="DefaultNode/index.html">DefaultNode</a> : <ahref="index.html#module-type-Node">Node</a><spanclass="keyword">with</span><spanclass="keyword">type</span><ahref="module-type-Node/index.html#type-t">t</a> = <ahref="../../IR/Procdesc/Node/index.html#type-t">IR.Procdesc.Node.t</a><spanclass="keyword">and</span><spanclass="keyword">type</span><ahref="module-type-Node/index.html#type-id">id</a> = <ahref="../../IR/Procdesc/Node/index.html#type-id">IR.Procdesc.Node.id</a></code></div><divclass="spec module"id="module-InstrNode"><ahref="#module-InstrNode"class="anchor"></a><code><spanclass="keyword">module</span><ahref="InstrNode/index.html">InstrNode</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><dl><dtclass="spec module"id="module-Normal"><ahref="#module-Normal"class="anchor"></a><code><spanclass="keyword">module</span><ahref="Normal/index.html">Normal</a> : <ahref="index.html#module-type-S">S</a><spanclass="keyword">with</span><spanclass="keyword">type</span><ahref="module-type-S/index.html#type-t">t</a> = <ahref="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a><spanclass="keyword">and</span><spanclass="keyword">module</span><ahref="module-type-S/Node/index.html">Node</a> = <ahref="index.html#module-DefaultNode">DefaultNode</a><spanclass="keyword">and</span><spanclass="keyword">type</span><ahref="module-type-S/index.html#type-instrs_dir">instrs_dir</a> = <ahref="../../IR/Instrs/index.html#type-not_reversed">IR.Instrs.not_reversed</a></code></dt><dd><p>Forward CFG with no exceptional control-flow</p></dd></dl><dl><dtclass="spec module"id="module-Exceptional"><ahref="#module-Exceptional"class="anchor"></a><code><spanclass="keyword">module</span><ahref="Exceptional/index.html">Exceptional</a> : <ahref="index.html#module-type-S">S</a><spanclass="keyword">with</span><spanclass="keyword">type</span><ahref="module-type-S/index.html#type-t">t</a> = <ahref="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> * <span><span><ahref="DefaultNode/index.html#type-t">DefaultNode.t</a> list</span><ahref="../../IR__Procdesc/index.html#module-IdMap">IR.Procdesc.IdMap</a>.t</span><spanclass="keyword">and</span><spanclass="keyword">module</span><ahref="module-type-S/Node/index.html">Node</a> = <ahref="index.html#module-DefaultNode">DefaultNode</a><spanclass="keyword">and</span><spanclass="keyword">type</span><