Skip to content

Commit d090c6d

Browse files
committed
small fixes
1 parent 9c4fa5e commit d090c6d

File tree

5 files changed

+25
-10
lines changed

5 files changed

+25
-10
lines changed

lambda/lambda.ml

+4-5
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,8 @@ and array_kind =
232232

233233
and ignorable_product_element_kind =
234234
| Pint_ignorable
235-
| Punboxedfloat_ignorable of unboxed_float
236-
| Punboxedint_ignorable of unboxed_integer
235+
| Punboxedfloat_ignorable of Primitive.unboxed_float
236+
| Punboxedint_ignorable of Primitive.unboxed_integer
237237
| Pproduct_ignorable of ignorable_product_element_kind list
238238

239239
and scannable_product_element_kind =
@@ -661,7 +661,6 @@ module Scalar = struct
661661
let to_string t =
662662
let i = Integral.to_string in
663663
let f = Floating.to_string in
664-
let sprintf = Printf.sprintf in
665664
match t with
666665
| Add { size } -> i size ^ "_add"
667666
| Fadd { size } -> f size ^ "_add"
@@ -1115,7 +1114,7 @@ let rec equal_ignorable_product_element_kind k1 k2 =
11151114
| Punboxedfloat_ignorable f1, Punboxedfloat_ignorable f2 ->
11161115
Primitive.equal_unboxed_float f1 f2
11171116
| Punboxedint_ignorable i1, Punboxedint_ignorable i2 ->
1118-
equal_unboxed_integer i1 i2
1117+
Primitive.equal_unboxed_integer i1 i2
11191118
| Pproduct_ignorable p1, Pproduct_ignorable p2 ->
11201119
List.equal equal_ignorable_product_element_kind p1 p2
11211120
| ( Pint_ignorable | Punboxedfloat_ignorable _
@@ -2645,7 +2644,7 @@ let rec layout_of_ignorable_kinds kinds =
26452644
and layout_of_ignorable_kind = function
26462645
| Pint_ignorable -> layout_int
26472646
| Punboxedfloat_ignorable f -> layout_unboxed_float f
2648-
| Punboxedint_ignorable i -> layout_unboxed_int i
2647+
| Punboxedint_ignorable i -> layout_unboxed_int (unboxed_integer_of_primitive i)
26492648
| Pproduct_ignorable kinds -> layout_of_ignorable_kinds kinds
26502649

26512650
let array_ref_kind_result_layout = function

lambda/lambda.mli

+2-2
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ and array_kind =
175175

176176
and ignorable_product_element_kind =
177177
| Pint_ignorable
178-
| Punboxedfloat_ignorable of unboxed_float
179-
| Punboxedint_ignorable of unboxed_integer
178+
| Punboxedfloat_ignorable of Primitive.unboxed_float
179+
| Punboxedint_ignorable of Primitive.unboxed_integer
180180
| Pproduct_ignorable of ignorable_product_element_kind list
181181

182182
and scannable_product_element_kind =

lambda/printlambda.ml

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ let rec ignorable_product_element_kinds kinds =
115115
and ignorable_product_element_kind = function
116116
| Pint_ignorable -> "int"
117117
| Punboxedfloat_ignorable f -> unboxed_float f
118-
| Punboxedint_ignorable i -> unboxed_integer i
118+
| Punboxedint_ignorable i -> primitive_unboxed_integer i
119119
| Pproduct_ignorable kinds -> ignorable_product_element_kinds kinds
120120

121121
let array_kind = function

middle_end/flambda2/from_lambda/lambda_to_flambda_primitives.ml

+17-2
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,16 @@ let convert_unboxed_integer_comparison_prim (kind : L.unboxed_integer)
7070
Int_comp (Naked_nativeint, Yielding_bool (Le Signed))
7171
| Unboxed_nativeint, Cge ->
7272
Int_comp (Naked_nativeint, Yielding_bool (Ge Signed))
73+
| Unboxed_immediate, Ceq -> Int_comp (Naked_immediate, Yielding_bool Eq)
74+
| Unboxed_immediate, Cne -> Int_comp (Naked_immediate, Yielding_bool Neq)
75+
| Unboxed_immediate, Clt ->
76+
Int_comp (Naked_immediate, Yielding_bool (Lt Signed))
77+
| Unboxed_immediate, Cgt ->
78+
Int_comp (Naked_immediate, Yielding_bool (Gt Signed))
79+
| Unboxed_immediate, Cle ->
80+
Int_comp (Naked_immediate, Yielding_bool (Le Signed))
81+
| Unboxed_immediate, Cge ->
82+
Int_comp (Naked_immediate, Yielding_bool (Ge Signed))
7383

7484
let convert_float_comparison (comp : L.float_comparison) : unit P.comparison =
7585
match comp with
@@ -104,19 +114,24 @@ let standard_int_of_unboxed_integer : L.unboxed_integer -> K.Standard_int.t =
104114
| Unboxed_int16 -> Naked_int16
105115
| Unboxed_int32 -> Naked_int32
106116
| Unboxed_nativeint -> Naked_nativeint
117+
| Unboxed_immediate -> Naked_immediate
107118
| Unboxed_int64 -> Naked_int64
108119

109120
let standard_int_or_float_of_unboxed_integer (ubint : L.unboxed_integer) :
110121
K.Standard_int_or_float.t =
111122
match ubint with
123+
| Unboxed_immediate -> Naked_immediate
112124
| Unboxed_nativeint -> Naked_nativeint
113125
| Unboxed_int8 -> Naked_int8
114126
| Unboxed_int16 -> Naked_int16
115127
| Unboxed_int32 -> Naked_int32
116128
| Unboxed_int64 -> Naked_int64
117129

118-
let standard_int_or_float_of_boxed_integer bint =
119-
standard_int_or_float_of_unboxed_integer (Primitive.unboxed_integer bint)
130+
let standard_int_or_float_of_boxed_integer :
131+
L.boxed_integer -> K.Standard_int_or_float.t = function
132+
| Boxed_int32 -> Naked_int32
133+
| Boxed_int64 -> Naked_int64
134+
| Boxed_nativeint -> Naked_nativeint
120135

121136
let standard_int_or_float_of_peek_or_poke (layout : L.peek_or_poke) :
122137
K.Standard_int_or_float.t =

middle_end/flambda2/kinds/flambda_kind.ml

+1
Original file line numberDiff line numberDiff line change
@@ -949,6 +949,7 @@ module With_subkind = struct
949949
| Punboxed_int Unboxed_int32 -> naked_int32
950950
| Punboxed_int Unboxed_int64 -> naked_int64
951951
| Punboxed_int Unboxed_nativeint -> naked_nativeint
952+
| Punboxed_int Unboxed_immediate -> naked_immediate
952953
| Punboxed_vector Unboxed_vec128 -> naked_vec128
953954
| Punboxed_product _ | Ptop | Pbottom ->
954955
Misc.fatal_errorf

0 commit comments

Comments
 (0)