Module Const.Builtin

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

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.

val void : t

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

val value_or_null : t

This is the jkind of normal ocaml values or null pointers

val value_or_null_mod_everything : t

Same kind mod everything.

val value : t

This is the jkind of normal ocaml values

val immutable_data : t

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

val exn : t

Exceptions; crossing portability, contention, statelessness and visibility.

val sync_data : t

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

val mutable_data : t

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

val immediate64 : 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 : t

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

val immediate_or_null : t

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

val immediate64_or_null : t

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

val float64 : t

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

val kind_of_unboxed_float : t

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

val float32 : t

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

val kind_of_unboxed_float32 : t

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

val word : t

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

val kind_of_unboxed_nativeint : t

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

val kind_of_untagged_immediate : t

The jkind of untagged immediates with mode crossing.

val bits8 : t

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

val kind_of_unboxed_int8 : t

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

val bits16 : t

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

val kind_of_unboxed_int16 : t

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

val bits32 : t

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

val kind_of_unboxed_int32 : t

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

val bits64 : t

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

val kind_of_unboxed_int64 : t

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

val kind_of_idx : t

The jkind of block indices with mode crossing.

val vec128 : t

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

val vec256 : t

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

val vec512 : t

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

val kind_of_unboxed_128bit_vectors : t

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

val kind_of_unboxed_256bit_vectors : t

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

val kind_of_unboxed_512bit_vectors : t

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

val all : t list

A list of all Builtin jkinds