Skip to content

Commit

Permalink
flambda-backend: update heap-alloc tests and add heap-alloc CI (#1501)
Browse files Browse the repository at this point in the history
  • Loading branch information
riaqn authored May 2, 2024
1 parent 11cbac3 commit e663621
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 63 deletions.
2 changes: 1 addition & 1 deletion testsuite/tests/lib-obj/get_header.heap.reference
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
None
Some(wosize=1,color=0,tag=252)
Some(wosize=1,color=3,tag=252)
3 changes: 0 additions & 3 deletions testsuite/tests/lib-obj/get_header.ml
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
(* TEST
{
reference = "${test_source_directory}/get_header.heap.reference";
bytecode;
}{
stack-allocation;
reference = "${test_source_directory}/get_header.stack.reference";
native;
Expand Down
68 changes: 39 additions & 29 deletions testsuite/tests/translprim/array_spec.heap.flat.reference
Original file line number Diff line number Diff line change
Expand Up @@ -6,92 +6,102 @@
(seq (array.length[int] int_a) (array.length[float] float_a)
(array.length[addr] addr_a)
(function {nlocal = 0} a[genarray] : int (array.length[gen] a))
(array.get[int] int_a 0) (array.get[float] float_a 0)
(array.get[addr] addr_a 0)
(function {nlocal = 0} a[genarray] (array.get[gen] a 0))
(array.unsafe_get[int] int_a 0) (array.unsafe_get[float] float_a 0)
(array.unsafe_get[addr] addr_a 0)
(function {nlocal = 0} a[genarray] (array.unsafe_get[gen] a 0))
(array.set[int] int_a 0 1) (array.set[float] float_a 0 1.)
(array.set[addr] addr_a 0 "a")
(function {nlocal = 0} a[genarray] x : int (array.set[gen] a 0 x))
(array.unsafe_set[int] int_a 0 1)
(array.unsafe_set[float] float_a 0 1.)
(array.unsafe_set[addr] addr_a 0 "a")
(array.get[int indexed by int] int_a 0)
(array.get[float indexed by int] float_a 0)
(array.get[addr indexed by int] addr_a 0)
(function {nlocal = 0} a[genarray] (array.get[gen indexed by int] a 0))
(array.unsafe_get[int indexed by int] int_a 0)
(array.unsafe_get[float indexed by int] float_a 0)
(array.unsafe_get[addr indexed by int] addr_a 0)
(function {nlocal = 0} a[genarray]
(array.unsafe_get[gen indexed by int] a 0))
(array.set[int indexed by int] int_a 0 1)
(array.set[float indexed by int] float_a 0 1.)
(array.set[addr indexed by int] addr_a 0 "a")
(function {nlocal = 0} a[genarray] x : int
(array.unsafe_set[gen] a 0 x))
(array.set[gen indexed by int] a 0 x))
(array.unsafe_set[int indexed by int] int_a 0 1)
(array.unsafe_set[float indexed by int] float_a 0 1.)
(array.unsafe_set[addr indexed by int] addr_a 0 "a")
(function {nlocal = 0} a[genarray] x : int
(array.unsafe_set[gen indexed by int] a 0 x))
(let
(eta_gen_len =
(function {nlocal = 0} prim[genarray] stub
ignore assert all zero_alloc : int (array.length[gen] prim))
eta_gen_safe_get =
(function {nlocal = 0} prim[genarray] prim[int] stub
ignore assert all zero_alloc (array.get[gen] prim prim))
ignore assert all zero_alloc
(array.get[gen indexed by int] prim prim))
eta_gen_unsafe_get =
(function {nlocal = 0} prim[genarray] prim[int] stub
ignore assert all zero_alloc (array.unsafe_get[gen] prim prim))
ignore assert all zero_alloc
(array.unsafe_get[gen indexed by int] prim prim))
eta_gen_safe_set =
(function {nlocal = 0} prim[genarray] prim[int] prim stub
ignore assert all zero_alloc : int
(array.set[gen] prim prim prim))
(array.set[gen indexed by int] prim prim prim))
eta_gen_unsafe_set =
(function {nlocal = 0} prim[genarray] prim[int] prim stub
ignore assert all zero_alloc : int
(array.unsafe_set[gen] prim prim prim))
(array.unsafe_set[gen indexed by int] prim prim prim))
eta_int_len =
(function {nlocal = 0} prim[intarray] stub
ignore assert all zero_alloc : int (array.length[int] prim))
eta_int_safe_get =
(function {nlocal = 0} prim[intarray] prim[int] stub
ignore assert all zero_alloc : int (array.get[int] prim prim))
ignore assert all zero_alloc : int
(array.get[int indexed by int] prim prim))
eta_int_unsafe_get =
(function {nlocal = 0} prim[intarray] prim[int] stub
ignore assert all zero_alloc : int
(array.unsafe_get[int] prim prim))
(array.unsafe_get[int indexed by int] prim prim))
eta_int_safe_set =
(function {nlocal = 0} prim[intarray] prim[int] prim[int] stub
ignore assert all zero_alloc : int
(array.set[int] prim prim prim))
(array.set[int indexed by int] prim prim prim))
eta_int_unsafe_set =
(function {nlocal = 0} prim[intarray] prim[int] prim[int] stub
ignore assert all zero_alloc : int
(array.unsafe_set[int] prim prim prim))
(array.unsafe_set[int indexed by int] prim prim prim))
eta_float_len =
(function {nlocal = 0} prim[floatarray] stub
ignore assert all zero_alloc : int (array.length[float] prim))
eta_float_safe_get =
(function {nlocal = 0} prim[floatarray] prim[int] stub
ignore assert all zero_alloc : float
(array.get[float] prim prim))
(array.get[float indexed by int] prim prim))
eta_float_unsafe_get =
(function {nlocal = 0} prim[floatarray] prim[int] stub
ignore assert all zero_alloc : float
(array.unsafe_get[float] prim prim))
(array.unsafe_get[float indexed by int] prim prim))
eta_float_safe_set =
(function {nlocal = 0} prim[floatarray] prim[int] prim[float] stub
ignore assert all zero_alloc : int
(array.set[float] prim prim prim))
(array.set[float indexed by int] prim prim prim))
eta_float_unsafe_set =
(function {nlocal = 0} prim[floatarray] prim[int] prim[float] stub
ignore assert all zero_alloc : int
(array.unsafe_set[float] prim prim prim))
(array.unsafe_set[float indexed by int] prim prim prim))
eta_addr_len =
(function {nlocal = 0} prim[addrarray] stub
ignore assert all zero_alloc : int (array.length[addr] prim))
eta_addr_safe_get =
(function {nlocal = 0} prim[addrarray] prim[int] stub
ignore assert all zero_alloc (array.get[addr] prim prim))
ignore assert all zero_alloc
(array.get[addr indexed by int] prim prim))
eta_addr_unsafe_get =
(function {nlocal = 0} prim[addrarray] prim[int] stub
ignore assert all zero_alloc (array.unsafe_get[addr] prim prim))
ignore assert all zero_alloc
(array.unsafe_get[addr indexed by int] prim prim))
eta_addr_safe_set =
(function {nlocal = 0} prim[addrarray] prim[int] prim stub
ignore assert all zero_alloc : int
(array.set[addr] prim prim prim))
(array.set[addr indexed by int] prim prim prim))
eta_addr_unsafe_set =
(function {nlocal = 0} prim[addrarray] prim[int] prim stub
ignore assert all zero_alloc : int
(array.unsafe_set[addr] prim prim prim)))
(array.unsafe_set[addr indexed by int] prim prim prim)))
(makeblock 0 int_a float_a addr_a eta_gen_len eta_gen_safe_get
eta_gen_unsafe_get eta_gen_safe_set eta_gen_unsafe_set eta_int_len
eta_int_safe_get eta_int_unsafe_get eta_int_safe_set
Expand Down
28 changes: 0 additions & 28 deletions testsuite/tests/translprim/comparison_table.heap.reference
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,7 @@
ignore assert all zero_alloc : int (compare_ints prim prim))
eta_float_cmp =
(function {nlocal = 0} prim[float] prim[float] stub
<<<<<<< HEAD
ignore assert all zero_alloc : int (compare_floats float prim prim))
=======
ignore assert all zero_alloc : int (compare_floats prim prim))
>>>>>>> main
eta_string_cmp =
(function {nlocal = 0} prim prim stub ignore assert all zero_alloc
: int (caml_string_compare prim prim))
Expand Down Expand Up @@ -146,11 +142,7 @@
ignore assert all zero_alloc : int (== prim prim))
eta_float_eq =
(function {nlocal = 0} prim[float] prim[float] stub
<<<<<<< HEAD
ignore assert all zero_alloc : int (Float.== prim prim))
=======
ignore assert all zero_alloc : int (==. prim prim))
>>>>>>> main
eta_string_eq =
(function {nlocal = 0} prim prim stub ignore assert all zero_alloc
: int (caml_string_equal prim prim))
Expand All @@ -177,11 +169,7 @@
ignore assert all zero_alloc : int (!= prim prim))
eta_float_ne =
(function {nlocal = 0} prim[float] prim[float] stub
<<<<<<< HEAD
ignore assert all zero_alloc : int (Float.!= prim prim))
=======
ignore assert all zero_alloc : int (!=. prim prim))
>>>>>>> main
eta_string_ne =
(function {nlocal = 0} prim prim stub ignore assert all zero_alloc
: int (caml_string_notequal prim prim))
Expand All @@ -208,11 +196,7 @@
ignore assert all zero_alloc : int (< prim prim))
eta_float_lt =
(function {nlocal = 0} prim[float] prim[float] stub
<<<<<<< HEAD
ignore assert all zero_alloc : int (Float.< prim prim))
=======
ignore assert all zero_alloc : int (<. prim prim))
>>>>>>> main
eta_string_lt =
(function {nlocal = 0} prim prim stub ignore assert all zero_alloc
: int (caml_string_lessthan prim prim))
Expand All @@ -239,11 +223,7 @@
ignore assert all zero_alloc : int (> prim prim))
eta_float_gt =
(function {nlocal = 0} prim[float] prim[float] stub
<<<<<<< HEAD
ignore assert all zero_alloc : int (Float.> prim prim))
=======
ignore assert all zero_alloc : int (>. prim prim))
>>>>>>> main
eta_string_gt =
(function {nlocal = 0} prim prim stub ignore assert all zero_alloc
: int (caml_string_greaterthan prim prim))
Expand All @@ -270,11 +250,7 @@
ignore assert all zero_alloc : int (<= prim prim))
eta_float_le =
(function {nlocal = 0} prim[float] prim[float] stub
<<<<<<< HEAD
ignore assert all zero_alloc : int (Float.<= prim prim))
=======
ignore assert all zero_alloc : int (<=. prim prim))
>>>>>>> main
eta_string_le =
(function {nlocal = 0} prim prim stub ignore assert all zero_alloc
: int (caml_string_lessequal prim prim))
Expand All @@ -301,11 +277,7 @@
ignore assert all zero_alloc : int (>= prim prim))
eta_float_ge =
(function {nlocal = 0} prim[float] prim[float] stub
<<<<<<< HEAD
ignore assert all zero_alloc : int (Float.>= prim prim))
=======
ignore assert all zero_alloc : int (>=. prim prim))
>>>>>>> main
eta_string_ge =
(function {nlocal = 0} prim prim stub ignore assert all zero_alloc
: int (caml_string_greaterequal prim prim))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
44 3
2 words
2 words
11 changes: 9 additions & 2 deletions testsuite/tests/typing-local/regression_cmm_unboxing.ml
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
(* TEST
stack-allocation;
native;
{
stack-allocation;
reference = "${test_source_directory}/regression_cmm_unboxing.stack.reference";
native;
}{
no-stack-allocation;
reference = "${test_source_directory}/regression_cmm_unboxing.heap.reference";
native;
}
*)

(* Regression test for a bad interaction between Cmm unboxing
Expand Down

0 comments on commit e663621

Please sign in to comment.