Skip to content

Commit 2615317

Browse files
committed
chore: update Binaryen
Some new features are being added, although only relaxed SIMD is in a usable state. stringref has been almost obliterated, and only functionality compatible with JS string builtins is being kept. Binaryen also seems to be generating more nops and blocks than usual. Also, due to WebAssembly/binaryen#7135, dead arguments aren't being eliminated when a function reference is made (ref.func), which affects the optimized output of call-optional, function-call, and other tests.
1 parent 44b658d commit 2615317

File tree

179 files changed

+91824
-87960
lines changed

Some content is hidden

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

179 files changed

+91824
-87960
lines changed

package-lock.json

Lines changed: 15 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
},
2626
"engineStrict": true,
2727
"dependencies": {
28-
"binaryen": "116.0.0-nightly.20240114",
28+
"binaryen": "123.0.0-nightly.20250530",
2929
"long": "^5.2.4"
3030
},
3131
"devDependencies": {

src/builtins.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1654,8 +1654,7 @@ function builtin_max(ctx: BuiltinFunctionContext): ExpressionRef {
16541654
module.binary(op,
16551655
module.local_get(temp1.index, typeRef),
16561656
module.local_get(temp2.index, typeRef)
1657-
),
1658-
typeRef
1657+
)
16591658
);
16601659
return ret;
16611660
}
@@ -1723,8 +1722,7 @@ function builtin_min(ctx: BuiltinFunctionContext): ExpressionRef {
17231722
module.binary(op,
17241723
module.local_get(temp1.index, typeRef),
17251724
module.local_get(temp2.index, typeRef)
1726-
),
1727-
typeRef
1725+
)
17281726
);
17291727
return ret;
17301728
}
@@ -3133,7 +3131,7 @@ function builtin_select(ctx: BuiltinFunctionContext): ExpressionRef {
31333131
operands[2]
31343132
);
31353133
compiler.currentType = type;
3136-
return module.select(arg0, arg1, arg2, type.toRef());
3134+
return module.select(arg0, arg1, arg2);
31373135
}
31383136
builtinFunctions.set(BuiltinNames.select, builtin_select);
31393137

src/compiler.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4975,8 +4975,7 @@ export class Compiler extends DiagnosticEmitter {
49754975
return module.select(
49764976
module.i32(1),
49774977
module.binary(BinaryOp.EqI32, rightExpr, module.i32(0)),
4978-
leftExpr,
4979-
TypeRef.I32
4978+
leftExpr
49804979
);
49814980
}
49824981
case TypeKind.I8:

src/glue/binaryen.d.ts

Lines changed: 84 additions & 65 deletions
Large diffs are not rendered by default.

src/glue/binaryen.js

Lines changed: 75 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ export const {
2121
_BinaryenTypeStructref,
2222
_BinaryenTypeArrayref,
2323
_BinaryenTypeStringref,
24-
_BinaryenTypeStringviewWTF8,
25-
_BinaryenTypeStringviewWTF16,
26-
_BinaryenTypeStringviewIter,
2724
_BinaryenTypeNullref,
2825
_BinaryenTypeNullExternref,
2926
_BinaryenTypeNullFuncref,
@@ -37,9 +34,6 @@ export const {
3734
_BinaryenHeapTypeArray,
3835
// _BinaryenHeapTypeExn,
3936
_BinaryenHeapTypeString,
40-
_BinaryenHeapTypeStringviewWTF8,
41-
_BinaryenHeapTypeStringviewWTF16,
42-
_BinaryenHeapTypeStringviewIter,
4337
_BinaryenHeapTypeNone,
4438
_BinaryenHeapTypeNoext,
4539
_BinaryenHeapTypeNofunc,
@@ -585,6 +579,22 @@ export const {
585579
_BinaryenArrayNewFixedInsertValueAt,
586580
_BinaryenArrayNewFixedRemoveValueAt,
587581

582+
_BinaryenArrayNewData,
583+
_BinaryenArrayNewDataGetSegment,
584+
_BinaryenArrayNewDataSetSegment,
585+
_BinaryenArrayNewDataGetOffset,
586+
_BinaryenArrayNewDataSetOffset,
587+
_BinaryenArrayNewDataGetSize,
588+
_BinaryenArrayNewDataSetSize,
589+
590+
_BinaryenArrayNewElem,
591+
_BinaryenArrayNewElemGetSegment,
592+
_BinaryenArrayNewElemSetSegment,
593+
_BinaryenArrayNewElemGetOffset,
594+
_BinaryenArrayNewElemSetOffset,
595+
_BinaryenArrayNewElemGetSize,
596+
_BinaryenArrayNewElemSetSize,
597+
588598
_BinaryenArrayGet,
589599
_BinaryenArrayGetGetRef,
590600
_BinaryenArrayGetSetRef,
@@ -605,6 +615,16 @@ export const {
605615
_BinaryenArrayLenGetRef,
606616
_BinaryenArrayLenSetRef,
607617

618+
_BinaryenArrayFill,
619+
_BinaryenArrayFillGetRef,
620+
_BinaryenArrayFillSetRef,
621+
_BinaryenArrayFillGetIndex,
622+
_BinaryenArrayFillSetIndex,
623+
_BinaryenArrayFillGetValue,
624+
_BinaryenArrayFillSetValue,
625+
_BinaryenArrayFillGetSize,
626+
_BinaryenArrayFillSetSize,
627+
608628
_BinaryenArrayCopy,
609629
_BinaryenArrayCopyGetDestRef,
610630
_BinaryenArrayCopySetDestRef,
@@ -617,19 +637,39 @@ export const {
617637
_BinaryenArrayCopyGetLength,
618638
_BinaryenArrayCopySetLength,
619639

640+
_BinaryenArrayInitData,
641+
_BinaryenArrayInitDataGetSegment,
642+
_BinaryenArrayInitDataSetSegment,
643+
_BinaryenArrayInitDataGetRef,
644+
_BinaryenArrayInitDataSetRef,
645+
_BinaryenArrayInitDataGetIndex,
646+
_BinaryenArrayInitDataSetIndex,
647+
_BinaryenArrayInitDataGetOffset,
648+
_BinaryenArrayInitDataSetOffset,
649+
_BinaryenArrayInitDataGetSize,
650+
_BinaryenArrayInitDataSetSize,
651+
652+
_BinaryenArrayInitElem,
653+
_BinaryenArrayInitElemGetSegment,
654+
_BinaryenArrayInitElemSetSegment,
655+
_BinaryenArrayInitElemGetRef,
656+
_BinaryenArrayInitElemSetRef,
657+
_BinaryenArrayInitElemGetIndex,
658+
_BinaryenArrayInitElemSetIndex,
659+
_BinaryenArrayInitElemGetOffset,
660+
_BinaryenArrayInitElemSetOffset,
661+
_BinaryenArrayInitElemGetSize,
662+
_BinaryenArrayInitElemSetSize,
663+
620664
_BinaryenStringNew,
621665
_BinaryenStringNewGetOp,
622666
_BinaryenStringNewSetOp,
623-
_BinaryenStringNewGetPtr,
624-
_BinaryenStringNewSetPtr,
625-
_BinaryenStringNewGetLength,
626-
_BinaryenStringNewSetLength,
667+
_BinaryenStringNewGetRef,
668+
_BinaryenStringNewSetRef,
627669
_BinaryenStringNewGetStart,
628670
_BinaryenStringNewSetStart,
629671
_BinaryenStringNewGetEnd,
630672
_BinaryenStringNewSetEnd,
631-
_BinaryenStringNewIsTry,
632-
_BinaryenStringNewSetTry,
633673

634674
_BinaryenStringConst,
635675
_BinaryenStringConstGetString,
@@ -644,10 +684,10 @@ export const {
644684
_BinaryenStringEncode,
645685
_BinaryenStringEncodeGetOp,
646686
_BinaryenStringEncodeSetOp,
647-
_BinaryenStringEncodeGetRef,
648-
_BinaryenStringEncodeSetRef,
649-
_BinaryenStringEncodeGetPtr,
650-
_BinaryenStringEncodeSetPtr,
687+
_BinaryenStringEncodeGetStr,
688+
_BinaryenStringEncodeSetStr,
689+
_BinaryenStringEncodeGetArray,
690+
_BinaryenStringEncodeSetArray,
651691
_BinaryenStringEncodeGetStart,
652692
_BinaryenStringEncodeSetStart,
653693

@@ -665,54 +705,20 @@ export const {
665705
_BinaryenStringEqGetRight,
666706
_BinaryenStringEqSetRight,
667707

668-
_BinaryenStringAs,
669-
_BinaryenStringAsGetOp,
670-
_BinaryenStringAsSetOp,
671-
_BinaryenStringAsGetRef,
672-
_BinaryenStringAsSetRef,
673-
674-
_BinaryenStringWTF8Advance,
675-
_BinaryenStringWTF8AdvanceGetRef,
676-
_BinaryenStringWTF8AdvanceSetRef,
677-
_BinaryenStringWTF8AdvanceGetPos,
678-
_BinaryenStringWTF8AdvanceSetPos,
679-
_BinaryenStringWTF8AdvanceGetBytes,
680-
_BinaryenStringWTF8AdvanceSetBytes,
681-
682708
_BinaryenStringWTF16Get,
683709
_BinaryenStringWTF16GetGetRef,
684710
_BinaryenStringWTF16GetSetRef,
685711
_BinaryenStringWTF16GetGetPos,
686712
_BinaryenStringWTF16GetSetPos,
687713

688-
_BinaryenStringIterNext,
689-
_BinaryenStringIterNextGetRef,
690-
_BinaryenStringIterNextSetRef,
691-
692-
_BinaryenStringIterMove,
693-
_BinaryenStringIterMoveGetOp,
694-
_BinaryenStringIterMoveSetOp,
695-
_BinaryenStringIterMoveGetRef,
696-
_BinaryenStringIterMoveSetRef,
697-
_BinaryenStringIterMoveGetNum,
698-
_BinaryenStringIterMoveSetNum,
699-
700714
_BinaryenStringSliceWTF,
701-
_BinaryenStringSliceWTFGetOp,
702-
_BinaryenStringSliceWTFSetOp,
703715
_BinaryenStringSliceWTFGetRef,
704716
_BinaryenStringSliceWTFSetRef,
705717
_BinaryenStringSliceWTFGetStart,
706718
_BinaryenStringSliceWTFSetStart,
707719
_BinaryenStringSliceWTFGetEnd,
708720
_BinaryenStringSliceWTFSetEnd,
709721

710-
_BinaryenStringSliceIter,
711-
_BinaryenStringSliceIterGetRef,
712-
_BinaryenStringSliceIterSetRef,
713-
_BinaryenStringSliceIterGetNum,
714-
_BinaryenStringSliceIterSetNum,
715-
716722
_BinaryenAddFunction,
717723
_BinaryenGetFunction,
718724
_BinaryenRemoveFunction,
@@ -724,12 +730,15 @@ export const {
724730
_BinaryenFunctionGetResults,
725731
_BinaryenFunctionGetNumVars,
726732
_BinaryenFunctionGetVar,
733+
_BinaryenFunctionAddVar,
727734
_BinaryenFunctionGetNumLocals,
728735
_BinaryenFunctionHasLocalName,
729736
_BinaryenFunctionGetLocalName,
730737
_BinaryenFunctionSetLocalName,
731738
_BinaryenFunctionGetBody,
732739
_BinaryenFunctionSetBody,
740+
_BinaryenFunctionGetType,
741+
_BinaryenFunctionSetType,
733742
_BinaryenFunctionOptimize,
734743
_BinaryenFunctionRunPasses,
735744
_BinaryenFunctionSetDebugLocation,
@@ -785,6 +794,8 @@ export const {
785794
_BinaryenTableHasMax,
786795
_BinaryenTableGetMax,
787796
_BinaryenTableSetMax,
797+
_BinaryenTableGetType,
798+
_BinaryenTableSetType,
788799

789800
_BinaryenAddActiveElementSegment,
790801
_BinaryenAddPassiveElementSegment,
@@ -798,21 +809,23 @@ export const {
798809
_BinaryenGetMemorySegmentByteOffset,
799810
_BinaryenGetMemorySegmentByteLength,
800811
_BinaryenCopyMemorySegmentData,
812+
_BinaryenAddDataSegment,
801813

802814
_BinaryenSetStart,
815+
_BinaryenGetStart,
803816

804817
_BinaryenModuleParse,
805818
_BinaryenModulePrint,
806819
_BinaryenModulePrintAsmjs,
807820
_BinaryenModuleValidate,
808821
_BinaryenModuleOptimize,
809822
_BinaryenModuleRunPasses,
810-
_BinaryenModuleAutoDrop,
811823
_BinaryenSizeofAllocateAndWriteResult,
812824
_BinaryenModuleAllocateAndWrite,
813825
_BinaryenModuleAllocateAndWriteText,
814826
_BinaryenModuleAllocateAndWriteStackIR,
815827
_BinaryenModuleRead,
828+
_BinaryenModuleReadWithFeatures,
816829
_BinaryenModuleInterpret,
817830
_BinaryenModuleAddDebugInfoFileName,
818831
_BinaryenModuleGetDebugInfoFileName,
@@ -857,15 +870,26 @@ export const {
857870
_BinaryenSetShrinkLevel,
858871
_BinaryenGetDebugInfo,
859872
_BinaryenSetDebugInfo,
873+
_BinaryenGetTrapsNeverHappen,
874+
_BinaryenSetTrapsNeverHappen,
875+
_BinaryenGetClosedWorld,
876+
_BinaryenSetClosedWorld,
860877
_BinaryenGetLowMemoryUnused,
861878
_BinaryenSetLowMemoryUnused,
862879
_BinaryenGetZeroFilledMemory,
863880
_BinaryenSetZeroFilledMemory,
864881
_BinaryenGetFastMath,
865882
_BinaryenSetFastMath,
883+
_BinaryenGetGenerateStackIR,
884+
_BinaryenSetGenerateStackIR,
885+
_BinaryenGetOptimizeStackIR,
886+
_BinaryenSetOptimizeStackIR,
866887
_BinaryenGetPassArgument,
867888
_BinaryenSetPassArgument,
868889
_BinaryenClearPassArguments,
890+
_BinaryenHasPassToSkip,
891+
_BinaryenAddPassToSkip,
892+
_BinaryenClearPassesToSkip,
869893
_BinaryenGetAlwaysInlineMaxSize,
870894
_BinaryenSetAlwaysInlineMaxSize,
871895
_BinaryenGetFlexibleInlineMaxSize,

0 commit comments

Comments
 (0)