Skip to content

Commit f4b7df0

Browse files
dcodeIOkripken
authored andcommitted
Add getters for various specific expression fields to C/JS (#1332)
1 parent a0de358 commit f4b7df0

17 files changed

+3589
-827
lines changed

bin/binaryen.js

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

bin/wasm.js

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

build-js.sh

Lines changed: 184 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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"
142143
echo "building binaryen.js"
143144

144145
function 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
151157
export_function "_BinaryenInvalidId"
152158
export_function "_BinaryenBlockId"
153159
export_function "_BinaryenIfId"
@@ -176,20 +182,22 @@ export_function "_BinaryenAtomicCmpxchgId"
176182
export_function "_BinaryenAtomicRMWId"
177183
export_function "_BinaryenAtomicWaitId"
178184
export_function "_BinaryenAtomicWakeId"
185+
186+
# External kinds
179187
export_function "_BinaryenExternalFunction"
180188
export_function "_BinaryenExternalTable"
181189
export_function "_BinaryenExternalMemory"
182190
export_function "_BinaryenExternalGlobal"
183-
export_function "_BinaryenModuleCreate"
184-
export_function "_BinaryenModuleDispose"
185-
export_function "_BinaryenAddFunctionType"
186-
export_function "_BinaryenGetFunctionTypeBySignature"
191+
192+
# Literals
187193
export_function "_BinaryenLiteralInt32"
188194
export_function "_BinaryenLiteralInt64"
189195
export_function "_BinaryenLiteralFloat32"
190196
export_function "_BinaryenLiteralFloat64"
191197
export_function "_BinaryenLiteralFloat32Bits"
192198
export_function "_BinaryenLiteralFloat64Bits"
199+
200+
# Operations
193201
export_function "_BinaryenClzInt32"
194202
export_function "_BinaryenCtzInt32"
195203
export_function "_BinaryenPopcntInt32"
@@ -323,6 +331,8 @@ export_function "_BinaryenAtomicRMWAnd"
323331
export_function "_BinaryenAtomicRMWOr"
324332
export_function "_BinaryenAtomicRMWXor"
325333
export_function "_BinaryenAtomicRMWXchg"
334+
335+
# Expression creation
326336
export_function "_BinaryenBlock"
327337
export_function "_BinaryenIf"
328338
export_function "_BinaryenLoop"
@@ -353,14 +363,146 @@ export_function "_BinaryenAtomicRMW"
353363
export_function "_BinaryenAtomicCmpxchg"
354364
export_function "_BinaryenAtomicWait"
355365
export_function "_BinaryenAtomicWake"
366+
367+
# 'Expression' operations
356368
export_function "_BinaryenExpressionGetId"
357369
export_function "_BinaryenExpressionGetType"
358370
export_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
359451
export_function "_BinaryenConstGetValueI32"
360452
export_function "_BinaryenConstGetValueI64Low"
361453
export_function "_BinaryenConstGetValueI64High"
362454
export_function "_BinaryenConstGetValueF32"
363455
export_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"
364506
export_function "_BinaryenAddFunction"
365507
export_function "_BinaryenGetFunction"
366508
export_function "_BinaryenRemoveFunction"
@@ -388,15 +530,47 @@ export_function "_BinaryenModuleAutoDrop"
388530
export_function "_BinaryenModuleWrite"
389531
export_function "_BinaryenModuleRead"
390532
export_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"
391548
export_function "_BinaryenFunctionGetBody"
392549
export_function "_BinaryenFunctionOptimize"
393550
export_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
394566
export_function "_RelooperCreate"
395567
export_function "_RelooperAddBlock"
396568
export_function "_RelooperAddBranch"
397569
export_function "_RelooperAddBlockWithSwitch"
398570
export_function "_RelooperAddBranchForSwitch"
399571
export_function "_RelooperRenderAndDispose"
572+
573+
# Tracing
400574
export_function "_BinaryenSetAPITracing"
401575

402576
"$EMSCRIPTEN/em++" \

0 commit comments

Comments
 (0)