<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>ControlFlowCost (infer.Costlib.ControlFlowCost)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.2"/><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">Costlib</a>» ControlFlowCost</nav><h1>Module <code>Costlib.ControlFlowCost</code></h1></header><divclass="spec module"id="module-F"><ahref="#module-F"class="anchor"></a><code><spanclass="keyword">module</span> F = Stdlib.Format</code></div><divclass="spec module"id="module-BasicCost"><ahref="#module-BasicCost"class="anchor"></a><code><spanclass="keyword">module</span> BasicCost = <ahref="../CostDomain/index.html#module-BasicCost">CostDomain.BasicCost</a></code></div><divclass="spec module"id="module-Node"><ahref="#module-Node"class="anchor"></a><code><spanclass="keyword">module</span> Node = <ahref="../../Absint/ProcCfg/index.html#module-DefaultNode">Absint.ProcCfg.DefaultNode</a></code></div><divclass="spec module"id="module-Item"><ahref="#module-Item"class="anchor"></a><code><spanclass="keyword">module</span><ahref="Item/index.html">Item</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><divclass="spec module"id="module-Sum"><ahref="#module-Sum"class="anchor"></a><code><spanclass="keyword">module</span><ahref="Sum/index.html">Sum</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><dl><dtclass="spec type"id="type-t"><ahref="#type-t"class="anchor"></a><code><spanclass="keyword">type</span> t</code> = <code>[ </code><tableclass="variant"><trid="type-t.Edge"class="anchored"><tdclass="def constructor"><ahref="#type-t.Edge"class="anchor"></a><code>| </code><code>`Edge <spanclass="keyword">of</span><ahref="../../Absint__ProcCfg/DefaultNode/index.html#type-id">Node.id</a> * <ahref="../../Absint__ProcCfg/DefaultNode/index.html#type-id">Node.id</a></code></td></tr><trid="type-t.Node"class="anchored"><tdclass="def constructor"><ahref="#type-t.Node"class="anchor"></a><code>| </code><code>`Node <spanclass="keyword">of</span><ahref="../../Absint__ProcCfg/DefaultNode/index.html#type-id">Node.id</a></code></td></tr><trid="type-t.Sum"class="anchored"><tdclass="def constructor"><ahref="#type-t.Sum"class="anchor"></a><code>| </code><code>`Sum <spanclass="keyword">of</span> int * <span><ahref="Item/index.html#type-t">Item.t</a> list</span></code></td></tr></table><code> ]</code></dt><dd><p>A Control-flow cost represents the number of times the flow of control can go through a certain CFG item (a node or an edge), or a sum of such things</p></dd></dl><dl><dtclass="spec value"id="val-make_node"><ahref="#val-make_node"class="anchor"></a><code><spanclass="keyword">val</span> make_node : <ahref="../../Absint__ProcCfg/DefaultNode/index.html#type-id">Node.id</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-make_pred_edge"><ahref="#val-make_pred_edge"class="anchor"></a><code><spanclass="keyword">val</span> make_pred_edge : <spanclass="type-var">'a</span><span>-></span><spanclass="type-var">'b</span><span>-></span><span>[><span>`Edge of <spanclass="type-var">'b</span> * <spanclass="type-var">'a</span></span> ]</span></code></dt><dtclass="spec value"id="val-make_succ_edge"><ahref="#val-make_succ_edge"class="anchor"></a><code><spanclass="keyword">val</span> make_succ_edge : <spanclass="type-var">'a</span><span>-></span><spanclass="type-var">'b</span><span>-></span><span>[><span>`Edge of <spanclass="type-var">'a</span> * <spanclass="type-var">'b</span></span> ]</span></code></dt><dtclass="spec value"id="val-pp"><ahref="#val-pp"class="anchor"></a><cod