Module Regalloc_stack_slots
val make : unit -> Regalloc_stack_slots.tval iter : Regalloc_stack_slots.t -> f:(Reg.Tbl.key -> int -> unit) -> unitval total_number_of_slots : Regalloc_stack_slots.t -> intval get_and_incr :
Regalloc_stack_slots.t ->
stack_class:Stack_class.t ->
Regalloc_stack_slots.slotval get_or_create :
Regalloc_stack_slots.t ->
Reg.t ->
Regalloc_stack_slots.slotval get_or_fatal : Regalloc_stack_slots.t -> Reg.t -> Regalloc_stack_slots.slotval use_same_slot_or_fatal :
Regalloc_stack_slots.t ->
Reg.t ->
existing:Reg.t ->
unitval update_cfg_with_layout :
Regalloc_stack_slots.t ->
Cfg_with_layout.t ->
unitval optimize : Regalloc_stack_slots.t -> Cfg_with_infos.t -> unitReduces 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.