@grain/binaryen.ml 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. binaryen-archive/CHANGELOG.md +59 -0
  2. binaryen-archive/binaryen.opam +2 -2
  3. binaryen-archive/esy.lock/index.json +261 -258
  4. binaryen-archive/esy.lock/opam/{base.v0.16.1 → base.v0.16.3}/opam +3 -3
  5. binaryen-archive/esy.lock/opam/{chrome-trace.3.9.0 → chrome-trace.3.10.0}/opam +5 -4
  6. binaryen-archive/esy.lock/opam/{dune-build-info.3.9.0 → dune-build-info.3.10.0}/opam +5 -4
  7. binaryen-archive/esy.lock/opam/{dune-configurator.3.9.0 → dune-configurator.3.10.0}/opam +5 -4
  8. binaryen-archive/esy.lock/opam/{dune-rpc.3.9.0 → dune-rpc.3.10.0}/opam +5 -4
  9. binaryen-archive/esy.lock/opam/{dune.3.9.0 → dune.3.10.0}/opam +5 -4
  10. binaryen-archive/esy.lock/opam/{dyn.3.9.0 → dyn.3.10.0}/opam +5 -4
  11. binaryen-archive/esy.lock/opam/{js_of_ocaml-compiler.5.3.0 → js_of_ocaml-compiler.5.4.0}/opam +5 -5
  12. binaryen-archive/esy.lock/opam/{ocamlformat-rpc-lib.0.25.1 → ocamlformat-rpc-lib.0.26.1}/opam +16 -6
  13. binaryen-archive/esy.lock/opam/{ordering.3.9.0 → ordering.3.10.0}/opam +5 -4
  14. binaryen-archive/esy.lock/opam/{pp.1.1.2 → pp.1.2.0}/opam +7 -6
  15. binaryen-archive/esy.lock/opam/{re.1.10.4 → re.1.11.0}/opam +5 -5
  16. binaryen-archive/esy.lock/opam/{stdune.3.9.0 → stdune.3.10.0}/opam +5 -4
  17. binaryen-archive/esy.lock/opam/{uucp.15.0.0 → uucp.15.1.0}/opam +10 -14
  18. binaryen-archive/esy.lock/opam/{uuseg.15.0.0 → uuseg.15.1.0}/opam +9 -11
  19. binaryen-archive/esy.lock/opam/{xdg.3.9.0 → xdg.3.10.0}/opam +5 -4
  20. binaryen-archive/package.json +2 -2
  21. binaryen-archive/src/dune +1 -3
  22. binaryen-archive/src/expression.c +42 -24
  23. binaryen-archive/src/expression.js +35 -16
  24. binaryen-archive/src/expression.ml +39 -11
  25. binaryen-archive/src/expression.mli +10 -2
  26. binaryen-archive/src/heap_type.c +2 -2
  27. binaryen-archive/src/heap_type.js +3 -3
  28. binaryen-archive/src/heap_type.ml +1 -1
  29. binaryen-archive/src/heap_type.mli +1 -1
  30. binaryen-archive/src/op.c +116 -95
  31. binaryen-archive/src/op.js +102 -84
  32. binaryen-archive/src/op.ml +152 -35
  33. binaryen-archive/src/op.mli +48 -45
  34. binaryen-archive/src/passes.ml +17 -1
  35. binaryen-archive/src/passes.mli +15 -0
  36. binaryen-archive/src/type.c +2 -2
  37. binaryen-archive/src/type.js +3 -3
  38. binaryen-archive/src/type.ml +2 -2
  39. binaryen-archive/src/type.mli +1 -1
  40. binaryen-archive/test/test.expected +26 -26
  41. binaryen-archive/src/type_system.c +0 -40
  42. binaryen-archive/src/type_system.js +0 -29
  43. binaryen-archive/src/type_system.ml +0 -7
  44. binaryen-archive/src/type_system.mli +0 -7
@@ -1258,6 +1258,72 @@ function caml_binaryen_bitselect_vec128() {
1258
1258
  return Binaryen.Operations.BitselectVec128;
1259
1259
  }
1260
1260
 
1261
+ //Provides: caml_binaryen_relaxed_fma_vec_f32x4
1262
+ //Requires: Binaryen
1263
+ function caml_binaryen_relaxed_fma_vec_f32x4() {
1264
+ return Binaryen.Operations.RelaxedFmaVecF32x4;
1265
+ }
1266
+
1267
+ //Provides: caml_binaryen_relaxed_fms_vec_f32x4
1268
+ //Requires: Binaryen
1269
+ function caml_binaryen_relaxed_fms_vec_f32x4() {
1270
+ return Binaryen.Operations.RelaxedFmsVecF32x4;
1271
+ }
1272
+
1273
+ //Provides: caml_binaryen_relaxed_fma_vec_f64x4
1274
+ //Requires: Binaryen
1275
+ function caml_binaryen_relaxed_fma_vec_f64x4() {
1276
+ return Binaryen.Operations.RelaxedFmaVecF64x2;
1277
+ }
1278
+
1279
+ //Provides: caml_binaryen_relaxed_fms_vec_f64x4
1280
+ //Requires: Binaryen
1281
+ function caml_binaryen_relaxed_fms_vec_f64x4() {
1282
+ return Binaryen.Operations.RelaxedFmsVecF64x2;
1283
+ }
1284
+
1285
+ //Provides: caml_binaryen_laneselect_i8x16
1286
+ //Requires: Binaryen
1287
+ function caml_binaryen_laneselect_i8x16() {
1288
+ return Binaryen.Operations.LaneselectI8x16;
1289
+ }
1290
+
1291
+ //Provides: caml_binaryen_laneselect_i16x8
1292
+ //Requires: Binaryen
1293
+ function caml_binaryen_laneselect_i16x8() {
1294
+ return Binaryen.Operations.LaneselectI16x8;
1295
+ }
1296
+
1297
+ //Provides: caml_binaryen_laneselect_i32x4
1298
+ //Requires: Binaryen
1299
+ function caml_binaryen_laneselect_i32x4() {
1300
+ return Binaryen.Operations.LaneselectI32x4;
1301
+ }
1302
+
1303
+ //Provides: caml_binaryen_laneselect_i64x2
1304
+ //Requires: Binaryen
1305
+ function caml_binaryen_laneselect_i64x2() {
1306
+ return Binaryen.Operations.LaneselectI64x2;
1307
+ }
1308
+
1309
+ //Provides: caml_binaryen_dot_i8x16_i7x16_add_s_to_vec_i32x4
1310
+ //Requires: Binaryen
1311
+ function caml_binaryen_dot_i8x16_i7x16_add_s_to_vec_i32x4() {
1312
+ return Binaryen.Operations.DotI8x16I7x16AddSToVecI32x4;
1313
+ }
1314
+
1315
+ //Provides: caml_binaryen_any_true_vec128
1316
+ //Requires: Binaryen
1317
+ function caml_binaryen_any_true_vec128() {
1318
+ return Binaryen.Operations.AnyTrueVec128;
1319
+ }
1320
+
1321
+ //Provides: caml_binaryen_popcnt_vec_i8x16
1322
+ //Requires: Binaryen
1323
+ function caml_binaryen_popcnt_vec_i8x16() {
1324
+ return Binaryen.Operations.PopcntVecI8x16;
1325
+ }
1326
+
1261
1327
  //Provides: caml_binaryen_abs_vec_i8x16
1262
1328
  //Requires: Binaryen
1263
1329
  function caml_binaryen_abs_vec_i8x16() {
@@ -1846,54 +1912,12 @@ function caml_binaryen_swizzle_vec8x16() {
1846
1912
  return Binaryen.Operations.SwizzleVecI8x16;
1847
1913
  }
1848
1914
 
1849
- //Provides: caml_binaryen_ref_is_null
1850
- //Requires: Binaryen
1851
- function caml_binaryen_ref_is_null() {
1852
- return Binaryen.Operations.RefIsNull;
1853
- }
1854
-
1855
- //Provides: caml_binaryen_ref_is_func
1856
- //Requires: Binaryen
1857
- function caml_binaryen_ref_is_func() {
1858
- return Binaryen.Operations.RefIsFunc;
1859
- }
1860
-
1861
- //Provides: caml_binaryen_ref_is_data
1862
- //Requires: Binaryen
1863
- function caml_binaryen_ref_is_data() {
1864
- return Binaryen.Operations.RefIsData;
1865
- }
1866
-
1867
- //Provides: caml_binaryen_ref_is_i31
1868
- //Requires: Binaryen
1869
- function caml_binaryen_ref_is_i31() {
1870
- return Binaryen.Operations.RefIsI31;
1871
- }
1872
-
1873
1915
  //Provides: caml_binaryen_ref_as_non_null
1874
1916
  //Requires: Binaryen
1875
1917
  function caml_binaryen_ref_as_non_null() {
1876
1918
  return Binaryen.Operations.RefAsNonNull;
1877
1919
  }
1878
1920
 
1879
- //Provides: caml_binaryen_ref_as_func
1880
- //Requires: Binaryen
1881
- function caml_binaryen_ref_as_func() {
1882
- return Binaryen.Operations.RefAsFunc;
1883
- }
1884
-
1885
- //Provides: caml_binaryen_ref_as_data
1886
- //Requires: Binaryen
1887
- function caml_binaryen_ref_as_data() {
1888
- return Binaryen.Operations.RefAsData;
1889
- }
1890
-
1891
- //Provides: caml_binaryen_ref_as_i31
1892
- //Requires: Binaryen
1893
- function caml_binaryen_ref_as_i31() {
1894
- return Binaryen.Operations.RefAsI31;
1895
- }
1896
-
1897
1921
  //Provides: caml_binaryen_ref_as_extern_internalize
1898
1922
  //Requires: Binaryen
1899
1923
  function caml_binaryen_ref_as_extern_internalize() {
@@ -1930,42 +1954,6 @@ function caml_binaryen_br_on_cast_fail() {
1930
1954
  return Binaryen.Operations.BrOnCastFail;
1931
1955
  }
1932
1956
 
1933
- //Provides: caml_binaryen_br_on_func
1934
- //Requires: Binaryen
1935
- function caml_binaryen_br_on_func() {
1936
- return Binaryen.Operations.BrOnFunc;
1937
- }
1938
-
1939
- //Provides: caml_binaryen_br_on_non_func
1940
- //Requires: Binaryen
1941
- function caml_binaryen_br_on_non_func() {
1942
- return Binaryen.Operations.BrOnNonFunc;
1943
- }
1944
-
1945
- //Provides: caml_binaryen_br_on_data
1946
- //Requires: Binaryen
1947
- function caml_binaryen_br_on_data() {
1948
- return Binaryen.Operations.BrOnData;
1949
- }
1950
-
1951
- //Provides: caml_binaryen_br_on_non_data
1952
- //Requires: Binaryen
1953
- function caml_binaryen_br_on_non_data() {
1954
- return Binaryen.Operations.BrOnNonData;
1955
- }
1956
-
1957
- //Provides: caml_binaryen_br_on_i31
1958
- //Requires: Binaryen
1959
- function caml_binaryen_br_on_i31() {
1960
- return Binaryen.Operations.BrOnI31;
1961
- }
1962
-
1963
- //Provides: caml_binaryen_br_on_non_i31
1964
- //Requires: Binaryen
1965
- function caml_binaryen_br_on_non_i31() {
1966
- return Binaryen.Operations.BrOnNonI31;
1967
- }
1968
-
1969
1957
  //Provides: caml_binaryen_string_new_utf8
1970
1958
  //Requires: Binaryen
1971
1959
  function caml_binaryen_string_new_utf8() {
@@ -1978,10 +1966,10 @@ function caml_binaryen_string_new_wtf8() {
1978
1966
  return Binaryen.Operations.StringNewWTF8;
1979
1967
  }
1980
1968
 
1981
- //Provides: caml_binaryen_string_new_replace
1969
+ //Provides: caml_binaryen_string_new_lossy_utf8
1982
1970
  //Requires: Binaryen
1983
- function caml_binaryen_string_new_replace() {
1984
- return Binaryen.Operations.StringNewReplace;
1971
+ function caml_binaryen_string_new_lossy_utf8() {
1972
+ return Binaryen.Operations.StringNewLossyUTF8;
1985
1973
  }
1986
1974
 
1987
1975
  //Provides: caml_binaryen_string_new_wtf16
@@ -2002,10 +1990,10 @@ function caml_binaryen_string_new_wtf8_array() {
2002
1990
  return Binaryen.Operations.StringNewWTF8Array;
2003
1991
  }
2004
1992
 
2005
- //Provides: caml_binaryen_string_new_replace_array
1993
+ //Provides: caml_binaryen_string_new_lossy_utf8_array
2006
1994
  //Requires: Binaryen
2007
- function caml_binaryen_string_new_replace_array() {
2008
- return Binaryen.Operations.StringNewReplaceArray;
1995
+ function caml_binaryen_string_new_lossy_utf8_array() {
1996
+ return Binaryen.Operations.StringNewLossyUTF8Array;
2009
1997
  }
2010
1998
 
2011
1999
  //Provides: caml_binaryen_string_new_wtf16_array
@@ -2014,6 +2002,12 @@ function caml_binaryen_string_new_wtf16_array() {
2014
2002
  return Binaryen.Operations.StringNewWTF16Array;
2015
2003
  }
2016
2004
 
2005
+ //Provides: caml_binaryen_string_new_from_code_point
2006
+ //Requires: Binaryen
2007
+ function caml_binaryen_string_new_from_code_point() {
2008
+ return Binaryen.Operations.StringNewFromCodePoint;
2009
+ }
2010
+
2017
2011
  //Provides: caml_binaryen_string_measure_utf8
2018
2012
  //Requires: Binaryen
2019
2013
  function caml_binaryen_string_measure_utf8() {
@@ -2050,6 +2044,12 @@ function caml_binaryen_string_encode_utf8() {
2050
2044
  return Binaryen.Operations.StringEncodeUTF8;
2051
2045
  }
2052
2046
 
2047
+ //Provides: caml_binaryen_string_encode_lossy_utf8
2048
+ //Requires: Binaryen
2049
+ function caml_binaryen_string_encode_lossy_utf8() {
2050
+ return Binaryen.Operations.StringEncodeLossyUTF8;
2051
+ }
2052
+
2053
2053
  //Provides: caml_binaryen_string_encode_wtf8
2054
2054
  //Requires: Binaryen
2055
2055
  function caml_binaryen_string_encode_wtf8() {
@@ -2068,6 +2068,12 @@ function caml_binaryen_string_encode_utf8_array() {
2068
2068
  return Binaryen.Operations.StringEncodeUTF8Array;
2069
2069
  }
2070
2070
 
2071
+ //Provides: caml_binaryen_string_encode_lossy_utf8_array
2072
+ //Requires: Binaryen
2073
+ function caml_binaryen_string_encode_lossy_utf8_array() {
2074
+ return Binaryen.Operations.StringEncodeLossyUTF8Array;
2075
+ }
2076
+
2071
2077
  //Provides: caml_binaryen_string_encode_wtf8_array
2072
2078
  //Requires: Binaryen
2073
2079
  function caml_binaryen_string_encode_wtf8_array() {
@@ -2121,3 +2127,15 @@ function caml_binaryen_string_slice_wtf8() {
2121
2127
  function caml_binaryen_string_slice_wtf16() {
2122
2128
  return Binaryen.Operations.StringSliceWTF16;
2123
2129
  }
2130
+
2131
+ //Provides: caml_binaryen_string_eq_equal
2132
+ //Requires: Binaryen
2133
+ function caml_binaryen_string_eq_equal() {
2134
+ return Binaryen.Operations.StringEqEqual;
2135
+ }
2136
+
2137
+ //Provides: caml_binaryen_string_eq_compare
2138
+ //Requires: Binaryen
2139
+ function caml_binaryen_string_eq_compare() {
2140
+ return Binaryen.Operations.StringEqCompare;
2141
+ }
@@ -878,6 +878,55 @@ external bitselect_vec128 : unit -> t = "caml_binaryen_bitselect_vec128"
878
878
 
879
879
  let bitselect_vec128 = bitselect_vec128 ()
880
880
 
881
+ external relaxed_fma_vec_f32x4 : unit -> t
882
+ = "caml_binaryen_relaxed_fma_vec_f32x4"
883
+
884
+ let relaxed_fma_vec_f32x4 = relaxed_fma_vec_f32x4 ()
885
+
886
+ external relaxed_fms_vec_f32x4 : unit -> t
887
+ = "caml_binaryen_relaxed_fms_vec_f32x4"
888
+
889
+ let relaxed_fms_vec_f32x4 = relaxed_fms_vec_f32x4 ()
890
+
891
+ external relaxed_fma_vec_f64x4 : unit -> t
892
+ = "caml_binaryen_relaxed_fma_vec_f64x4"
893
+
894
+ let relaxed_fma_vec_f64x4 = relaxed_fma_vec_f64x4 ()
895
+
896
+ external relaxed_fms_vec_f64x4 : unit -> t
897
+ = "caml_binaryen_relaxed_fms_vec_f64x4"
898
+
899
+ let relaxed_fms_vec_f64x4 = relaxed_fms_vec_f64x4 ()
900
+
901
+ external laneselect_i8x16 : unit -> t = "caml_binaryen_laneselect_i8x16"
902
+
903
+ let laneselect_i8x16 = laneselect_i8x16 ()
904
+
905
+ external laneselect_i16x8 : unit -> t = "caml_binaryen_laneselect_i16x8"
906
+
907
+ let laneselect_i16x8 = laneselect_i16x8 ()
908
+
909
+ external laneselect_i32x4 : unit -> t = "caml_binaryen_laneselect_i32x4"
910
+
911
+ let laneselect_i32x4 = laneselect_i32x4 ()
912
+
913
+ external laneselect_i64x2 : unit -> t = "caml_binaryen_laneselect_i64x2"
914
+
915
+ let laneselect_i64x2 = laneselect_i64x2 ()
916
+
917
+ external dot_i8x16_i7x16_add_s_to_vec_i32x4 : unit -> t
918
+ = "caml_binaryen_dot_i8x16_i7x16_add_s_to_vec_i32x4"
919
+
920
+ let dot_i8x16_i7x16_add_s_to_vec_i32x4 = dot_i8x16_i7x16_add_s_to_vec_i32x4 ()
921
+
922
+ external any_true_vec128 : unit -> t = "caml_binaryen_any_true_vec128"
923
+
924
+ let any_true_vec128 = any_true_vec128 ()
925
+
926
+ external popcnt_vec_i8x16 : unit -> t = "caml_binaryen_popcnt_vec_i8x16"
927
+
928
+ let popcnt_vec_i8x16 = popcnt_vec_i8x16 ()
929
+
881
930
  external abs_vec_i8x16 : unit -> t = "caml_binaryen_abs_vec_i8x16"
882
931
 
883
932
  let abs_vec_i8x16 = abs_vec_i8x16 ()
@@ -1279,103 +1328,171 @@ external swizzle_vec8x16 : unit -> t = "caml_binaryen_swizzle_vec8x16"
1279
1328
 
1280
1329
  let swizzle_vec8x16 = swizzle_vec8x16 ()
1281
1330
 
1282
- external ref_is_null : unit -> t = "caml_binaryen_ref_is_null"
1331
+ external ref_as_non_null : unit -> t = "caml_binaryen_ref_as_non_null"
1283
1332
 
1284
- let ref_is_null = ref_is_null ()
1333
+ let ref_as_non_null = ref_as_non_null ()
1285
1334
 
1286
- external ref_is_func : unit -> t = "caml_binaryen_ref_is_func"
1335
+ external ref_as_extern_internalize : unit -> t
1336
+ = "caml_binaryen_ref_as_extern_internalize"
1287
1337
 
1288
- let ref_is_func = ref_is_func ()
1338
+ let ref_as_extern_internalize = ref_as_extern_internalize ()
1289
1339
 
1290
- external ref_is_data : unit -> t = "caml_binaryen_ref_is_data"
1340
+ external ref_as_extern_externalize : unit -> t
1341
+ = "caml_binaryen_ref_as_extern_externalize"
1291
1342
 
1292
- let ref_is_data = ref_is_data ()
1343
+ let ref_as_extern_externalize = ref_as_extern_externalize ()
1293
1344
 
1294
- external ref_is_i31 : unit -> t = "caml_binaryen_ref_is_i31"
1345
+ external br_on_null : unit -> t = "caml_binaryen_br_on_null"
1295
1346
 
1296
- let ref_is_i31 = ref_is_i31 ()
1347
+ let br_on_null = br_on_null ()
1297
1348
 
1298
- external ref_as_non_null : unit -> t = "caml_binaryen_ref_as_non_null"
1349
+ external br_on_non_null : unit -> t = "caml_binaryen_br_on_non_null"
1299
1350
 
1300
- let ref_as_non_null = ref_as_non_null ()
1351
+ let br_on_non_null = br_on_non_null ()
1301
1352
 
1302
- external ref_as_func : unit -> t = "caml_binaryen_ref_as_func"
1353
+ external br_on_cast : unit -> t = "caml_binaryen_br_on_cast"
1303
1354
 
1304
- let ref_as_func = ref_as_func ()
1355
+ let br_on_cast = br_on_cast ()
1305
1356
 
1306
- external ref_as_data : unit -> t = "caml_binaryen_ref_as_data"
1357
+ external br_on_cast_fail : unit -> t = "caml_binaryen_br_on_cast_fail"
1307
1358
 
1308
- let ref_as_data = ref_as_data ()
1359
+ let br_on_cast_fail = br_on_cast_fail ()
1309
1360
 
1310
- external ref_as_i31 : unit -> t = "caml_binaryen_ref_as_i31"
1361
+ external string_new_utf8 : unit -> t = "caml_binaryen_string_new_utf8"
1311
1362
 
1312
- let ref_as_i31 = ref_as_i31 ()
1363
+ let string_new_utf8 = string_new_utf8 ()
1313
1364
 
1314
- external ref_as_extern_internalize : unit -> t
1315
- = "caml_binaryen_ref_as_extern_internalize"
1365
+ external string_new_wtf8 : unit -> t = "caml_binaryen_string_new_wtf8"
1316
1366
 
1317
- external ref_as_extern_externalize : unit -> t
1318
- = "caml_binaryen_ref_as_extern_externalize"
1367
+ let string_new_wtf8 = string_new_wtf8 ()
1368
+
1369
+ external string_new_lossy_utf8 : unit -> t
1370
+ = "caml_binaryen_string_new_lossy_utf8"
1371
+
1372
+ let string_new_lossy_utf8 = string_new_lossy_utf8 ()
1319
1373
 
1320
- external br_on_null : unit -> t = "caml_binaryen_br_on_null"
1321
- external br_on_non_null : unit -> t = "caml_binaryen_br_on_non_null"
1322
- external br_on_cast : unit -> t = "caml_binaryen_br_on_cast"
1323
- external br_on_cast_fail : unit -> t = "caml_binaryen_br_on_cast_fail"
1324
- external br_on_func : unit -> t = "caml_binaryen_br_on_func"
1325
- external br_on_non_func : unit -> t = "caml_binaryen_br_on_non_func"
1326
- external br_on_data : unit -> t = "caml_binaryen_br_on_data"
1327
- external br_on_non_data : unit -> t = "caml_binaryen_br_on_non_data"
1328
- external br_on_i31 : unit -> t = "caml_binaryen_br_on_i31"
1329
- external br_on_non_i31 : unit -> t = "caml_binaryen_br_on_non_i31"
1330
- external string_new_utf8 : unit -> t = "caml_binaryen_string_new_utf8"
1331
- external string_new_wtf8 : unit -> t = "caml_binaryen_string_new_wtf8"
1332
- external string_new_replace : unit -> t = "caml_binaryen_string_new_replace"
1333
1374
  external string_new_wtf16 : unit -> t = "caml_binaryen_string_new_wtf16"
1334
1375
 
1376
+ let string_new_wtf16 = string_new_wtf16 ()
1377
+
1335
1378
  external string_new_utf8_array : unit -> t
1336
1379
  = "caml_binaryen_string_new_utf8_array"
1337
1380
 
1381
+ let string_new_utf8_array = string_new_utf8_array ()
1382
+
1338
1383
  external string_new_wtf8_array : unit -> t
1339
1384
  = "caml_binaryen_string_new_wtf8_array"
1340
1385
 
1341
- external string_new_replace_array : unit -> t
1342
- = "caml_binaryen_string_new_replace_array"
1386
+ let string_new_wtf8_array = string_new_wtf8_array ()
1387
+
1388
+ external string_new_lossy_utf8_array : unit -> t
1389
+ = "caml_binaryen_string_new_lossy_utf8_array"
1390
+
1391
+ let string_new_lossy_utf8_array = string_new_lossy_utf8_array ()
1343
1392
 
1344
1393
  external string_new_wtf16_array : unit -> t
1345
1394
  = "caml_binaryen_string_new_wtf16_array"
1346
1395
 
1396
+ let string_new_wtf16_array = string_new_wtf16_array ()
1397
+
1398
+ external string_new_from_code_point : unit -> t
1399
+ = "caml_binaryen_string_new_from_code_point"
1400
+
1401
+ let string_new_from_code_point = string_new_from_code_point ()
1402
+
1347
1403
  external string_measure_utf8 : unit -> t = "caml_binaryen_string_measure_utf8"
1404
+
1405
+ let string_measure_utf8 = string_measure_utf8 ()
1406
+
1348
1407
  external string_measure_wtf8 : unit -> t = "caml_binaryen_string_measure_wtf8"
1408
+
1409
+ let string_measure_wtf8 = string_measure_wtf8 ()
1410
+
1349
1411
  external string_measure_wtf16 : unit -> t = "caml_binaryen_string_measure_wtf16"
1350
1412
 
1413
+ let string_measure_wtf16 = string_measure_wtf16 ()
1414
+
1351
1415
  external string_measure_is_usv : unit -> t
1352
1416
  = "caml_binaryen_string_measure_is_usv"
1353
1417
 
1418
+ let string_measure_is_usv = string_measure_is_usv ()
1419
+
1354
1420
  external string_measure_wtf16_view : unit -> t
1355
1421
  = "caml_binaryen_string_measure_wtf16_view"
1356
1422
 
1423
+ let string_measure_wtf16_view = string_measure_wtf16_view ()
1424
+
1357
1425
  external string_encode_utf8 : unit -> t = "caml_binaryen_string_encode_utf8"
1426
+
1427
+ let string_encode_utf8 = string_encode_utf8 ()
1428
+
1429
+ external string_encode_lossy_utf8 : unit -> t
1430
+ = "caml_binaryen_string_encode_lossy_utf8"
1431
+
1432
+ let string_encode_lossy_utf8 = string_encode_lossy_utf8 ()
1433
+
1358
1434
  external string_encode_wtf8 : unit -> t = "caml_binaryen_string_encode_wtf8"
1435
+
1436
+ let string_encode_wtf8 = string_encode_wtf8 ()
1437
+
1359
1438
  external string_encode_wtf16 : unit -> t = "caml_binaryen_string_encode_wtf16"
1360
1439
 
1440
+ let string_encode_wtf16 = string_encode_wtf16 ()
1441
+
1361
1442
  external string_encode_utf8_array : unit -> t
1362
1443
  = "caml_binaryen_string_encode_utf8_array"
1363
1444
 
1445
+ let string_encode_utf8_array = string_encode_utf8_array ()
1446
+
1447
+ external string_encode_lossy_utf8_array : unit -> t
1448
+ = "caml_binaryen_string_encode_lossy_utf8_array"
1449
+
1450
+ let string_encode_lossy_utf8_array = string_encode_lossy_utf8_array ()
1451
+
1364
1452
  external string_encode_wtf8_array : unit -> t
1365
1453
  = "caml_binaryen_string_encode_wtf8_array"
1366
1454
 
1455
+ let string_encode_wtf8_array = string_encode_wtf8_array ()
1456
+
1367
1457
  external string_encode_wtf16_array : unit -> t
1368
1458
  = "caml_binaryen_string_encode_wtf16_array"
1369
1459
 
1460
+ let string_encode_wtf16_array = string_encode_wtf16_array ()
1461
+
1370
1462
  external string_as_wtf8 : unit -> t = "caml_binaryen_string_as_wtf8"
1463
+
1464
+ let string_as_wtf8 = string_as_wtf8 ()
1465
+
1371
1466
  external string_as_wtf16 : unit -> t = "caml_binaryen_string_as_wtf16"
1467
+
1468
+ let string_as_wtf16 = string_as_wtf16 ()
1469
+
1372
1470
  external string_as_iter : unit -> t = "caml_binaryen_string_as_iter"
1373
1471
 
1472
+ let string_as_iter = string_as_iter ()
1473
+
1374
1474
  external string_iter_move_advance : unit -> t
1375
1475
  = "caml_binaryen_string_iter_move_advance"
1376
1476
 
1477
+ let string_iter_move_advance = string_iter_move_advance ()
1478
+
1377
1479
  external string_iter_move_rewind : unit -> t
1378
1480
  = "caml_binaryen_string_iter_move_rewind"
1379
1481
 
1482
+ let string_iter_move_rewind = string_iter_move_rewind ()
1483
+
1380
1484
  external string_slice_wtf8 : unit -> t = "caml_binaryen_string_slice_wtf8"
1485
+
1486
+ let string_slice_wtf8 = string_slice_wtf8 ()
1487
+
1381
1488
  external string_slice_wtf16 : unit -> t = "caml_binaryen_string_slice_wtf16"
1489
+
1490
+ let string_slice_wtf16 = string_slice_wtf16 ()
1491
+
1492
+ external string_eq_equal : unit -> t = "caml_binaryen_string_eq_equal"
1493
+
1494
+ let string_eq_equal = string_eq_equal ()
1495
+
1496
+ external string_eq_compare : unit -> t = "caml_binaryen_string_eq_compare"
1497
+
1498
+ let string_eq_compare = string_eq_compare ()
@@ -210,6 +210,17 @@ val or_vec128 : t
210
210
  val xor_vec128 : t
211
211
  val and_not_vec128 : t
212
212
  val bitselect_vec128 : t
213
+ val relaxed_fma_vec_f32x4 : t
214
+ val relaxed_fms_vec_f32x4 : t
215
+ val relaxed_fma_vec_f64x4 : t
216
+ val relaxed_fms_vec_f64x4 : t
217
+ val laneselect_i8x16 : t
218
+ val laneselect_i16x8 : t
219
+ val laneselect_i32x4 : t
220
+ val laneselect_i64x2 : t
221
+ val dot_i8x16_i7x16_add_s_to_vec_i32x4 : t
222
+ val any_true_vec128 : t
223
+ val popcnt_vec_i8x16 : t
213
224
  val abs_vec_i8x16 : t
214
225
  val neg_vec_i8x16 : t
215
226
  val all_true_vec_i8x16 : t
@@ -308,49 +319,41 @@ val narrow_u_vec_i16x8_to_vec_i8x16 : t
308
319
  val narrow_s_vec_i32x4_to_vec_i16x8 : t
309
320
  val narrow_u_vec_i32x4_to_vec_i16x8 : t
310
321
  val swizzle_vec8x16 : t
311
- val ref_is_null : t
312
- val ref_is_func : t
313
- val ref_is_data : t
314
- val ref_is_i31 : t
315
322
  val ref_as_non_null : t
316
- val ref_as_func : t
317
- val ref_as_data : t
318
- val ref_as_i31 : t
319
- val ref_as_extern_internalize : unit -> t
320
- val ref_as_extern_externalize : unit -> t
321
- val br_on_null : unit -> t
322
- val br_on_non_null : unit -> t
323
- val br_on_cast : unit -> t
324
- val br_on_cast_fail : unit -> t
325
- val br_on_func : unit -> t
326
- val br_on_non_func : unit -> t
327
- val br_on_data : unit -> t
328
- val br_on_non_data : unit -> t
329
- val br_on_i31 : unit -> t
330
- val br_on_non_i31 : unit -> t
331
- val string_new_utf8 : unit -> t
332
- val string_new_wtf8 : unit -> t
333
- val string_new_replace : unit -> t
334
- val string_new_wtf16 : unit -> t
335
- val string_new_utf8_array : unit -> t
336
- val string_new_wtf8_array : unit -> t
337
- val string_new_replace_array : unit -> t
338
- val string_new_wtf16_array : unit -> t
339
- val string_measure_utf8 : unit -> t
340
- val string_measure_wtf8 : unit -> t
341
- val string_measure_wtf16 : unit -> t
342
- val string_measure_is_usv : unit -> t
343
- val string_measure_wtf16_view : unit -> t
344
- val string_encode_utf8 : unit -> t
345
- val string_encode_wtf8 : unit -> t
346
- val string_encode_wtf16 : unit -> t
347
- val string_encode_utf8_array : unit -> t
348
- val string_encode_wtf8_array : unit -> t
349
- val string_encode_wtf16_array : unit -> t
350
- val string_as_wtf8 : unit -> t
351
- val string_as_wtf16 : unit -> t
352
- val string_as_iter : unit -> t
353
- val string_iter_move_advance : unit -> t
354
- val string_iter_move_rewind : unit -> t
355
- val string_slice_wtf8 : unit -> t
356
- val string_slice_wtf16 : unit -> t
323
+ val ref_as_extern_internalize : t
324
+ val ref_as_extern_externalize : t
325
+ val br_on_null : t
326
+ val br_on_non_null : t
327
+ val br_on_cast : t
328
+ val br_on_cast_fail : t
329
+ val string_new_utf8 : t
330
+ val string_new_wtf8 : t
331
+ val string_new_lossy_utf8 : t
332
+ val string_new_wtf16 : t
333
+ val string_new_utf8_array : t
334
+ val string_new_wtf8_array : t
335
+ val string_new_wtf16_array : t
336
+ val string_new_from_code_point : t
337
+ val string_measure_utf8 : t
338
+ val string_measure_wtf8 : t
339
+ val string_new_lossy_utf8_array : t
340
+ val string_measure_wtf16 : t
341
+ val string_measure_is_usv : t
342
+ val string_measure_wtf16_view : t
343
+ val string_encode_utf8 : t
344
+ val string_encode_lossy_utf8 : t
345
+ val string_encode_wtf8 : t
346
+ val string_encode_wtf16 : t
347
+ val string_encode_utf8_array : t
348
+ val string_encode_lossy_utf8_array : t
349
+ val string_encode_wtf8_array : t
350
+ val string_encode_wtf16_array : t
351
+ val string_as_wtf8 : t
352
+ val string_as_wtf16 : t
353
+ val string_as_iter : t
354
+ val string_iter_move_advance : t
355
+ val string_iter_move_rewind : t
356
+ val string_slice_wtf8 : t
357
+ val string_slice_wtf16 : t
358
+ val string_eq_equal : t
359
+ val string_eq_compare : t
@@ -15,6 +15,9 @@ let dae = "dae"
15
15
  (** removes arguments to calls in an lto-like manner, and optimizes where we removed *)
16
16
  let dae_optimizing = "dae-optimizing"
17
17
 
18
+ (** refine and merge abstract (never-created) types *)
19
+ let abstract_type_refining = "abstract-type-refining"
20
+
18
21
  (** reduce # of locals by coalescing *)
19
22
  let coalesce_locals = "coalesce-locals"
20
23
 
@@ -199,6 +202,10 @@ let monomorphize_always = "monomorphize-always"
199
202
  (** combines multiple memories into a single memory *)
200
203
  let multi_memory_lowering = "multi-memory-lowering"
201
204
 
205
+ (** combines multiple memories into a single memory, trapping if the read or write is larger than the length of the memory's data *)
206
+ let multi_memory_lowering_with_bounds_checks =
207
+ "multi-memory-lowering-with-bounds-checks"
208
+
202
209
  (** name list *)
203
210
  let nm = "nm"
204
211
 
@@ -287,6 +294,9 @@ let remove_unused_nonfunction_module_elements =
287
294
  (** removes names from locations that are never branched to *)
288
295
  let remove_unused_names = "remove-unused-names"
289
296
 
297
+ (** remove unused private GC types *)
298
+ let remove_unused_types = "remove-unused-types"
299
+
290
300
  (** sorts functions by access frequency *)
291
301
  let reorder_functions = "reorder-functions"
292
302
 
@@ -320,7 +330,7 @@ let signature_pruning = "signature-pruning"
320
330
  (** apply more specific subtypes to signature types where possible *)
321
331
  let signature_refining = "signature-refining"
322
332
 
323
- (** lower sign-ext operations to wasm mvp *)
333
+ (** lower sign-ext operations to wasm mvp and disable the sign extension feature *)
324
334
  let signext_lowering = "signext-lowering"
325
335
 
326
336
  (** miscellaneous globals-related optimizations *)
@@ -386,6 +396,12 @@ let trap_mode_clamp = "trap-mode-clamp"
386
396
  (** replace trapping operations with js semantics *)
387
397
  let trap_mode_js = "trap-mode-js"
388
398
 
399
+ (** merge types to their supertypes where possible *)
400
+ let type_merging = "type-merging"
401
+
402
+ (** create new nominal types to help other optimizations *)
403
+ let type_ssa = "type-ssa"
404
+
389
405
  (** removes local.tees, replacing them with sets and gets *)
390
406
  let untee = "untee"
391
407