Module Ricsv.Auxillary

Copyright 2025-2026, Victoria Ostrovskaya & Danil Usoltsev

SPDX-License-Identifier: LGPL-3.0-or-later

val is_caller_saved : Architecture.Riscv_backend.reg -> bool
val bin_oper_to_string : Frontend.Ast.bin_oper -> string
val vars_in_caller_saved_regs : (string, Architecture.Riscv_backend.location, Base.String.comparator_witness) Base.Map.t -> (string * Architecture.Riscv_backend.reg) list
val indices_of_args_to_spill : Generator_state.state -> Middleend.Anf.immediate list -> int list
type call_style =
  1. | Nullary of string
  2. | CurryChain of {
    1. function_name : string;
    2. arity : int;
    3. initial_arguments : Middleend.Anf.immediate list;
    4. remaining_arguments : Middleend.Anf.immediate list;
    }
  3. | Direct of {
    1. function_name : string;
    2. arguments : Middleend.Anf.immediate list;
    }
  4. | ViaApplyNargs of {
    1. function_name : string;
    2. argument_count : int;
    3. arguments : Middleend.Anf.immediate list;
    }
val classify_call : argument_count:int -> callee_arity_opt:int option -> function_name:string -> arguments:Middleend.Anf.immediate list -> call_style