@grain/binaryen.ml 0.21.0 → 0.22.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 (37) hide show
  1. binaryen-archive/CHANGELOG.md +34 -0
  2. binaryen-archive/binaryen.opam +2 -2
  3. binaryen-archive/esy.lock/index.json +191 -191
  4. binaryen-archive/esy.lock/opam/{chrome-trace.3.9.0 → chrome-trace.3.9.1}/opam +4 -4
  5. binaryen-archive/esy.lock/opam/{dune-build-info.3.9.0 → dune-build-info.3.9.1}/opam +4 -4
  6. binaryen-archive/esy.lock/opam/{dune-configurator.3.9.0 → dune-configurator.3.9.1}/opam +4 -4
  7. binaryen-archive/esy.lock/opam/{dune-rpc.3.9.0 → dune-rpc.3.9.1}/opam +4 -4
  8. binaryen-archive/esy.lock/opam/{dune.3.9.0 → dune.3.9.1}/opam +4 -4
  9. binaryen-archive/esy.lock/opam/{dyn.3.9.0 → dyn.3.9.1}/opam +4 -4
  10. binaryen-archive/esy.lock/opam/{js_of_ocaml-compiler.5.3.0 → js_of_ocaml-compiler.5.4.0}/opam +5 -5
  11. binaryen-archive/esy.lock/opam/{ordering.3.9.0 → ordering.3.9.1}/opam +4 -4
  12. binaryen-archive/esy.lock/opam/{stdune.3.9.0 → stdune.3.9.1}/opam +4 -4
  13. binaryen-archive/esy.lock/opam/{xdg.3.9.0 → xdg.3.9.1}/opam +4 -4
  14. binaryen-archive/package.json +2 -2
  15. binaryen-archive/src/expression.c +24 -6
  16. binaryen-archive/src/expression.js +20 -6
  17. binaryen-archive/src/expression.ml +14 -5
  18. binaryen-archive/src/expression.mli +10 -2
  19. binaryen-archive/src/heap_type.c +2 -2
  20. binaryen-archive/src/heap_type.js +3 -3
  21. binaryen-archive/src/heap_type.ml +1 -1
  22. binaryen-archive/src/heap_type.mli +1 -1
  23. binaryen-archive/src/op.c +98 -91
  24. binaryen-archive/src/op.js +84 -78
  25. binaryen-archive/src/op.ml +138 -32
  26. binaryen-archive/src/op.mli +46 -45
  27. binaryen-archive/src/passes.ml +16 -0
  28. binaryen-archive/src/passes.mli +15 -0
  29. binaryen-archive/src/type.c +2 -2
  30. binaryen-archive/src/type.js +3 -3
  31. binaryen-archive/src/type.ml +2 -2
  32. binaryen-archive/src/type.mli +1 -1
  33. binaryen-archive/src/type_system.c +0 -6
  34. binaryen-archive/src/type_system.js +0 -6
  35. binaryen-archive/src/type_system.ml +0 -1
  36. binaryen-archive/src/type_system.mli +0 -1
  37. binaryen-archive/test/test.expected +12 -12
@@ -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() {
@@ -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() {
@@ -2121,3 +2115,15 @@ function caml_binaryen_string_slice_wtf8() {
2121
2115
  function caml_binaryen_string_slice_wtf16() {
2122
2116
  return Binaryen.Operations.StringSliceWTF16;
2123
2117
  }
2118
+
2119
+ //Provides: caml_binaryen_string_eq_equal
2120
+ //Requires: Binaryen
2121
+ function caml_binaryen_string_eq_equal() {
2122
+ return Binaryen.Operations.StringEqEqual;
2123
+ }
2124
+
2125
+ //Provides: caml_binaryen_string_eq_compare
2126
+ //Requires: Binaryen
2127
+ function caml_binaryen_string_eq_compare() {
2128
+ return Binaryen.Operations.StringEqCompare;
2129
+ }
@@ -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,160 @@ 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 ()
1319
1368
 
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
1369
  external string_new_replace : unit -> t = "caml_binaryen_string_new_replace"
1370
+
1371
+ let string_new_replace = string_new_replace ()
1372
+
1333
1373
  external string_new_wtf16 : unit -> t = "caml_binaryen_string_new_wtf16"
1334
1374
 
1375
+ let string_new_wtf16 = string_new_wtf16 ()
1376
+
1335
1377
  external string_new_utf8_array : unit -> t
1336
1378
  = "caml_binaryen_string_new_utf8_array"
1337
1379
 
1380
+ let string_new_utf8_array = string_new_utf8_array ()
1381
+
1338
1382
  external string_new_wtf8_array : unit -> t
1339
1383
  = "caml_binaryen_string_new_wtf8_array"
1340
1384
 
1385
+ let string_new_wtf8_array = string_new_wtf8_array ()
1386
+
1341
1387
  external string_new_replace_array : unit -> t
1342
1388
  = "caml_binaryen_string_new_replace_array"
1343
1389
 
1390
+ let string_new_replace_array = string_new_replace_array ()
1391
+
1344
1392
  external string_new_wtf16_array : unit -> t
1345
1393
  = "caml_binaryen_string_new_wtf16_array"
1346
1394
 
1395
+ let string_new_wtf16_array = string_new_wtf16_array ()
1396
+
1397
+ external string_new_from_code_point : unit -> t
1398
+ = "caml_binaryen_string_new_from_code_point"
1399
+
1400
+ let string_new_from_code_point = string_new_from_code_point ()
1401
+
1347
1402
  external string_measure_utf8 : unit -> t = "caml_binaryen_string_measure_utf8"
1403
+
1404
+ let string_measure_utf8 = string_measure_utf8 ()
1405
+
1348
1406
  external string_measure_wtf8 : unit -> t = "caml_binaryen_string_measure_wtf8"
1407
+
1408
+ let string_measure_wtf8 = string_measure_wtf8 ()
1409
+
1349
1410
  external string_measure_wtf16 : unit -> t = "caml_binaryen_string_measure_wtf16"
1350
1411
 
1412
+ let string_measure_wtf16 = string_measure_wtf16 ()
1413
+
1351
1414
  external string_measure_is_usv : unit -> t
1352
1415
  = "caml_binaryen_string_measure_is_usv"
1353
1416
 
1417
+ let string_measure_is_usv = string_measure_is_usv ()
1418
+
1354
1419
  external string_measure_wtf16_view : unit -> t
1355
1420
  = "caml_binaryen_string_measure_wtf16_view"
1356
1421
 
1422
+ let string_measure_wtf16_view = string_measure_wtf16_view ()
1423
+
1357
1424
  external string_encode_utf8 : unit -> t = "caml_binaryen_string_encode_utf8"
1425
+
1426
+ let string_encode_utf8 = string_encode_utf8 ()
1427
+
1358
1428
  external string_encode_wtf8 : unit -> t = "caml_binaryen_string_encode_wtf8"
1429
+
1430
+ let string_encode_wtf8 = string_encode_wtf8 ()
1431
+
1359
1432
  external string_encode_wtf16 : unit -> t = "caml_binaryen_string_encode_wtf16"
1360
1433
 
1434
+ let string_encode_wtf16 = string_encode_wtf16 ()
1435
+
1361
1436
  external string_encode_utf8_array : unit -> t
1362
1437
  = "caml_binaryen_string_encode_utf8_array"
1363
1438
 
1439
+ let string_encode_utf8_array = string_encode_utf8_array ()
1440
+
1364
1441
  external string_encode_wtf8_array : unit -> t
1365
1442
  = "caml_binaryen_string_encode_wtf8_array"
1366
1443
 
1444
+ let string_encode_wtf8_array = string_encode_wtf8_array ()
1445
+
1367
1446
  external string_encode_wtf16_array : unit -> t
1368
1447
  = "caml_binaryen_string_encode_wtf16_array"
1369
1448
 
1449
+ let string_encode_wtf16_array = string_encode_wtf16_array ()
1450
+
1370
1451
  external string_as_wtf8 : unit -> t = "caml_binaryen_string_as_wtf8"
1452
+
1453
+ let string_as_wtf8 = string_as_wtf8 ()
1454
+
1371
1455
  external string_as_wtf16 : unit -> t = "caml_binaryen_string_as_wtf16"
1456
+
1457
+ let string_as_wtf16 = string_as_wtf16 ()
1458
+
1372
1459
  external string_as_iter : unit -> t = "caml_binaryen_string_as_iter"
1373
1460
 
1461
+ let string_as_iter = string_as_iter ()
1462
+
1374
1463
  external string_iter_move_advance : unit -> t
1375
1464
  = "caml_binaryen_string_iter_move_advance"
1376
1465
 
1466
+ let string_iter_move_advance = string_iter_move_advance ()
1467
+
1377
1468
  external string_iter_move_rewind : unit -> t
1378
1469
  = "caml_binaryen_string_iter_move_rewind"
1379
1470
 
1471
+ let string_iter_move_rewind = string_iter_move_rewind ()
1472
+
1380
1473
  external string_slice_wtf8 : unit -> t = "caml_binaryen_string_slice_wtf8"
1474
+
1475
+ let string_slice_wtf8 = string_slice_wtf8 ()
1476
+
1381
1477
  external string_slice_wtf16 : unit -> t = "caml_binaryen_string_slice_wtf16"
1478
+
1479
+ let string_slice_wtf16 = string_slice_wtf16 ()
1480
+
1481
+ external string_eq_equal : unit -> t = "caml_binaryen_string_eq_equal"
1482
+
1483
+ let string_eq_equal = string_eq_equal ()
1484
+
1485
+ external string_eq_compare : unit -> t = "caml_binaryen_string_eq_compare"
1486
+
1487
+ 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,39 @@ 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_replace : 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_replace_array : t
336
+ val string_new_wtf16_array : t
337
+ val string_new_from_code_point : t
338
+ val string_measure_utf8 : t
339
+ val string_measure_wtf8 : 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_wtf8 : t
345
+ val string_encode_wtf16 : t
346
+ val string_encode_utf8_array : t
347
+ val string_encode_wtf8_array : t
348
+ val string_encode_wtf16_array : t
349
+ val string_as_wtf8 : t
350
+ val string_as_wtf16 : t
351
+ val string_as_iter : t
352
+ val string_iter_move_advance : t
353
+ val string_iter_move_rewind : t
354
+ val string_slice_wtf8 : t
355
+ val string_slice_wtf16 : t
356
+ val string_eq_equal : t
357
+ 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
 
@@ -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
 
@@ -15,6 +15,9 @@ val dae : t
15
15
  val dae_optimizing : t
16
16
  (** removes arguments to calls in an lto-like manner, and optimizes where we removed *)
17
17
 
18
+ val abstract_type_refining : t
19
+ (** refine and merge abstract (never-created) types *)
20
+
18
21
  val coalesce_locals : t
19
22
  (** reduce # of locals by coalescing *)
20
23
 
@@ -198,6 +201,9 @@ val monomorphize_always : t
198
201
  val multi_memory_lowering : t
199
202
  (** combines multiple memories into a single memory *)
200
203
 
204
+ val multi_memory_lowering_with_bounds_checks : t
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
+
201
207
  val nm : t
202
208
  (** name list *)
203
209
 
@@ -285,6 +291,9 @@ val remove_unused_nonfunction_module_elements : t
285
291
  val remove_unused_names : t
286
292
  (** removes names from locations that are never branched to *)
287
293
 
294
+ val remove_unused_types : t
295
+ (** remove unused private GC types *)
296
+
288
297
  val reorder_functions : t
289
298
  (** sorts functions by access frequency *)
290
299
 
@@ -384,6 +393,12 @@ val trap_mode_clamp : t
384
393
  val trap_mode_js : t
385
394
  (** replace trapping operations with js semantics *)
386
395
 
396
+ val type_merging : t
397
+ (** merge types to their supertypes where possible *)
398
+
399
+ val type_ssa : t
400
+ (** create new nominal types to help other optimizations *)
401
+
387
402
  val untee : t
388
403
  (** removes local.tees, replacing them with sets and gets *)
389
404
 
@@ -77,9 +77,9 @@ caml_binaryen_type_i31ref(value unit) {
77
77
  }
78
78
 
79
79
  CAMLprim value
80
- caml_binaryen_type_dataref(value unit) {
80
+ caml_binaryen_type_structref(value unit) {
81
81
  CAMLparam1(unit);
82
- BinaryenType ty = BinaryenTypeDataref();
82
+ BinaryenType ty = BinaryenTypeStructref();
83
83
  CAMLreturn(alloc_BinaryenType(ty));
84
84
  }
85
85
 
@@ -58,10 +58,10 @@ function caml_binaryen_type_i31ref() {
58
58
  return Binaryen.i31ref;
59
59
  }
60
60
 
61
- //Provides: caml_binaryen_type_dataref
61
+ //Provides: caml_binaryen_type_structref
62
62
  //Requires: Binaryen
63
- function caml_binaryen_type_dataref() {
64
- return Binaryen.dataref;
63
+ function caml_binaryen_type_structref() {
64
+ return Binaryen.structref;
65
65
  }
66
66
 
67
67
  //Provides: caml_binaryen_type_arrayref
@@ -40,9 +40,9 @@ external i31ref : unit -> t = "caml_binaryen_type_i31ref"
40
40
 
41
41
  let i31ref = i31ref ()
42
42
 
43
- external dataref : unit -> t = "caml_binaryen_type_dataref"
43
+ external structref : unit -> t = "caml_binaryen_type_structref"
44
44
 
45
- let dataref = dataref ()
45
+ let structref = structref ()
46
46
 
47
47
  external arrayref : unit -> t = "caml_binaryen_type_arrayref"
48
48
 
@@ -10,7 +10,7 @@ val funcref : t
10
10
  val anyref : t
11
11
  val eqref : t
12
12
  val i31ref : t
13
- val dataref : t
13
+ val structref : t
14
14
  val arrayref : t
15
15
  val stringref : t
16
16
  val stringview_wtf8 : t