5cd42e6b21
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>
47 lines
980 B
WebAssembly Text Format
47 lines
980 B
WebAssembly Text Format
(module $module0
|
|
(type $#Top (struct
|
|
(field $field0 i32)))
|
|
(type $BoxedDouble (sub final $#Top (struct
|
|
(field $field0 i32)
|
|
(field $value f64))))
|
|
(memory $foo.mem (import "foo" "mem") 1)
|
|
(@binaryen.inline 0)
|
|
(func $main
|
|
i32.const 1
|
|
memory.grow $foo.mem
|
|
drop
|
|
i32.const 89
|
|
i32.const 0
|
|
f32.load align=4
|
|
f64.promote_f32
|
|
struct.new $BoxedDouble
|
|
call $print
|
|
i32.const 89
|
|
i32.const 0
|
|
f32.load align=4
|
|
f64.promote_f32
|
|
struct.new $BoxedDouble
|
|
call $print
|
|
i32.const 89
|
|
i32.const 0
|
|
f64.load align=8
|
|
struct.new $BoxedDouble
|
|
call $print
|
|
i32.const 89
|
|
i32.const 1
|
|
f32.load align=4
|
|
f64.promote_f32
|
|
struct.new $BoxedDouble
|
|
call $print
|
|
i32.const 89
|
|
i32.const 1
|
|
f32.load align=4
|
|
f64.promote_f32
|
|
struct.new $BoxedDouble
|
|
call $print
|
|
memory.size $foo.mem
|
|
i32.const 32
|
|
i32.store offset=10
|
|
)
|
|
(func $print (param $var0 (ref $#Top)) <...>)
|
|
) |