diff options
author | Alon Zakai <azakai@google.com> | 2021-10-14 13:05:37 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-14 13:05:37 -0700 |
commit | d592bad2b8fa777dab9682d2d2e47f9957c8051d (patch) | |
tree | ad8d90cb77c22baaf19dec222e4b963adf40e7c2 /test/lit/nominal-named-field.wast | |
parent | 5dfff5cc2c75a6d2b6fde7f20f46ba169020b116 (diff) | |
download | binaryen-d592bad2b8fa777dab9682d2d2e47f9957c8051d.tar.gz binaryen-d592bad2b8fa777dab9682d2d2e47f9957c8051d.tar.bz2 binaryen-d592bad2b8fa777dab9682d2d2e47f9957c8051d.zip |
[Wasm GC] Optimize subsequent struct.sets after a struct.new (#4244)
This optimizes this type of pattern:
(local.set $x (struct.new X Y Z))
(struct.set (local.get $x) X')
=>
(local.set $x (struct.new X' Y Z))
Note how the struct.set is removed, and X' moves to where X was.
This removes almost 90% (!) of the struct.sets in j2wasm output, which reduces
total code size by 2.5%. However, I see no speedup with this - I guess that either
this is not on the hot path, or V8 optimizes it well already, or the CPU is making
stores "free" anyhow...
Diffstat (limited to 'test/lit/nominal-named-field.wast')
0 files changed, 0 insertions, 0 deletions