module Index : Identifiable.S
Corresponds to
Index
in theS_functor
module type.
module Key : sig ... end
Corresponds to
Key
in theS_functor
module type.
module Subrange_state : S_subrange_state
Corresponds to
Subrange_state
in theS_functor
module type.
module Subrange_info : S_subrange_info with type key := Key.t with type subrange_state := Subrange_state.t
Corresponds to
Subrange_info
in theS_functor
module type.
module Range_info : S_range_info with type key := Key.t with type index := Index.t
Corresponds to
Range_info
in theS_functor
module type.
module Subrange : sig ... end
module Range : sig ... end
val empty : t
A value of type
t
that holds no range information.
val create : Linearize.fundecl -> t * Linearize.fundecl
Compute ranges for the code in the given linearized function declaration, returning the ranges as a value of type
t
and the rewritten code that must go forward for emission.
val iter : t -> f:(Index.t -> Range.t -> unit) -> unit
Iterate through ranges. Each range is associated with an index.
val all_indexes : t -> Index.Set.t
All indexes for which the given value of type
t
contains ranges.
val rewrite_labels_and_remove_empty_subranges_and_ranges : t -> env:int Numbers.Int.Map.t -> t
An internal function used by
Coalesce_labels
. Theenv
should come fromCoalesce_labels.fundecl
.