Module Clambda_primitives

type mutable_flag = Asttypes.mutable_flag
type immediate_or_pointer = Lambda.immediate_or_pointer
type initialization_or_assignment = Lambda.initialization_or_assignment
type is_safe = Lambda.is_safe
type boxed =
  1. | Boxed
  2. | Unboxed
type memory_access_size =
  1. | Sixteen
  2. | Thirty_two
  3. | Sixty_four
type primitive =
  1. | Pread_symbol of string
  2. | Pmakeblock of int * mutable_flag * block_shape
  3. | Pfield of int
  4. | Pfield_computed
  5. | Psetfield of int * immediate_or_pointer * initialization_or_assignment
  6. | Psetfield_computed of immediate_or_pointer * initialization_or_assignment
  7. | Pfloatfield of int
  8. | Psetfloatfield of int * initialization_or_assignment
  9. | Pduprecord of Types.record_representation * int
  10. | Pccall of Primitive.description
  11. | Praise of raise_kind
  12. | Psequand
  13. | Psequor
  14. | Pnot
  15. | Pnegint
  16. | Paddint
  17. | Psubint
  18. | Pmulint
  19. | Pdivint of is_safe
  20. | Pmodint of is_safe
  21. | Pandint
  22. | Porint
  23. | Pxorint
  24. | Plslint
  25. | Plsrint
  26. | Pasrint
  27. | Pintcomp of integer_comparison
  28. | Pcompare_ints
  29. | Pcompare_floats
  30. | Pcompare_bints of boxed_integer
  31. | Poffsetint of int
  32. | Poffsetref of int
  33. | Pintoffloat
  34. | Pfloatofint
  35. | Pnegfloat
  36. | Pabsfloat
  37. | Paddfloat
  38. | Psubfloat
  39. | Pmulfloat
  40. | Pdivfloat
  41. | Pfloatcomp of float_comparison
  42. | Pstringlength
  43. | Pstringrefu
  44. | Pstringrefs
  45. | Pbyteslength
  46. | Pbytesrefu
  47. | Pbytessetu
  48. | Pbytesrefs
  49. | Pbytessets
  50. | Pmakearray of array_kind * mutable_flag
    (*

    For Pmakearray, the list of arguments must not be empty. The empty array should be represented by a distinguished constant in the middle end.

    *)
  51. | Pduparray of array_kind * mutable_flag
    (*

    For Pduparray, the argument must be an immutable array. The arguments of Pduparray give the kind and mutability of the array being *produced* by the duplication.

    *)
  52. | Parraylength of array_kind
  53. | Parrayrefu of array_kind
  54. | Parraysetu of array_kind
  55. | Parrayrefs of array_kind
  56. | Parraysets of array_kind
  57. | Pisint
  58. | Pisout
  59. | Pbintofint of boxed_integer
  60. | Pintofbint of boxed_integer
  61. | Pcvtbint of boxed_integer * boxed_integer
  62. | Pnegbint of boxed_integer
  63. | Paddbint of boxed_integer
  64. | Psubbint of boxed_integer
  65. | Pmulbint of boxed_integer
  66. | Pdivbint of {
    1. size : boxed_integer;
    2. is_safe : is_safe;
    }
  67. | Pmodbint of {
    1. size : boxed_integer;
    2. is_safe : is_safe;
    }
  68. | Pandbint of boxed_integer
  69. | Porbint of boxed_integer
  70. | Pxorbint of boxed_integer
  71. | Plslbint of boxed_integer
  72. | Plsrbint of boxed_integer
  73. | Pasrbint of boxed_integer
  74. | Pbintcomp of boxed_integer * integer_comparison
  75. | Pbigarrayref of bool * int * bigarray_kind * bigarray_layout
  76. | Pbigarrayset of bool * int * bigarray_kind * bigarray_layout
  77. | Pbigarraydim of int
  78. | Pstring_load of memory_access_size * is_safe
  79. | Pbytes_load of memory_access_size * is_safe
  80. | Pbytes_set of memory_access_size * is_safe
  81. | Pbigstring_load of memory_access_size * is_safe
  82. | Pbigstring_set of memory_access_size * is_safe
  83. | Pbswap16
  84. | Pbbswap of boxed_integer
  85. | Pint_as_pointer
  86. | Popaque
and integer_comparison = Lambda.integer_comparison =
  1. | Ceq
  2. | Cne
  3. | Clt
  4. | Cgt
  5. | Cle
  6. | Cge
and float_comparison = Lambda.float_comparison =
  1. | CFeq
  2. | CFneq
  3. | CFlt
  4. | CFnlt
  5. | CFgt
  6. | CFngt
  7. | CFle
  8. | CFnle
  9. | CFge
  10. | CFnge
and array_kind = Lambda.array_kind =
  1. | Pgenarray
  2. | Paddrarray
  3. | Pintarray
  4. | Pfloatarray
and value_kind = Lambda.value_kind =
  1. | Pgenval
  2. | Pfloatval
  3. | Pboxedintval of boxed_integer
  4. | Pintval
and block_shape = Lambda.block_shape
and boxed_integer = Primitive.boxed_integer =
  1. | Pnativeint
  2. | Pint32
  3. | Pint64
and bigarray_kind = Lambda.bigarray_kind =
  1. | Pbigarray_unknown
  2. | Pbigarray_float32
  3. | Pbigarray_float64
  4. | Pbigarray_sint8
  5. | Pbigarray_uint8
  6. | Pbigarray_sint16
  7. | Pbigarray_uint16
  8. | Pbigarray_int32
  9. | Pbigarray_int64
  10. | Pbigarray_caml_int
  11. | Pbigarray_native_int
  12. | Pbigarray_complex32
  13. | Pbigarray_complex64
and bigarray_layout = Lambda.bigarray_layout =
  1. | Pbigarray_unknown_layout
  2. | Pbigarray_c_layout
  3. | Pbigarray_fortran_layout
and raise_kind = Lambda.raise_kind =
  1. | Raise_regular
  2. | Raise_reraise
  3. | Raise_notrace
val equal : primitive -> primitive -> bool