jon.recoil.org

Module Const.Builtin

type nonrec t = {
  1. jkind : (Allowance.allowed * Allowance.allowed) Jkind.Const.t;
  2. name : string;
}

This jkind is the top of the jkind lattice. All types have jkind any. But we cannot compile run-time manipulations of values of types with jkind any.

Value of types of this jkind are not retained at all at runtime

val value_or_null : Jkind.Const.Builtin.t

This is the jkind of normal ocaml values or null pointers

val value_or_null_mod_everything : Jkind.Const.Builtin.t

Same kind mod everything.

This is the jkind of normal ocaml values

val immutable_data : Jkind.Const.Builtin.t

Immutable non-float values that don't contain functions.

Exceptions; crossing portability, contention, statelessness and visibility.

val sync_data : Jkind.Const.Builtin.t

Atomically mutable non-float values that don't contain functions.

val mutable_data : Jkind.Const.Builtin.t

Mutable non-float values that don't contain functions.

val immediate64 : Jkind.Const.Builtin.t

Values of types of this jkind are immediate on 64-bit platforms; on other platforms, we know nothing other than that it's a value.

val immediate : Jkind.Const.Builtin.t

We know for sure that values of types of this jkind are always immediate

val immediate_or_null : Jkind.Const.Builtin.t

Values of types of this jkind are either immediate or null pointers

val immediate64_or_null : Jkind.Const.Builtin.t

Values of types of this jkind are either immediate64 or null pointers

val float64 : Jkind.Const.Builtin.t

The jkind of unboxed 64-bit floats with no mode crossing.

val kind_of_unboxed_float : Jkind.Const.Builtin.t

The jkind of unboxed 64-bit floats with mode crossing.

val float32 : Jkind.Const.Builtin.t

The jkind of unboxed 32-bit floats with no mode crossing.

val kind_of_unboxed_float32 : Jkind.Const.Builtin.t

The jkind of unboxed 32-bit floats with mode crossing.

The jkind of unboxed 32-bit native-sized integers with no mode crossing.

val kind_of_unboxed_nativeint : Jkind.Const.Builtin.t

The jkind of unboxed 32-bit native-sized integers with mode crossing.

val kind_of_untagged_immediate : Jkind.Const.Builtin.t

The jkind of untagged immediates with mode crossing.

The jkind of unboxed 8-bit integers with no mode crossing.

val kind_of_unboxed_int8 : Jkind.Const.Builtin.t

The jkind of unboxed 8-bit integers with mode crossing.

The jkind of unboxed 16-bit integers with no mode crossing.

val kind_of_unboxed_int16 : Jkind.Const.Builtin.t

The jkind of unboxed 16-bit integers with mode crossing.

The jkind of unboxed 32-bit integers with no mode crossing.

val kind_of_unboxed_int32 : Jkind.Const.Builtin.t

The jkind of unboxed 32-bit integers with mode crossing.

The jkind of unboxed 64-bit integers with no mode crossing.

val kind_of_unboxed_int64 : Jkind.Const.Builtin.t

The jkind of unboxed 64-bit integers with mode crossing.

val kind_of_idx : Jkind.Const.Builtin.t

The jkind of block indices with mode crossing.

The jkind of unboxed 128-bit vectors with no mode crossing.

The jkind of unboxed 256-bit vectors with no mode crossing.

The jkind of unboxed 256-bit vectors with no mode crossing.

val kind_of_unboxed_128bit_vectors : Jkind.Const.Builtin.t

The jkind of unboxed 128-bit vectors with mode crossing.

val kind_of_unboxed_256bit_vectors : Jkind.Const.Builtin.t

The jkind of unboxed 256-bit vectors with mode crossing.

val kind_of_unboxed_512bit_vectors : Jkind.Const.Builtin.t

The jkind of unboxed 512-bit vectors with mode crossing.

val all : Jkind.Const.Builtin.t list

A list of all Builtin jkinds