Files
sdk/pkg/dart2wasm/test/ir_tests/deferred.fine_grained.devirtualized.wat
T
Martin Kustermann 5cd42e6b21 [dart2wasm] Start emitting binaryen.inline custom section
Binaryen introduced `binaryen.inline` which allows us to tell it
inlining hints now, including "never inline" hint (see [0])

This allows us to remove the ugly mangling of wasm function names with
`<noInline>` postfix.

We also now pass `--strip-toolchain-annotations`: The annotations
occupy size in the wasm binary and wasm runtimes ignore them (they are
for `wams-opt` only).

Except for IR tests: Here we want to see the annotations, so we keep
them there.

We also rename the package:wasm_builder classes to clearly indicate
those are binaryen specific sections.

We also make the ir_test.dart put it's options first, allowing the IR
tests to override options if needed.

[0] https://github.com/WebAssembly/binaryen/commit/3c25487214600a9

Change-Id: I96688bfaeba403a39cd5e7376f8d2889bcbae030
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510000
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
2026-06-10 15:51:47 -07:00

40 lines
2.6 KiB
WebAssembly Text Format

(module $module0
(type $#Top <...>)
(type $Array<Object?> <...>)
(type $JSExternWrapper <...>)
(type $Object <...>)
(func $"wasm:js-string.charCodeAt (import)" (import "wasm:js-string" "charCodeAt") (param externref i32) (result i32))
(@binaryen.removable.if.unused)
(func $"wasm:js-string.equals (import)" (import "wasm:js-string" "equals") (param externref externref) (result i32))
(@binaryen.removable.if.unused)
(func $"wasm:js-string.length (import)" (import "wasm:js-string" "length") (param externref) (result i32))
(table $cross-module-funcs-0 (export "cross-module-funcs-0") 18 funcref)
(elem $cross-module-funcs-0
(set 3 (ref.func $checkLibraryIsLoadedFromLoadId))
(set 4 (ref.func $_TypeError._throwNullCheckErrorWithCurrentStack))
(set 5 (ref.func $JSStringImpl._interpolate3))
(set 6 (ref.func $print))
(set 7 (ref.func $"wasm:js-string.length (import)"))
(set 8 (ref.func $"wasm:js-string.charCodeAt (import)"))
(set 9 (ref.func $IntegerDivisionByZeroException))
(set 10 (ref.func $Error._throwWithCurrentStackTrace))
(set 11 (ref.func $"wasm:js-string.equals (import)"))
(set 12 (ref.func $JSStringImpl.substring))
(set 13 (ref.func $JSStringImpl.+))
(set 14 (ref.func $_throwIndexError))
(set 15 (ref.func $JSStringImpl._interpolate))
(set 16 (ref.func $JSStringImpl.fromRefUnchecked))
(set 17 (ref.func $JSStringImpl._interpolate2)))
(func $Error._throwWithCurrentStackTrace (param $var0 (ref $#Top)) <...>)
(func $IntegerDivisionByZeroException (result (ref $Object)) <...>)
(func $JSStringImpl.+ (param $var0 (ref $JSExternWrapper)) (param $var1 (ref $JSExternWrapper)) (result (ref $JSExternWrapper)) <...>)
(func $JSStringImpl._interpolate (param $var0 (ref $Array<Object?>)) (result (ref $JSExternWrapper)) <...>)
(func $JSStringImpl._interpolate2 (param $var0 (ref null $#Top)) (param $var1 (ref null $#Top)) (result (ref $JSExternWrapper)) <...>)
(func $JSStringImpl._interpolate3 (param $var0 (ref null $#Top)) (param $var1 (ref null $#Top)) (param $var2 (ref null $#Top)) (result (ref $JSExternWrapper)) <...>)
(func $JSStringImpl.fromRefUnchecked (param $var0 externref) (result (ref $JSExternWrapper)) <...>)
(func $JSStringImpl.substring (param $var0 (ref $JSExternWrapper)) (param $var1 i64) (param $var2 i64) (result (ref $JSExternWrapper)) <...>)
(func $_TypeError._throwNullCheckErrorWithCurrentStack <...>)
(func $_throwIndexError (param $var0 i64) (param $var1 i64) (param $var2 (ref null $JSExternWrapper)) <...>)
(func $checkLibraryIsLoadedFromLoadId (param $var0 i64) (result i32) <...>)
(func $print (param $var0 (ref null $#Top)) <...>)
)