Module Regalloc_split_state
type destructions_at_end =
(Regalloc_split_utils.destruction_kind * Reg.Set.t) Label.Map.ttype definitions_at_beginning = Reg.Set.t Label.Map.ttype phi_at_beginning = Reg.Set.t Label.Map.tval log_renaming_info : Regalloc_split_state.t -> unitval make : Cfg_with_infos.t -> Regalloc_split_state.tConstructs the renaming information necessary to split the live ranges.
The components are:
- destructions_at_end, a map from labels (of blocks ending with a destruction point) to sets of registers that need to be spilled;
- definitions_at_beginning, a map from labels (of blocks being successors of destruction point) to sets of registers that need to be reloaded;
- phi_at_beginning, a map from labels (of blocks starting with phi functions) to sets of registers that need to be unified (this set contains the original name of the registers which need a phi, i.e. if we need to insert `x = phi(x', x'')` then the set contains `x`).
val destructions_at_end :
Regalloc_split_state.t ->
Regalloc_split_state.destructions_at_endval definitions_at_beginning :
Regalloc_split_state.t ->
Regalloc_split_state.definitions_at_beginningval phi_at_beginning :
Regalloc_split_state.t ->
Regalloc_split_state.phi_at_beginningval stack_slots : Regalloc_split_state.t -> Regalloc_stack_slots.t