Module Regalloc_irc_state
val make :
initial:Reg.t list ->
stack_slots:Regalloc_stack_slots.t ->
affinity:Regalloc_affinity.t ->
unit ->
Regalloc_irc_state.tval add_initial_one : Regalloc_irc_state.t -> Reg.t -> unitval add_initial_list : Regalloc_irc_state.t -> Reg.t list -> unitval reset :
Regalloc_irc_state.t ->
new_inst_temporaries:Reg.t list ->
new_block_temporaries:Reg.t list ->
unitval reg_work_list :
Regalloc_irc_state.t ->
Reg.t ->
Regalloc_irc_utils.RegWorkList.tval color : Regalloc_irc_state.t -> Reg.t -> Regalloc_irc_utils.Color.t optionval set_color :
Regalloc_irc_state.t ->
Reg.t ->
Regalloc_irc_utils.Color.t option ->
unitval degree : Regalloc_irc_state.t -> Reg.t -> intval set_degree : Regalloc_irc_state.t -> Reg.t -> int -> unitval is_precolored : Regalloc_irc_state.t -> Reg.t -> boolval is_precolored_or_colored : Regalloc_irc_state.t -> Reg.t -> boolval iter_and_clear_initial : Regalloc_irc_state.t -> f:(Reg.t -> unit) -> unitval is_empty_simplify_work_list : Regalloc_irc_state.t -> boolval add_simplify_work_list : Regalloc_irc_state.t -> Reg.t -> unitval choose_and_remove_simplify_work_list : Regalloc_irc_state.t -> Reg.tval is_empty_freeze_work_list : Regalloc_irc_state.t -> boolval mem_freeze_work_list : Regalloc_irc_state.t -> Reg.t -> boolval add_freeze_work_list : Regalloc_irc_state.t -> Reg.t -> unitval remove_freeze_work_list : Regalloc_irc_state.t -> Reg.t -> unitval choose_and_remove_freeze_work_list : Regalloc_irc_state.t -> Reg.tval is_empty_spill_work_list : Regalloc_irc_state.t -> boolval mem_spill_work_list : Regalloc_irc_state.t -> Reg.t -> boolval add_spill_work_list : Regalloc_irc_state.t -> Reg.t -> unitval remove_spill_work_list : Regalloc_irc_state.t -> Reg.t -> unitval fold_spill_work_list :
Regalloc_irc_state.t ->
f:('a -> Reg.t -> 'a) ->
init:'a ->
'aval spill_work_list : Regalloc_irc_state.t -> Reg.Set.tval is_empty_spilled_nodes : Regalloc_irc_state.t -> boolval add_spilled_nodes : Regalloc_irc_state.t -> Reg.t -> unitval spilled_nodes : Regalloc_irc_state.t -> Reg.t listval clear_spilled_nodes : Regalloc_irc_state.t -> unitval add_coalesced_nodes : Regalloc_irc_state.t -> Reg.t -> unitval iter_coalesced_nodes : Regalloc_irc_state.t -> f:(Reg.t -> unit) -> unitval add_colored_nodes : Regalloc_irc_state.t -> Reg.t -> unitval is_empty_select_stack : Regalloc_irc_state.t -> boolval push_select_stack : Regalloc_irc_state.t -> Reg.t -> unitval pop_select_stack : Regalloc_irc_state.t -> Reg.tval iter_and_clear_select_stack :
Regalloc_irc_state.t ->
f:(Reg.t -> unit) ->
unitval add_coalesced_moves :
Regalloc_irc_state.t ->
Regalloc_utils.Instruction.t ->
unitval add_constrained_moves :
Regalloc_irc_state.t ->
Regalloc_utils.Instruction.t ->
unitval add_frozen_moves :
Regalloc_irc_state.t ->
Regalloc_utils.Instruction.t ->
unitval is_empty_work_list_moves : Regalloc_irc_state.t -> boolval add_work_list_moves :
Regalloc_irc_state.t ->
Regalloc_utils.Instruction.t ->
unitval choose_and_remove_work_list_moves :
Regalloc_irc_state.t ->
Regalloc_utils.Instruction.tval mem_active_moves :
Regalloc_irc_state.t ->
Regalloc_utils.Instruction.t ->
boolval add_active_moves :
Regalloc_irc_state.t ->
Regalloc_utils.Instruction.t ->
unitval remove_active_moves :
Regalloc_irc_state.t ->
Regalloc_utils.Instruction.t ->
unitval mem_adj_set : Regalloc_irc_state.t -> Reg.t -> Reg.t -> boolval adj_list : Regalloc_irc_state.t -> Reg.t -> Reg.t listval adj_set :
Regalloc_irc_state.t ->
Regalloc_irc_utils.RegisterStamp.PairSet.tval add_edge : Regalloc_irc_state.t -> Reg.t -> Reg.t -> unitval iter_adjacent : Regalloc_irc_state.t -> Reg.t -> f:(Reg.t -> unit) -> unitval for_all_adjacent :
Regalloc_irc_state.t ->
Reg.t ->
f:(Reg.t -> bool) ->
boolval is_empty_node_moves : Regalloc_irc_state.t -> Reg.t -> boolval iter_node_moves :
Regalloc_irc_state.t ->
Reg.t ->
f:(Regalloc_utils.Instruction.t -> unit) ->
unitval enable_moves_one : Regalloc_irc_state.t -> Reg.t -> unitval decr_degree : Regalloc_irc_state.t -> Reg.t -> unitval find_move_list :
Regalloc_irc_state.t ->
Reg.t ->
Regalloc_utils.Instruction.Set.tval add_move_list :
Regalloc_irc_state.t ->
Reg.t ->
Regalloc_utils.Instruction.t ->
unitval union_move_list :
Regalloc_irc_state.t ->
Reg.t ->
Regalloc_utils.Instruction.Set.t ->
unitval find_alias : Regalloc_irc_state.t -> Reg.t -> Reg.tval add_alias : Regalloc_irc_state.t -> Reg.t -> Reg.t -> unitval stack_slots : Regalloc_irc_state.t -> Regalloc_stack_slots.tval affinity : Regalloc_irc_state.t -> Regalloc_affinity.tval add_inst_temporaries_list : Regalloc_irc_state.t -> Reg.t list -> unitval add_block_temporaries_list : Regalloc_irc_state.t -> Reg.t list -> unitval mem_inst_temporaries : Regalloc_irc_state.t -> Reg.t -> boolval mem_all_introduced_temporaries : Regalloc_irc_state.t -> Reg.t -> boolval diff_all_introduced_temporaries :
Regalloc_irc_state.t ->
Reg.Set.t ->
Reg.Set.tval set_instr_work_list :
Regalloc_irc_state.t ->
instruction_id:InstructionId.t ->
work_list:Regalloc_irc_utils.InstrWorkList.t ->
unitval get_instr_work_list :
Regalloc_irc_state.t ->
instruction_id:InstructionId.t ->
Regalloc_irc_utils.InstrWorkList.tval update_register_locations : Regalloc_irc_state.t -> unitval invariant : Regalloc_irc_state.t -> unit