diff options
author | Alon Zakai <azakai@google.com> | 2022-11-01 10:08:04 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-01 17:08:04 +0000 |
commit | 288a12645d060d8f2ec97b13b5795cd53a8a7811 (patch) | |
tree | 7f4ea84aaee76796978938525e52a56325edad6b /src/passes/pass.cpp | |
parent | 5e0ab66800de5d376429fcd281bd4cd1e41d8ed5 (diff) | |
download | binaryen-288a12645d060d8f2ec97b13b5795cd53a8a7811.tar.gz binaryen-288a12645d060d8f2ec97b13b5795cd53a8a7811.tar.bz2 binaryen-288a12645d060d8f2ec97b13b5795cd53a8a7811.zip |
CodePushing: Push into If arms (#5191)
Previously the pass only pushed past an if or a br_if. This does the same but into an
if arm. On Wasm GC for example this can perform allocation sinking:
function foo() {
x = new A();
if (..) {
use(x);
}
}
=>
function foo() {
if (..) {
x = new A(); // this moved
use(x);
}
}
The allocation won't happen if we never enter the if. This helps wasm MVP too,
and in fact some existing tests benefit.
Diffstat (limited to 'src/passes/pass.cpp')
0 files changed, 0 insertions, 0 deletions