Module Affine.Loop_ranges

type t
val empty : t
val bind : t -> Indexing.symbol -> (int * int) -> t

bind r s (lo, hi): r with s's range widened to the hull of its current range and the inclusive lo..hi.

val of_bindings : (Indexing.symbol * (int * int)) list -> t

The hull, per symbol, of every binding in the list.

val find : t -> Indexing.symbol -> (int * int) option

The inclusive hull of every binding of the symbol; None for a symbol no loop binds.

val mem : t -> Indexing.symbol -> bool
val to_alist : t -> (Indexing.symbol * (int * int)) list

One entry per bound symbol, in symbol order (not program order).

val is_empty : t -> bool