package ocaml-base-compiler
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=3e3146e0c876d14bdd574cb543e782feb2b07a7cabd054a8f322ef40de61943a
doc/ocamloptcomp/Cmm/index.html
Module Cmm
type machtype = machtype_component arrayval typ_void : machtypeval typ_val : machtypeval typ_addr : machtypeval typ_int : machtypeval typ_float : machtypeval size_component : machtype_component -> intval lub_component :
machtype_component ->
machtype_component ->
machtype_componentLeast upper bound of two machtype_components.
val ge_component : machtype_component -> machtype_component -> boolReturns true iff the first supplied machtype_component is greater than or equal to the second under the relation used by lub_component.
val size_machtype : machtype -> intval negate_integer_comparison : integer_comparison -> integer_comparisonval swap_integer_comparison : integer_comparison -> integer_comparisontype float_comparison = Lambda.float_comparison = val negate_float_comparison : float_comparison -> float_comparisonval swap_float_comparison : float_comparison -> float_comparisonval new_label : unit -> labeltype phantom_defining_expr = | Cphantom_const_int of Targetint.t(*The phantom-let-bound variable is a constant integer. The argument must be the tagged representation of an integer within the range of type
*)inton the target. (Analogously toCconst_int.)| Cphantom_const_symbol of string(*The phantom-let-bound variable is an alias for a symbol.
*)| Cphantom_var of Backend_var.t(*The phantom-let-bound variable is an alias for another variable. The aliased variable must not be a bound by a phantom let.
*)| Cphantom_offset_var of {var : Backend_var.t;offset_in_words : int;
}(*The phantom-let-bound-variable's value is defined by adding the given number of words to the pointer contained in the given identifier.
*)| Cphantom_read_field of {var : Backend_var.t;field : int;
}(*The phantom-let-bound-variable's value is found by adding the given number of words to the pointer contained in the given identifier, then dereferencing.
*)| Cphantom_read_symbol_field of {}(*As for
*)Uphantom_read_var_field, but with the pointer specified by a symbol.| Cphantom_block of {tag : int;fields : Backend_var.t list;
}(*The phantom-let-bound variable points at a block with the given structure.
*)
and operation = | Capply of machtype| Cextcall of string * machtype * bool * label option| Cload of memory_chunk * Asttypes.mutable_flag| Calloc| Cstore of memory_chunk * Lambda.initialization_or_assignment| Caddi| Csubi| Cmuli| Cmulhi| Cdivi| Cmodi| Cand| Cor| Cxor| Clsl| Clsr| Casr| Ccmpi of integer_comparison| Caddv| Cadda| Ccmpa of integer_comparison| Cnegf| Cabsf| Caddf| Csubf| Cmulf| Cdivf| Cfloatofint| Cintoffloat| Ccmpf of float_comparison| Craise of raise_kind| Ccheckbound
and expression = | Cconst_int of int * Debuginfo.t| Cconst_natint of nativeint * Debuginfo.t| Cconst_float of float * Debuginfo.t| Cconst_symbol of string * Debuginfo.t| Cconst_pointer of int * Debuginfo.t| Cconst_natpointer of nativeint * Debuginfo.t| Cblockheader of nativeint * Debuginfo.t| Cvar of Backend_var.t| Clet of Backend_var.With_provenance.t * expression * expression| Cphantom_let of Backend_var.With_provenance.t * phantom_defining_expr option * expression| Cassign of Backend_var.t * expression| Ctuple of expression list| Cop of operation * expression list * Debuginfo.t| Csequence of expression * expression| Cifthenelse of expression * Debuginfo.t * expression * Debuginfo.t * expression * Debuginfo.t| Cswitch of expression * int array * (expression * Debuginfo.t) array * Debuginfo.t| Ccatch of rec_flag * (int * (Backend_var.With_provenance.t * machtype) list * expression * Debuginfo.t) list * expression| Cexit of int * expression list| Ctrywith of expression * Backend_var.With_provenance.t * expression * Debuginfo.t
Every basic block should have a corresponding Debuginfo.t for its beginning.
type fundecl = {fun_name : string;fun_args : (Backend_var.With_provenance.t * machtype) list;fun_body : expression;fun_codegen_options : codegen_option list;fun_dbg : Debuginfo.t;
}val ccatch :
(int
* (Backend_var.With_provenance.t * machtype) list
* expression
* expression
* Debuginfo.t) ->
expression