Skip to content

Commit 0ea8b04

Browse files
authored
flambda-backend: Revert "Communicate frontend layouts to lambda" (oxcaml#1507)
1 parent 383e158 commit 0ea8b04

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+731
-1134
lines changed

.depend

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,7 @@ parsing/jane_syntax.cmo : \
434434
parsing/parsetree.cmi \
435435
parsing/longident.cmi \
436436
parsing/location.cmi \
437+
utils/language_extension.cmi \
437438
parsing/jane_syntax_parsing.cmi \
438439
parsing/asttypes.cmi \
439440
parsing/ast_helper.cmi \
@@ -442,6 +443,7 @@ parsing/jane_syntax.cmx : \
442443
parsing/parsetree.cmi \
443444
parsing/longident.cmx \
444445
parsing/location.cmx \
446+
utils/language_extension.cmx \
445447
parsing/jane_syntax_parsing.cmx \
446448
parsing/asttypes.cmi \
447449
parsing/ast_helper.cmx \
@@ -1234,22 +1236,19 @@ typing/primitive.cmo : \
12341236
typing/outcometree.cmi \
12351237
utils/misc.cmi \
12361238
parsing/location.cmi \
1237-
typing/layouts.cmi \
12381239
parsing/attr_helper.cmi \
12391240
typing/primitive.cmi
12401241
typing/primitive.cmx : \
12411242
parsing/parsetree.cmi \
12421243
typing/outcometree.cmi \
12431244
utils/misc.cmx \
12441245
parsing/location.cmx \
1245-
typing/layouts.cmx \
12461246
parsing/attr_helper.cmx \
12471247
typing/primitive.cmi
12481248
typing/primitive.cmi : \
12491249
parsing/parsetree.cmi \
12501250
typing/outcometree.cmi \
1251-
parsing/location.cmi \
1252-
typing/layouts.cmi
1251+
parsing/location.cmi
12531252
typing/printpat.cmo : \
12541253
typing/types.cmi \
12551254
typing/typedtree.cmi \
@@ -1981,7 +1980,6 @@ typing/typeopt.cmi : \
19811980
typing/typedtree.cmi \
19821981
typing/path.cmi \
19831982
parsing/location.cmi \
1984-
typing/layouts.cmi \
19851983
lambda/lambda.cmi \
19861984
typing/env.cmi
19871985
typing/types.cmo : \
@@ -3712,7 +3710,6 @@ lambda/lambda.cmo : \
37123710
utils/misc.cmi \
37133711
parsing/longident.cmi \
37143712
parsing/location.cmi \
3715-
typing/layouts.cmi \
37163713
typing/ident.cmi \
37173714
typing/env.cmi \
37183715
lambda/debuginfo.cmi \
@@ -3728,7 +3725,6 @@ lambda/lambda.cmx : \
37283725
utils/misc.cmx \
37293726
parsing/longident.cmx \
37303727
parsing/location.cmx \
3731-
typing/layouts.cmx \
37323728
typing/ident.cmx \
37333729
typing/env.cmx \
37343730
lambda/debuginfo.cmx \
@@ -3743,7 +3739,6 @@ lambda/lambda.cmi : \
37433739
typing/primitive.cmi \
37443740
typing/path.cmi \
37453741
parsing/location.cmi \
3746-
typing/layouts.cmi \
37473742
typing/ident.cmi \
37483743
typing/env.cmi \
37493744
lambda/debuginfo.cmi \
@@ -3798,7 +3793,6 @@ lambda/matching.cmx : \
37983793
lambda/matching.cmi : \
37993794
typing/typedtree.cmi \
38003795
parsing/location.cmi \
3801-
typing/layouts.cmi \
38023796
lambda/lambda.cmi \
38033797
typing/ident.cmi \
38043798
lambda/debuginfo.cmi
@@ -3887,7 +3881,6 @@ lambda/transl_array_comprehension.cmo : \
38873881
typing/predef.cmi \
38883882
utils/misc.cmi \
38893883
lambda/matching.cmi \
3890-
typing/layouts.cmi \
38913884
lambda/lambda.cmi \
38923885
typing/ident.cmi \
38933886
typing/env.cmi \
@@ -3901,7 +3894,6 @@ lambda/transl_array_comprehension.cmx : \
39013894
typing/predef.cmx \
39023895
utils/misc.cmx \
39033896
lambda/matching.cmx \
3904-
typing/layouts.cmx \
39053897
lambda/lambda.cmx \
39063898
typing/ident.cmx \
39073899
typing/env.cmx \
@@ -3910,7 +3902,6 @@ lambda/transl_array_comprehension.cmx : \
39103902
lambda/transl_array_comprehension.cmi
39113903
lambda/transl_array_comprehension.cmi : \
39123904
typing/typedtree.cmi \
3913-
typing/layouts.cmi \
39143905
lambda/lambda.cmi \
39153906
lambda/debuginfo.cmi
39163907
lambda/transl_comprehension_utils.cmo : \
@@ -3932,7 +3923,6 @@ lambda/transl_list_comprehension.cmo : \
39323923
typing/typedtree.cmi \
39333924
lambda/transl_comprehension_utils.cmi \
39343925
lambda/matching.cmi \
3935-
typing/layouts.cmi \
39363926
lambda/lambda.cmi \
39373927
typing/ident.cmi \
39383928
parsing/asttypes.cmi \
@@ -3942,14 +3932,12 @@ lambda/transl_list_comprehension.cmx : \
39423932
typing/typedtree.cmx \
39433933
lambda/transl_comprehension_utils.cmx \
39443934
lambda/matching.cmx \
3945-
typing/layouts.cmx \
39463935
lambda/lambda.cmx \
39473936
typing/ident.cmx \
39483937
parsing/asttypes.cmi \
39493938
lambda/transl_list_comprehension.cmi
39503939
lambda/transl_list_comprehension.cmi : \
39513940
typing/typedtree.cmi \
3952-
typing/layouts.cmi \
39533941
lambda/lambda.cmi \
39543942
lambda/debuginfo.cmi
39553943
lambda/translattribute.cmo : \
@@ -3992,7 +3980,6 @@ lambda/translclass.cmo : \
39923980
typing/path.cmi \
39933981
lambda/matching.cmi \
39943982
parsing/location.cmi \
3995-
typing/layouts.cmi \
39963983
lambda/lambda.cmi \
39973984
typing/ident.cmi \
39983985
typing/env.cmi \
@@ -4010,7 +3997,6 @@ lambda/translclass.cmx : \
40103997
typing/path.cmx \
40113998
lambda/matching.cmx \
40123999
parsing/location.cmx \
4013-
typing/layouts.cmx \
40144000
lambda/lambda.cmx \
40154001
typing/ident.cmx \
40164002
typing/env.cmx \
@@ -4097,7 +4083,6 @@ lambda/translcore.cmx : \
40974083
parsing/asttypes.cmi \
40984084
lambda/translcore.cmi
40994085
lambda/translcore.cmi : \
4100-
typing/types.cmi \
41014086
typing/typedtree.cmi \
41024087
parsing/longident.cmi \
41034088
parsing/location.cmi \
@@ -4219,7 +4204,6 @@ lambda/translprim.cmo : \
42194204
utils/misc.cmi \
42204205
lambda/matching.cmi \
42214206
parsing/location.cmi \
4222-
typing/layouts.cmi \
42234207
lambda/lambda.cmi \
42244208
typing/ident.cmi \
42254209
typing/env.cmi \
@@ -4240,7 +4224,6 @@ lambda/translprim.cmx : \
42404224
utils/misc.cmx \
42414225
lambda/matching.cmx \
42424226
parsing/location.cmx \
4243-
typing/layouts.cmx \
42444227
lambda/lambda.cmx \
42454228
typing/ident.cmx \
42464229
typing/env.cmx \

asmcomp/cmm_helpers.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1579,7 +1579,7 @@ let box_sized size mode dbg exp =
15791579
(* Simplification of some primitives into C calls *)
15801580

15811581
let default_prim name =
1582-
Primitive.simple_on_values ~name ~arity:0(*ignored*) ~alloc:true
1582+
Primitive.simple ~name ~arity:0(*ignored*) ~alloc:true
15831583

15841584

15851585
let int64_native_prim name arity ~alloc =

asmcomp/cmmgen.ml

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@ let rec transl env e =
541541
transl_make_array dbg env kind alloc_heap args
542542
| (Pduparray _, [arg]) ->
543543
let prim_obj_dup =
544-
Primitive.simple_on_values ~name:"caml_obj_dup" ~arity:1 ~alloc:true
544+
Primitive.simple ~name:"caml_obj_dup" ~arity:1 ~alloc:true
545545
in
546546
transl_ccall env prim_obj_dup [arg] dbg
547547
| (Pmakearray _, []) ->
@@ -826,13 +826,9 @@ and transl_make_array dbg env kind mode args =
826826

827827
and transl_ccall env prim args dbg =
828828
let transl_arg native_repr arg =
829-
(* CR layouts v2: This match to be extended with
830-
| Same_as_ocaml_repr Float64 -> (XFloat, transl env arg)
831-
in the PR that adds Float64 *)
832829
match native_repr with
833-
| Same_as_ocaml_repr Value ->
830+
| Same_as_ocaml_repr ->
834831
(XInt, transl env arg)
835-
| Same_as_ocaml_repr Void -> assert false
836832
| Unboxed_float ->
837833
(XFloat, transl_unbox_float dbg env arg)
838834
| Unboxed_integer bi ->
@@ -860,11 +856,7 @@ and transl_ccall env prim args dbg =
860856
in
861857
let typ_res, wrap_result =
862858
match prim.prim_native_repr_res with
863-
(* CR layouts v2: This match to be extended with
864-
| Same_as_ocaml_repr Float64 -> (typ_float, fun x -> x)
865-
in the PR that adds Float64 *)
866-
| _, Same_as_ocaml_repr Value -> (typ_val, fun x -> x)
867-
| _, Same_as_ocaml_repr Void -> assert false
859+
| _, Same_as_ocaml_repr -> (typ_val, fun x -> x)
868860
(* TODO: Allow Alloc_local on suitably typed C stubs *)
869861
| _, Unboxed_float -> (typ_float, box_float dbg alloc_heap)
870862
| _, Unboxed_integer Pint64 when size_int = 4 ->

boot/ocamlc

-15.1 KB
Binary file not shown.

boot/ocamllex

0 Bytes
Binary file not shown.

bytecomp/bytegen.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,7 @@ let rec comp_expr env exp sz cont =
797797
comp_expr env (Lprim (Pmakearray (kind, mutability, m), args, loc)) sz cont
798798
| Lprim (Pduparray _, [arg], loc) ->
799799
let prim_obj_dup =
800-
Primitive.simple_on_values ~name:"caml_obj_dup" ~arity:1 ~alloc:true
800+
Primitive.simple ~name:"caml_obj_dup" ~arity:1 ~alloc:true
801801
in
802802
comp_expr env (Lprim (Pccall prim_obj_dup, [arg], loc)) sz cont
803803
| Lprim (Pduparray _, _, _) ->

compilerlibs/Makefile.compilerlibs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ PARSING_CMI = \
8080

8181
TYPING = \
8282
typing/path.cmo \
83-
typing/layouts.cmo \
8483
typing/primitive.cmo \
8584
typing/shape.cmo \
85+
typing/layouts.cmo \
8686
typing/types.cmo \
8787
typing/btype.cmo \
8888
typing/oprint.cmo \

dune

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
asttypes parsetree
6969

7070
;; TYPING
71-
ident path layouts primitive shape types btype oprint subst predef datarepr
71+
ident path primitive shape layouts types btype oprint subst predef datarepr
7272
cmi_format persistent_env env errortrace
7373
typedtree printtyped ctype printtyp includeclass mtype envaux includecore
7474
tast_iterator tast_mapper signature_group cmt_format cms_format untypeast
@@ -263,8 +263,8 @@
263263
(parsetree.mli as compiler-libs/parsetree.mli)
264264
(ident.mli as compiler-libs/ident.mli)
265265
(path.mli as compiler-libs/path.mli)
266-
(layouts.mli as compiler-libs/layouts.mli)
267266
(primitive.mli as compiler-libs/primitive.mli)
267+
(layouts.mli as compiler-libs/layouts.mli)
268268
(types.mli as compiler-libs/types.mli)
269269
(btype.mli as compiler-libs/btype.mli)
270270
(binutils.mli as compiler-libs/binutils.mli)

lambda/lambda.ml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -637,14 +637,13 @@ let layout_class = Pvalue Pgenval
637637
let layout_module = Pvalue Pgenval
638638
let layout_module_field = Pvalue Pgenval
639639
let layout_functor = Pvalue Pgenval
640-
let layout_boxed_float = Pvalue Pfloatval
640+
let layout_float = Pvalue Pfloatval
641641
let layout_string = Pvalue Pgenval
642642
let layout_boxedint bi = Pvalue (Pboxedintval bi)
643643
let layout_lazy = Pvalue Pgenval
644644
let layout_lazy_contents = Pvalue Pgenval
645645
let layout_any_value = Pvalue Pgenval
646646
let layout_letrec = layout_any_value
647-
let layout_probe_arg = Pvalue Pgenval
648647

649648
(* CR ncourant: use [Ptop] or remove this as soon as possible. *)
650649
let layout_top = layout_any_value
@@ -1439,15 +1438,12 @@ let primitive_result_layout (p : primitive) =
14391438
| Pfield _ | Pfield_computed _ -> layout_field
14401439
| Pfloatfield _ | Pfloatofint _ | Pnegfloat _ | Pabsfloat _
14411440
| Paddfloat _ | Psubfloat _ | Pmulfloat _ | Pdivfloat _
1442-
| Pbox_float _ -> layout_boxed_float
1441+
| Pbox_float _ -> layout_float
14431442
| Punbox_float -> Punboxed_float
14441443
| Pccall { prim_native_repr_res = _, Untagged_int; _} -> layout_int
1445-
| Pccall { prim_native_repr_res = _, Unboxed_float; _} -> layout_boxed_float
1446-
| Pccall { prim_native_repr_res = _, Same_as_ocaml_repr s; _} ->
1447-
begin match s with
1448-
| Value -> layout_any_value
1449-
| Void -> assert false
1450-
end
1444+
| Pccall { prim_native_repr_res = _, Unboxed_float; _} -> layout_float
1445+
| Pccall { prim_native_repr_res = _, Same_as_ocaml_repr; _} ->
1446+
layout_any_value
14511447
| Pccall { prim_native_repr_res = _, Unboxed_integer bi; _} ->
14521448
layout_boxedint bi
14531449
| Praise _ -> layout_bottom
@@ -1469,7 +1465,7 @@ let primitive_result_layout (p : primitive) =
14691465
| Parrayrefu array_ref_kind | Parrayrefs array_ref_kind ->
14701466
(match array_ref_kind with
14711467
| Pintarray_ref -> layout_int
1472-
| Pfloatarray_ref _ -> layout_boxed_float
1468+
| Pfloatarray_ref _ -> layout_float
14731469
| Pgenarray_ref _ | Paddrarray_ref -> layout_field)
14741470
| Pbintofint (bi, _) | Pcvtbint (_,bi,_)
14751471
| Pnegbint (bi, _) | Paddbint (bi, _) | Psubbint (bi, _)
@@ -1486,7 +1482,7 @@ let primitive_result_layout (p : primitive) =
14861482
| Pbigarrayref (_, _, kind, _) ->
14871483
begin match kind with
14881484
| Pbigarray_unknown -> layout_any_value
1489-
| Pbigarray_float32 | Pbigarray_float64 -> layout_boxed_float
1485+
| Pbigarray_float32 | Pbigarray_float64 -> layout_float
14901486
| Pbigarray_sint8 | Pbigarray_uint8
14911487
| Pbigarray_sint16 | Pbigarray_uint16
14921488
| Pbigarray_caml_int -> layout_int

lambda/lambda.mli

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ val layout_module : layout
527527
val layout_functor : layout
528528
val layout_module_field : layout
529529
val layout_string : layout
530-
val layout_boxed_float : layout
530+
val layout_float : layout
531531
val layout_boxedint : boxed_integer -> layout
532532
(* A layout that is Pgenval because it is the field of a block *)
533533
val layout_field : layout
@@ -537,8 +537,6 @@ val layout_lazy_contents : layout
537537
val layout_any_value : layout
538538
(* A layout that is Pgenval because it is bound by a letrec *)
539539
val layout_letrec : layout
540-
(* The probe hack: Free vars in probes must have layout value. *)
541-
val layout_probe_arg : layout
542540

543541
val layout_top : layout
544542
val layout_bottom : layout

0 commit comments

Comments
 (0)