Module Reg

module Raw_name : sig ... end
type t = {
mutable raw_name : Raw_name.t;
stamp : int;
typ : Cmm.machtype_component;
mutable loc : location;
mutable spill : bool;
mutable part : int option;
mutable interf : t list;
mutable prefer : (t * int) list;
mutable degree : int;
mutable spill_cost : int;
mutable visited : int;
}
and location =
| Unknown
| Reg of int
| Stack of stack_location
and stack_location =
| Local of int
| Incoming of int
| Outgoing of int
val dummy : t
val create : Cmm.machtype_component -> t
val createv : Cmm.machtype -> t array
val createv_like : t array -> t array
val clone : t -> t
val at_location : Cmm.machtype_component -> location -> t
val typv : t array -> Cmm.machtype
val anonymous : t -> bool
val name : t -> string
module Set : Set.S with type elt = t
module Map : Map.S with type key = t
val add_set_array : Set.t -> t array -> Set.t
val diff_set_array : Set.t -> t array -> Set.t
val inter_set_array : Set.t -> t array -> Set.t
val disjoint_set_array : Set.t -> t array -> bool
val set_of_array : t array -> Set.t
val reset : unit -> unit
val all_registers : unit -> t list
val num_registers : unit -> int
val reinit : unit -> unit
val mark_visited : t -> unit
val is_visited : t -> bool
val clear_visited_marks : unit -> unit