jon.recoil.org

Module Flambda_primitive.Array_kind

type t =
  1. | Immediates
    (*

    An array consisting only of immediate values.

    *)
  2. | Gc_ignorable_values
    (*

    An array consisting of value-kind elements that the GC may ignore.

    *)
  3. | Values
    (*

    An array consisting of elements of kind value. With the float array optimisation enabled, such elements must never be floats.

    *)
  4. | Naked_floats
    (*

    An array consisting of naked floats, represented using Double_array_tag.

    *)
  5. | Naked_float32s
  6. | Naked_ints
  7. | Naked_int8s
  8. | Naked_int16s
  9. | Naked_int32s
  10. | Naked_int64s
  11. | Naked_nativeints
  12. | Naked_vec128s
  13. | Naked_vec256s
  14. | Naked_vec512s
  15. | Unboxed_product of Flambda2_terms.Flambda_primitive.Array_kind.t list
    (*

    Accesses to arrays of unboxed products are unarized on the way into Flambda 2. The float array optimization never applies for these arrays. Vectors are not yet supported inside these arrays.

    *)
val must_be_gc_scannable : Flambda2_terms.Flambda_primitive.Array_kind.t -> bool
val width_in_scalars : Flambda2_terms.Flambda_primitive.Array_kind.t -> int