|
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ArrayBlk (infer.BO.ArrayBlk)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">infer</a> » <a href="../index.html">BO</a> » ArrayBlk</nav><h1>Module <code>BO.ArrayBlk</code></h1></header><div class="spec module" id="module-ArrInfo"><a href="#module-ArrInfo" class="anchor"></a><code><span class="keyword">module</span> <a href="ArrInfo/index.html">ArrInfo</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../../Absint/AbstractDomain/index.html#module-type-MapS">Absint.AbstractDomain.MapS</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../Absint/AbstractDomain/module-type-MapS/index.html#type-key">key</a> = <a href="../AbsLoc/Allocsite/index.html#type-t">AbsLoc.Allocsite.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../Absint/AbstractDomain/module-type-MapS/index.html#type-value">value</a> = <a href="ArrInfo/index.html#type-t">ArrInfo.t</a></code></span></summary><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../../IStdlib/PrettyPrintable/index.html#module-type-PPMonoMap">IStdlib.PrettyPrintable.PPMonoMap</a></code></span></summary><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../../IStdlib/PrettyPrintable/index.html#module-type-MonoMap">IStdlib.PrettyPrintable.MonoMap</a></code></span></summary><dl><dt class="spec type" id="type-key"><a href="#type-key" class="anchor"></a><code><span class="keyword">type</span> key</code></dt><dt class="spec type" id="type-value"><a href="#type-value" class="anchor"></a><code><span class="keyword">type</span> value</code></dt><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-empty"><a href="#val-empty" class="anchor"></a><code><span class="keyword">val</span> empty : <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-is_empty"><a href="#val-is_empty" class="anchor"></a><code><span class="keyword">val</span> is_empty : <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-mem"><a href="#val-mem" class="anchor"></a><code><span class="keyword">val</span> mem : <a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-add"><a href="#val-add" class="anchor"></a><code><span class="keyword">val</span> add : <a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-update"><a href="#val-update" class="anchor"></a><code><span class="keyword">val</span> update : <a href="index.html#type-key">key</a> <span>-></span> <span>(<span><a href="index.html#type-value">value</a> option</span> <span>-></span> <span><a href="index.html#type-value">value</a> option</span>)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-singleton"><a href="#val-singleton" class="anchor"></a><code><span class="keyword">val</span> singleton : <a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-remove"><a href="#val-remove" class="anchor"></a><code><span class="keyword">val</span> remove : <a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-merge"><a href="#val-merge" class="anchor"></a><code><span class="keyword">val</span> merge : <span>(<a href="index.html#type-key">key</a> <span>-></span> <span><a href="index.html#type-value">value</a> option</span> <span>-></span> <span><a href="index.html#type-value">value</a> option</span> <span>-></span> <span><a href="index.html#type-value">value</a> option</span>)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-union"><a href="#val-union" class="anchor"></a><code><span class="keyword">val</span> union : <span>(<a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> <span><a href="index.html#type-value">value</a> option</span>)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span class="keyword">val</span> compare : <span>(<a href="index.html#type-value">value</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> int)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> int</code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <span>(<a href="index.html#type-value">value</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> bool)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-iter"><a href="#val-iter" class="anchor"></a><code><span class="keyword">val</span> iter : <span>(<a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> unit)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dt class="spec value" id="val-fold"><a href="#val-fold" class="anchor"></a><code><span class="keyword">val</span> fold : <span>(<a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> <span class="type-var">'a</span> <span>-></span> <span class="type-var">'a</span>)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span> <span>-></span> <span class="type-var">'a</span></code></dt><dt class="spec value" id="val-for_all"><a href="#val-for_all" class="anchor"></a><code><span class="keyword">val</span> for_all : <span>(<a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> bool)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-exists"><a href="#val-exists" class="anchor"></a><code><span class="keyword">val</span> exists : <span>(<a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> bool)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-filter"><a href="#val-filter" class="anchor"></a><code><span class="keyword">val</span> filter : <span>(<a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> bool)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-partition"><a href="#val-partition" class="anchor"></a><code><span class="keyword">val</span> partition : <span>(<a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> bool)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> * <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-cardinal"><a href="#val-cardinal" class="anchor"></a><code><span class="keyword">val</span> cardinal : <a href="index.html#type-t">t</a> <span>-></span> int</code></dt><dt class="spec value" id="val-bindings"><a href="#val-bindings" class="anchor"></a><code><span class="keyword">val</span> bindings : <a href="index.html#type-t">t</a> <span>-></span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> list</span></code></dt><dt class="spec value" id="val-min_binding"><a href="#val-min_binding" class="anchor"></a><code><span class="keyword">val</span> min_binding : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-min_binding_opt"><a href="#val-min_binding_opt" class="anchor"></a><code><span class="keyword">val</span> min_binding_opt : <a href="index.html#type-t">t</a> <span>-></span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> option</span></code></dt><dt class="spec value" id="val-max_binding"><a href="#val-max_binding" class="anchor"></a><code><span class="keyword">val</span> max_binding : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-max_binding_opt"><a href="#val-max_binding_opt" class="anchor"></a><code><span class="keyword">val</span> max_binding_opt : <a href="index.html#type-t">t</a> <span>-></span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> option</span></code></dt><dt class="spec value" id="val-choose"><a href="#val-choose" class="anchor"></a><code><span class="keyword">val</span> choose : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-choose_opt"><a href="#val-choose_opt" class="anchor"></a><code><span class="keyword">val</span> choose_opt : <a href="index.html#type-t">t</a> <span>-></span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> option</span></code></dt><dt class="spec value" id="val-split"><a href="#val-split" class="anchor"></a><code><span class="keyword">val</span> split : <a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> * <span><a href="index.html#type-value">value</a> option</span> * <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-find"><a href="#val-find" class="anchor"></a><code><span class="keyword">val</span> find : <a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-find_opt"><a href="#val-find_opt" class="anchor"></a><code><span class="keyword">val</span> find_opt : <a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <span><a href="index.html#type-value">value</a> option</span></code></dt><dt class="spec value" id="val-find_first"><a href="#val-find_first" class="anchor"></a><code><span class="keyword">val</span> find_first : <span>(<a href="index.html#type-key">key</a> <span>-></span> bool)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-find_first_opt"><a href="#val-find_first_opt" class="anchor"></a><code><span class="keyword">val</span> find_first_opt : <span>(<a href="index.html#type-key">key</a> <span>-></span> bool)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> option</span></code></dt><dt class="spec value" id="val-find_last"><a href="#val-find_last" class="anchor"></a><code><span class="keyword">val</span> find_last : <span>(<a href="index.html#type-key">key</a> <span>-></span> bool)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-find_last_opt"><a href="#val-find_last_opt" class="anchor"></a><code><span class="keyword">val</span> find_last_opt : <span>(<a href="index.html#type-key">key</a> <span>-></span> bool)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> option</span></code></dt><dt class="spec value" id="val-map"><a href="#val-map" class="anchor"></a><code><span class="keyword">val</span> map : <span>(<a href="index.html#type-value">value</a> <span>-></span> <a href="index.html#type-value">value</a>)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mapi"><a href="#val-mapi" class="anchor"></a><code><span class="keyword">val</span> mapi : <span>(<a href="index.html#type-key">key</a> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> <a href="index.html#type-value">value</a>)</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-is_singleton_or_more"><a href="#val-is_singleton_or_more" class="anchor"></a><code><span class="keyword">val</span> is_singleton_or_more : <a href="index.html#type-t">t</a> <span>-></span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> <a href="../../IStdlib/IContainer/index.html#type-singleton_or_more">IStdlib.IContainer.singleton_or_more</a></span></code></dt><dt class="spec value" id="val-fold_map"><a href="#val-fold_map" class="anchor"></a><code><span class="keyword">val</span> fold_map : <a href="index.html#type-t">t</a> <span>-></span> <span>init:<span class="type-var">'a</span></span> <span>-></span> <span>f:<span>(<span class="type-var">'a</span> <span>-></span> <a href="index.html#type-value">value</a> <span>-></span> <span class="type-var">'a</span> * <a href="index.html#type-value">value</a>)</span></span> <span>-></span> <span class="type-var">'a</span> * <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-of_seq"><a href="#val-of_seq" class="anchor"></a><code><span class="keyword">val</span> of_seq : <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> Stdlib.Seq.t</span> <span>-></span> <a href="index.html#type-t">t</a></code></dt></dl></details></div></div></div><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../../IStdlib/PrettyPrintable/index.html#module-type-PrintableType">IStdlib.PrettyPrintable.PrintableType</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../IStdlib/PrettyPrintable/module-type-PrintableType/index.html#type-t">t</a> := <a href="index.html#type-t">t</a></code></span></summary><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <a href="../../IStdlib/PrettyPrintable/index.html#module-F">IStdlib.PrettyPrintable.F</a>.formatter <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt></dl></details></div></div></div><dl><dt class="spec value" id="val-pp_key"><a href="#val-pp_key" class="anchor"></a><code><span class="keyword">val</span> pp_key : <a href="../../IStdlib/PrettyPrintable/index.html#module-F">IStdlib.PrettyPrintable.F</a>.formatter <span>-></span> <a href="index.html#type-key">key</a> <span>-></span> unit</code></dt></dl></details></div></div></div><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../../Absint/AbstractDomain/index.html#module-type-WithBottom">Absint.AbstractDomain.WithBottom</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../Absint/AbstractDomain/module-type-WithBottom/index.html#type-t">t</a> := <a href="index.html#type-t">t</a></code></span></summary><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../../Absint/AbstractDomain/index.html#module-type-S">Absint.AbstractDomain.S</a></code></span></summary><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../../Absint/AbstractDomain/index.html#module-type-NoJoin">Absint.AbstractDomain.NoJoin</a></code></span></summary><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../../IStdlib/PrettyPrintable/index.html#module-type-PrintableType">IStdlib.PrettyPrintable.PrintableType</a></code></span></summary><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <a href="../../IStdlib/PrettyPrintable/index.html#module-F">IStdlib.PrettyPrintable.F</a>.formatter <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt></dl></details></div></div></div><dl><dt class="spec value" id="val-leq"><a href="#val-leq" class="anchor"></a><code><span class="keyword">val</span> leq : <span>lhs:<a href="index.html#type-t">t</a></span> <span>-></span> <span>rhs:<a href="index.html#type-t">t</a></span> <span>-></span> bool</code></dt><dd><p>the implication relation: <code>lhs <= rhs</code> means <code>lhs |- rhs</code></p></dd></dl></details></div></div></div><dl><dt class="spec value" id="val-join"><a href="#val-join" class="anchor"></a><code><span class="keyword">val</span> join : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-widen"><a href="#val-widen" class="anchor"></a><code><span class="keyword">val</span> widen : <span>prev:<a href="index.html#type-t">t</a></span> <span>-></span> <span>next:<a href="index.html#type-t">t</a></span> <span>-></span> <span>num_iters:int</span> <span>-></span> <a href="index.html#type-t">t</a></code></dt></dl></details></div></div></div><dl><dt class="spec value" id="val-bottom"><a href="#val-bottom" class="anchor"></a><code><span class="keyword">val</span> bottom : <a href="index.html#type-t">t</a></code></dt><dd><p>The bottom value of the domain.</p></dd></dl><dl><dt class="spec value" id="val-is_bottom"><a href="#val-is_bottom" class="anchor"></a><code><span class="keyword">val</span> is_bottom : <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt><dd><p>Return true if this is the bottom value</p></dd></dl></details></div></div></div></details></div></div></div><dl><dt class="spec value" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span class="keyword">val</span> compare : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> int</code></dt><dt class="spec value" id="val-bot"><a href="#val-bot" class="anchor"></a><code><span class="keyword">val</span> bot : <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-make_c"><a href="#val-make_c" class="anchor"></a><code><span class="keyword">val</span> make_c : <a href="../AbsLoc/Allocsite/index.html#type-t">AbsLoc.Allocsite.t</a> <span>-></span> <span>offset:<a href="../Itv/index.html#type-t">Itv.t</a></span> <span>-></span> <span>size:<a href="../Itv/index.html#type-t">Itv.t</a></span> <span>-></span> <span>stride:<a href="../Itv/index.html#type-t">Itv.t</a></span> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p>Make an array block for C</p></dd></dl><dl><dt class="spec value" id="val-make_java"><a href="#val-make_java" class="anchor"></a><code><span class="keyword">val</span> make_java : <a href="../AbsLoc/Allocsite/index.html#type-t">AbsLoc.Allocsite.t</a> <span>-></span> <span>length:<a href="../Itv/index.html#type-t">Itv.t</a></span> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p>Make an array block for Java</p></dd></dl><dl><dt class="spec value" id="val-unknown"><a href="#val-unknown" class="anchor"></a><code><span class="keyword">val</span> unknown : <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-get_pow_loc"><a href="#val-get_pow_loc" class="anchor"></a><code><span class="keyword">val</span> get_pow_loc : <a href="index.html#type-t">t</a> <span>-></span> <a href="../AbsLoc/PowLoc/index.html#type-t">AbsLoc.PowLoc.t</a></code></dt><dd><p>Return all allocsites as <code>PowLoc.t</code></p></dd></dl><dl><dt class="spec value" id="val-is_bot"><a href="#val-is_bot" class="anchor"></a><code><span class="keyword">val</span> is_bot : <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-is_symbolic"><a href="#val-is_symbolic" class="anchor"></a><code><span class="keyword">val</span> is_symbolic : <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt><dd><p>Check if there is a symbolic integer value in its offset or size</p></dd></dl><dl><dt class="spec value" id="val-lift_cmp_itv"><a href="#val-lift_cmp_itv" class="anchor"></a><code><span class="keyword">val</span> lift_cmp_itv : <span>(<a href="../Itv/index.html#type-t">Itv.t</a> <span>-></span> <a href="../Itv/index.html#type-t">Itv.t</a> <span>-></span> <a href="../Boolean/index.html#type-t">Boolean.t</a>)</span> <span>-></span> <a href="../Boolean/EqualOrder/index.html#type-t">Boolean.EqualOrder.t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="../Boolean/index.html#type-t">Boolean.t</a></code></dt><dd><p>Lift a comparison of <code>Itv.t</code> and <code>Loc.t</code> to that of <code>t</code>. The comparison for <code>Itv.t</code> is used for integer values such as offset and size, and the comparison for <code>Loc.t</code> is used for allocsites.</p></dd></dl><dl><dt class="spec value" id="val-transform_length"><a href="#val-transform_length" class="anchor"></a><code><span class="keyword">val</span> transform_length : <span>f:<span>(<a href="../Itv/index.html#type-t">Itv.t</a> <span>-></span> <a href="../Itv/index.html#type-t">Itv.t</a>)</span></span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p>Apply <code>f</code> to all sizes</p></dd></dl><dl><dt class="spec value" id="val-prune_binop"><a href="#val-prune_binop" class="anchor"></a><code><span class="keyword">val</span> prune_binop : <a href="../../IR/Binop/index.html#type-t">IR.Binop.t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>prune_binop bop x y</code> returns a pruned value of <code>x</code> by <code>bop</code> and <code>y</code>.</p></dd></dl><dl><dt class="spec value" id="val-prune_eq"><a href="#val-prune_eq" class="anchor"></a><code><span class="keyword">val</span> prune_eq : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>prune_eq x y</code> returns a pruned value of <code>x</code> by <code>== y</code>.</p></dd></dl><dl><dt class="spec value" id="val-prune_ne"><a href="#val-prune_ne" class="anchor"></a><code><span class="keyword">val</span> prune_ne : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>prune_ne x y</code> returns a pruned value of <code>x</code> by <code>!= y</code>.</p></dd></dl><dl><dt class="spec value" id="val-prune_offset_le_size"><a href="#val-prune_offset_le_size" class="anchor"></a><code><span class="keyword">val</span> prune_offset_le_size : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p>Prune offset by <code>offset <= size</code></p></dd></dl><dl><dt class="spec value" id="val-minus_offset"><a href="#val-minus_offset" class="anchor"></a><code><span class="keyword">val</span> minus_offset : <a href="index.html#type-t">t</a> <span>-></span> <a href="../Itv/index.html#type-t">Itv.t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-plus_offset"><a href="#val-plus_offset" class="anchor"></a><code><span class="keyword">val</span> plus_offset : <a href="index.html#type-t">t</a> <span>-></span> <a href="../Itv/index.html#type-t">Itv.t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-diff"><a href="#val-diff" class="anchor"></a><code><span class="keyword">val</span> diff : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="../Itv/index.html#type-t">Itv.t</a></code></dt><dd><p>Return difference of offsets between given array blocks</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p>Normalize all interval values such as offset and size in it. Thus, if an interval value is invalid, the interval value is replaced with bottom.</p></dd></dl><dl><dt class="spec value" id="val-subst"><a href="#val-subst" class="anchor"></a><code><span class="keyword">val</span> subst : <a href="index.html#type-t">t</a> <span>-></span> <a href="../Bounds/Bound/index.html#type-eval_sym">Bounds.Bound.eval_sym</a> <span>-></span> <a href="../AbsLoc/PowLoc/index.html#type-eval_locpath">AbsLoc.PowLoc.eval_locpath</a> <span>-></span> <a href="../AbsLoc/PowLoc/index.html#type-t">AbsLoc.PowLoc.t</a> * <a href="index.html#type-t">t</a></code></dt><dd><p>Substitute symbolic abstract locations and symbolic interval value in the array block. <code>eval_sym</code> is to get substituted interval values and <code>eval_locpath</code> is to get substituted abstract locaion values. It also returns a set of abstract locations containing non-allocsite locations from the substitution results. Since the key of <code>ArrayBlk.t</code> is <code>AbsLoc.Allocsite.t</code>, they cannot be written in this domain.</p></dd></dl><dl><dt class="spec value" id="val-set_length"><a href="#val-set_length" class="anchor"></a><code><span class="keyword">val</span> set_length : <a href="../Itv/index.html#type-t">Itv.t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-set_offset"><a href="#val-set_offset" class="anchor"></a><code><span class="keyword">val</span> set_offset : <a href="../Itv/index.html#type-t">Itv.t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-set_stride"><a href="#val-set_stride" class="anchor"></a><code><span class="keyword">val</span> set_stride : Z.t <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-get_symbols"><a href="#val-get_symbols" class="anchor"></a><code><span class="keyword">val</span> get_symbols : <a href="index.html#type-t">t</a> <span>-></span> <a href="../../BO__Symb/index.html#module-SymbolSet">BO.Symb.SymbolSet</a>.t</code></dt><dd><p>Return all symbols for integer values in it</p></dd></dl><dl><dt class="spec value" id="val-get_offset"><a href="#val-get_offset" class="anchor"></a><code><span class="keyword">val</span> get_offset : <span>?⁠cost_mode:bool</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="../Itv/index.html#type-t">Itv.t</a></code></dt><dd><p>Return offset of the array block. If <code>cost_mode</code> is <code>true</code>, it returns a conservative (bigger than correct one), but not correct offset results.</p></dd></dl><dl><dt class="spec value" id="val-get_size"><a href="#val-get_size" class="anchor"></a><code><span class="keyword">val</span> get_size : <span>?⁠cost_mode:bool</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="../Itv/index.html#type-t">Itv.t</a></code></dt><dd><p>Return size of the array block. If <code>cost_mode</code> is <code>true</code>, it returns a conservative (bigger than correct one), but not correct size results.</p></dd></dl></div></body></html> |