jon.recoil.org

Module Regalloc_utils

module Array : module type of Stdlib.ArrayLabels

Array operations.

module List : module type of Stdlib.ListLabels

List operations.

val on_fatal : f:(unit -> unit) -> unit
val fatal : ('a, Stdlib.Format.formatter, unit, 'b) Stdlib.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 Stdlib.Lazy.t
val invariants : bool Stdlib.Lazy.t
val verbose : bool Stdlib.Lazy.t
val validator_debug : bool Stdlib.Lazy.t
val block_temporaries : bool Stdlib.Lazy.t
val affinity : bool Stdlib.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, Stdlib.Format.formatter, unit) Stdlib.format -> 'a;
  5. enabled : bool;
}
val make_log_function : label:string -> Regalloc_utils.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 -> Regalloc_utils.cfg_infos
val make_log_body_and_terminator : Regalloc_utils.log_function -> instr_prefix:(Cfg.basic Cfg.instruction -> string) -> term_prefix:(Cfg.terminator Cfg.instruction -> string) -> Cfg.basic_instruction_list -> Cfg.terminator Cfg.instruction -> Regalloc_utils.liveness -> unit
val make_log_cfg_with_infos : Regalloc_utils.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 -> Regalloc_utils.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
type spilled_map = Regalloc_substitution.t
val is_spilled : Regalloc_utils.spilled_map -> Reg.t -> bool
val use_stack_operand : Regalloc_utils.spilled_map -> Reg.t array -> int -> unit
val may_use_stack_operands_array : Regalloc_utils.spilled_map -> Reg.t array -> unit
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