ocaml/asmcomp/interval.mli

39 lines
1.6 KiB
OCaml
Raw Permalink Normal View History

2017-02-22 14:28:43 -08:00
(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Marcell Fischbach, University of Siegen *)
(* Benedikt Meurer, University of Siegen *)
(* *)
(* Copyright 2011 Lehrstuhl für Compilerbau und Softwareanalyse, *)
2017-08-12 13:19:03 -07:00
(* Universität Siegen. *)
2017-02-22 14:28:43 -08:00
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Lesser General Public License version 2.1, with the *)
(* special exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
(* Live intervals for the linear scan register allocator. *)
type range =
{
mutable rbegin: int;
mutable rend: int;
}
2017-02-22 14:28:43 -08:00
type t =
{
mutable reg: Reg.t;
mutable ibegin: int;
mutable iend: int;
mutable ranges: range list;
}
val all_intervals: unit -> t list
val all_fixed_intervals: unit -> t list
val overlap: t -> t -> bool
val is_live: t -> int -> bool
val remove_expired_ranges: t -> int -> unit
val build_intervals: Mach.fundecl -> unit