@@ -91,6 +91,7 @@ echo "building shared bitcode"
9191 src/passes/LogExecution.cpp \
9292 src/passes/MemoryPacking.cpp \
9393 src/passes/MergeBlocks.cpp \
94+ src/passes/MergeLocals.cpp \
9495 src/passes/Metrics.cpp \
9596 src/passes/NameList.cpp \
9697 src/passes/OptimizeInstructions.cpp \
@@ -142,12 +143,17 @@ echo "building wasm.js"
142143echo " building binaryen.js"
143144
144145function export_function { if [ -z ${EXPORTED_FUNCTIONS} ]; then EXPORTED_FUNCTIONS=' "' $1 ' "' ; else EXPORTED_FUNCTIONS=${EXPORTED_FUNCTIONS} ' ,"' $1 ' "' ; fi }
145- export_function " _BinaryenNone"
146- export_function " _BinaryenInt32"
147- export_function " _BinaryenInt64"
148- export_function " _BinaryenFloat32"
149- export_function " _BinaryenFloat64"
150- export_function " _BinaryenUndefined"
146+
147+ # Types
148+ export_function " _BinaryenTypeNone"
149+ export_function " _BinaryenTypeInt32"
150+ export_function " _BinaryenTypeInt64"
151+ export_function " _BinaryenTypeFloat32"
152+ export_function " _BinaryenTypeFloat64"
153+ export_function " _BinaryenTypeUnreachable"
154+ export_function " _BinaryenTypeAuto"
155+
156+ # Expression ids
151157export_function " _BinaryenInvalidId"
152158export_function " _BinaryenBlockId"
153159export_function " _BinaryenIfId"
@@ -176,20 +182,22 @@ export_function "_BinaryenAtomicCmpxchgId"
176182export_function " _BinaryenAtomicRMWId"
177183export_function " _BinaryenAtomicWaitId"
178184export_function " _BinaryenAtomicWakeId"
185+
186+ # External kinds
179187export_function " _BinaryenExternalFunction"
180188export_function " _BinaryenExternalTable"
181189export_function " _BinaryenExternalMemory"
182190export_function " _BinaryenExternalGlobal"
183- export_function " _BinaryenModuleCreate"
184- export_function " _BinaryenModuleDispose"
185- export_function " _BinaryenAddFunctionType"
186- export_function " _BinaryenGetFunctionTypeBySignature"
191+
192+ # Literals
187193export_function " _BinaryenLiteralInt32"
188194export_function " _BinaryenLiteralInt64"
189195export_function " _BinaryenLiteralFloat32"
190196export_function " _BinaryenLiteralFloat64"
191197export_function " _BinaryenLiteralFloat32Bits"
192198export_function " _BinaryenLiteralFloat64Bits"
199+
200+ # Operations
193201export_function " _BinaryenClzInt32"
194202export_function " _BinaryenCtzInt32"
195203export_function " _BinaryenPopcntInt32"
@@ -323,6 +331,8 @@ export_function "_BinaryenAtomicRMWAnd"
323331export_function " _BinaryenAtomicRMWOr"
324332export_function " _BinaryenAtomicRMWXor"
325333export_function " _BinaryenAtomicRMWXchg"
334+
335+ # Expression creation
326336export_function " _BinaryenBlock"
327337export_function " _BinaryenIf"
328338export_function " _BinaryenLoop"
@@ -353,14 +363,146 @@ export_function "_BinaryenAtomicRMW"
353363export_function " _BinaryenAtomicCmpxchg"
354364export_function " _BinaryenAtomicWait"
355365export_function " _BinaryenAtomicWake"
366+
367+ # 'Expression' operations
356368export_function " _BinaryenExpressionGetId"
357369export_function " _BinaryenExpressionGetType"
358370export_function " _BinaryenExpressionPrint"
371+
372+ # 'Block' expression operations
373+ export_function " _BinaryenBlockGetName"
374+ export_function " _BinaryenBlockGetNumChildren"
375+ export_function " _BinaryenBlockGetChild"
376+
377+ # 'If' expression operations
378+ export_function " _BinaryenIfGetCondition"
379+ export_function " _BinaryenIfGetIfTrue"
380+ export_function " _BinaryenIfGetIfFalse"
381+
382+ # 'Loop' expression operations
383+ export_function " _BinaryenLoopGetName"
384+ export_function " _BinaryenLoopGetBody"
385+
386+ # 'Break' expression operations
387+ export_function " _BinaryenBreakGetName"
388+ export_function " _BinaryenBreakGetCondition"
389+ export_function " _BinaryenBreakGetValue"
390+
391+ # 'Switch' expression operations
392+ export_function " _BinaryenSwitchGetNumNames"
393+ export_function " _BinaryenSwitchGetName"
394+ export_function " _BinaryenSwitchGetDefaultName"
395+ export_function " _BinaryenSwitchGetCondition"
396+ export_function " _BinaryenSwitchGetValue"
397+
398+ # 'Call' expression operations
399+ export_function " _BinaryenCallGetTarget"
400+ export_function " _BinaryenCallGetNumOperands"
401+ export_function " _BinaryenCallGetOperand"
402+
403+ # 'CallImport' expression operations
404+ export_function " _BinaryenCallImportGetTarget"
405+ export_function " _BinaryenCallImportGetNumOperands"
406+ export_function " _BinaryenCallImportGetOperand"
407+
408+ # 'CallIndirect' expression operations
409+ export_function " _BinaryenCallIndirectGetTarget"
410+ export_function " _BinaryenCallIndirectGetNumOperands"
411+ export_function " _BinaryenCallIndirectGetOperand"
412+
413+ # 'GetLocal' expression operations
414+ export_function " _BinaryenGetLocalGetIndex"
415+
416+ # 'SetLocal' expression operations
417+ export_function " _BinaryenSetLocalIsTee"
418+ export_function " _BinaryenSetLocalGetIndex"
419+ export_function " _BinaryenSetLocalGetValue"
420+
421+ # 'GetGlobal' expression operations
422+ export_function " _BinaryenGetGlobalGetName"
423+
424+ # 'SetGlobal' expression operations
425+ export_function " _BinaryenSetGlobalGetName"
426+ export_function " _BinaryenSetGlobalGetValue"
427+
428+ # 'Host' expression operations
429+ export_function " _BinaryenHostGetOp"
430+ export_function " _BinaryenHostGetNameOperand"
431+ export_function " _BinaryenHostGetNumOperands"
432+ export_function " _BinaryenHostGetOperand"
433+
434+ # 'Load' expression operations
435+ export_function " _BinaryenLoadIsAtomic"
436+ export_function " _BinaryenLoadIsSigned"
437+ export_function " _BinaryenLoadGetBytes"
438+ export_function " _BinaryenLoadGetOffset"
439+ export_function " _BinaryenLoadGetAlign"
440+ export_function " _BinaryenLoadGetPtr"
441+
442+ # 'Store' expression operations
443+ export_function " _BinaryenStoreIsAtomic"
444+ export_function " _BinaryenStoreGetBytes"
445+ export_function " _BinaryenStoreGetOffset"
446+ export_function " _BinaryenStoreGetAlign"
447+ export_function " _BinaryenStoreGetPtr"
448+ export_function " _BinaryenStoreGetValue"
449+
450+ # 'Const' expression operations
359451export_function " _BinaryenConstGetValueI32"
360452export_function " _BinaryenConstGetValueI64Low"
361453export_function " _BinaryenConstGetValueI64High"
362454export_function " _BinaryenConstGetValueF32"
363455export_function " _BinaryenConstGetValueF64"
456+
457+ # 'Unary' expression operations
458+ export_function " _BinaryenUnaryGetOp"
459+ export_function " _BinaryenUnaryGetValue"
460+
461+ # 'Binary' expression operations
462+ export_function " _BinaryenBinaryGetOp"
463+ export_function " _BinaryenBinaryGetLeft"
464+ export_function " _BinaryenBinaryGetRight"
465+
466+ # 'Select' expression operations
467+ export_function " _BinaryenSelectGetIfTrue"
468+ export_function " _BinaryenSelectGetIfFalse"
469+ export_function " _BinaryenSelectGetCondition"
470+
471+ # 'Drop' expression operations
472+ export_function " _BinaryenDropGetValue"
473+
474+ # 'Return' expression operations
475+ export_function " _BinaryenReturnGetValue"
476+
477+ # 'AtomicRMW' expression operations
478+ export_function " _BinaryenAtomicRMWGetOp"
479+ export_function " _BinaryenAtomicRMWGetBytes"
480+ export_function " _BinaryenAtomicRMWGetOffset"
481+ export_function " _BinaryenAtomicRMWGetPtr"
482+ export_function " _BinaryenAtomicRMWGetValue"
483+
484+ # 'AtomicCmpxchg' expression operations
485+ export_function " _BinaryenAtomicCmpxchgGetBytes"
486+ export_function " _BinaryenAtomicCmpxchgGetOffset"
487+ export_function " _BinaryenAtomicCmpxchgGetPtr"
488+ export_function " _BinaryenAtomicCmpxchgGetExpected"
489+ export_function " _BinaryenAtomicCmpxchgGetReplacement"
490+
491+ # 'AtomicWait' expression operations
492+ export_function " _BinaryenAtomicWaitGetPtr"
493+ export_function " _BinaryenAtomicWaitGetExpected"
494+ export_function " _BinaryenAtomicWaitGetTimeout"
495+ export_function " _BinaryenAtomicWaitGetExpectedType"
496+
497+ # 'AtomicWake' expression operations
498+ export_function " _BinaryenAtomicWakeGetPtr"
499+ export_function " _BinaryenAtomicWakeGetWakeCount"
500+
501+ # 'Module' operations
502+ export_function " _BinaryenModuleCreate"
503+ export_function " _BinaryenModuleDispose"
504+ export_function " _BinaryenAddFunctionType"
505+ export_function " _BinaryenGetFunctionTypeBySignature"
364506export_function " _BinaryenAddFunction"
365507export_function " _BinaryenGetFunction"
366508export_function " _BinaryenRemoveFunction"
@@ -388,15 +530,47 @@ export_function "_BinaryenModuleAutoDrop"
388530export_function " _BinaryenModuleWrite"
389531export_function " _BinaryenModuleRead"
390532export_function " _BinaryenModuleInterpret"
533+
534+ # 'FunctionType' operations
535+ export_function " _BinaryenFunctionTypeGetName"
536+ export_function " _BinaryenFunctionTypeGetNumParams"
537+ export_function " _BinaryenFunctionTypeGetParam"
538+ export_function " _BinaryenFunctionTypeGetResult"
539+
540+ # 'Function' operations
541+ export_function " _BinaryenFunctionGetName"
542+ export_function " _BinaryenFunctionGetType"
543+ export_function " _BinaryenFunctionGetNumParams"
544+ export_function " _BinaryenFunctionGetParam"
545+ export_function " _BinaryenFunctionGetResult"
546+ export_function " _BinaryenFunctionGetNumVars"
547+ export_function " _BinaryenFunctionGetVar"
391548export_function " _BinaryenFunctionGetBody"
392549export_function " _BinaryenFunctionOptimize"
393550export_function " _BinaryenFunctionRunPasses"
551+
552+ # 'Import' operations
553+ export_function " _BinaryenImportGetKind"
554+ export_function " _BinaryenImportGetModule"
555+ export_function " _BinaryenImportGetBase"
556+ export_function " _BinaryenImportGetName"
557+ export_function " _BinaryenImportGetGlobalType"
558+ export_function " _BinaryenImportGetFunctionType"
559+
560+ # 'Export' operations
561+ export_function " _BinaryenExportGetKind"
562+ export_function " _BinaryenExportGetName"
563+ export_function " _BinaryenExportGetValue"
564+
565+ # 'Relooper' operations
394566export_function " _RelooperCreate"
395567export_function " _RelooperAddBlock"
396568export_function " _RelooperAddBranch"
397569export_function " _RelooperAddBlockWithSwitch"
398570export_function " _RelooperAddBranchForSwitch"
399571export_function " _RelooperRenderAndDispose"
572+
573+ # Tracing
400574export_function " _BinaryenSetAPITracing"
401575
402576" $EMSCRIPTEN /em++" \
0 commit comments