jon.recoil.org

Module Regalloc_utils

module Array : module type of ArrayLabels

Array operations.

module List : module type of ListLabels

List operations.

val on_fatal : f:(unit -> unit) -> unit
val fatal : ('a, Format.formatter, unit, 'b) format4 -> 'a
val set_function_specific_params : string list -> unit
val find_param_value : string -> string option
val debug : bool
val bool_of_param : ?guard:(bool * string) -> ?default:bool -> string -> bool Lazy.t
val int_of_param : ?default:int -> string -> int Lazy.t
val invariants : bool Lazy.t
val verbose : bool Lazy.t
val validator_debug : bool Lazy.t
val block_temporaries : bool Lazy.t
val affinity : bool Lazy.t
type liveness = Cfg_with_infos.liveness
type log_function = {
  1. indent : unit -> unit;
  2. dedent : unit -> unit;
  3. reset_indentation : unit -> unit;
  4. log : 'a. ?no_eol:unit -> ('a, Format.formatter, unit) format -> 'a;
  5. enabled : bool;
}
val make_log_function : label:string -> log_function
module Instruction : sig ... end
val first_instruction_id : Cfg.basic_block -> InstructionId.t
type cfg_infos = {
  1. arg : Reg.Set.t;
  2. res : Reg.Set.t;
}
val collect_cfg_infos : Cfg_with_layout.t -> cfg_infos
val make_log_body_and_terminator : log_function -> instr_prefix:(Cfg.basic Cfg.instruction -> string) -> term_prefix:(Cfg.terminator Cfg.instruction -> string) -> Cfg.basic_instruction_list -> Cfg.terminator Cfg.instruction -> liveness -> unit
val make_log_cfg_with_infos : log_function -> instr_prefix:(Cfg.basic Cfg.instruction -> string) -> term_prefix:(Cfg.terminator Cfg.instruction -> string) -> Cfg_with_infos.t -> unit
module Move : sig ... end
module DLL = Oxcaml_utils.Doubly_linked_list
val same_reg_class : Reg.t -> Reg.t -> bool
val same_stack_class : Reg.t -> Reg.t -> bool
val simplify_cfg : Cfg_with_layout.t -> Cfg_with_layout.t
val save_cfg : string -> Cfg_with_layout.t -> unit
val update_live_fields : Cfg_with_layout.t -> liveness -> unit
module SpillCosts : sig ... end
val check_length : string -> 'a array -> int -> unit
val check_lengths : of_arg:int -> of_res:int -> 'a Cfg.instruction -> unit
val check_same : string -> Reg.t -> string -> Reg.t -> unit
type stack_operands_rewrite =
  1. | All_spilled_registers_rewritten
  2. | May_still_have_spilled_registers
val equal_stack_operands_rewrite : stack_operands_rewrite -> stack_operands_rewrite -> bool
type spilled_map = Regalloc_substitution.t
val is_spilled : spilled_map -> Reg.t -> bool
val use_stack_operand : spilled_map -> Reg.t array -> int -> unit
val may_use_stack_operands_array : spilled_map -> Reg.t array -> unit
val may_use_stack_operands_everywhere : spilled_map -> 'a Cfg.instruction -> stack_operands_rewrite
val occurs_array : Reg.t array -> Reg.t -> bool
val occurs_instruction : _ Cfg.instruction -> Reg.t -> bool
val occurs_block_body : Cfg.basic_block -> Reg.t -> bool
val occurs_block : Cfg.basic_block -> Reg.t -> bool