jon.recoil.org

Module Regalloc_irc_state

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