jon.recoil.org

Module Regalloc_stack_slots

type slot = int
type t
val make : unit -> Regalloc_stack_slots.t
val iter : Regalloc_stack_slots.t -> f:(Reg.Tbl.key -> int -> unit) -> unit
val total_number_of_slots : Regalloc_stack_slots.t -> int
val use_same_slot_or_fatal : Regalloc_stack_slots.t -> Reg.t -> existing:Reg.t -> unit
val update_cfg_with_layout : Regalloc_stack_slots.t -> Cfg_with_layout.t -> unit
val optimize : Regalloc_stack_slots.t -> Cfg_with_infos.t -> unit

Reduces the number of slots, by merging slots whose use intervals do not overlap. If a reduction occurs, registers are modified and liveness is invalidated, but the CFG is left untouched.