You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
31 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<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> &#x00BB; <a href="../index.html">BO</a> &#x00BB; 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>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <span>(<span><a href="index.html#type-value">value</a> option</span> <span>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span> <span>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span> <span>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> int)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'a</span>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</span> <span>init:<span class="type-var">'a</span></span> <span>&#45;&gt;</span> <span>f:<span>(<span class="type-var">'a</span> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <span class="type-var">'a</span> * <a href="index.html#type-value">value</a>)</span></span> <span>&#45;&gt;</span> <span class="type-var">'a</span> * <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-fold_mapi"><a href="#val-fold_mapi" class="anchor"></a><code><span class="keyword">val</span> fold_mapi : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>init:<span class="type-var">'a</span></span> <span>&#45;&gt;</span> <span>f:<span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <span class="type-var">'a</span> * <a href="index.html#type-value">value</a>)</span></span> <span>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-key">key</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <span>rhs:<a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> bool</code></dt><dd><p>the implication relation: <code>lhs &lt;= 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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <span>next:<a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <span>num_iters:int</span> <span>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <span>offset:<a href="../Itv/index.html#type-t">Itv.t</a></span> <span>&#45;&gt;</span> <span>size:<a href="../Itv/index.html#type-t">Itv.t</a></span> <span>&#45;&gt;</span> <span>stride:<a href="../Itv/index.html#type-t">Itv.t</a></span> <span>&#45;&gt;</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>&#45;&gt;</span> <span>length:<a href="../Itv/index.html#type-t">Itv.t</a></span> <span>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</span> <a href="../Itv/index.html#type-t">Itv.t</a> <span>&#45;&gt;</span> <a href="../Boolean/index.html#type-t">Boolean.t</a>)</span> <span>&#45;&gt;</span> <a href="../Boolean/EqualOrder/index.html#type-t">Boolean.EqualOrder.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="../Itv/index.html#type-t">Itv.t</a>)</span></span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Prune offset by <code>offset &lt;= 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>&#45;&gt;</span> <a href="../Itv/index.html#type-t">Itv.t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="../Itv/index.html#type-t">Itv.t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</span> <a href="../Bounds/Bound/index.html#type-eval_sym">Bounds.Bound.eval_sym</a> <span>&#45;&gt;</span> <a href="../AbsLoc/PowLoc/index.html#type-eval_locpath">AbsLoc.PowLoc.eval_locpath</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>&#45;&gt;</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>?&#8288;cost_mode:bool</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>?&#8288;cost_mode:bool</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</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>