diff options
author | Alon Zakai <azakai@google.com> | 2022-11-04 12:36:35 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-04 12:36:35 -0700 |
commit | 20115c8e2a038646858a0408beca7be319c31035 (patch) | |
tree | 68155ae9333c1cfebb207dc2cbd955eaea7c45a2 /src/wasm/wasm-binary.cpp | |
parent | 6a9a4e7e722e5f578376f3f14a67960539ac4478 (diff) | |
download | binaryen-20115c8e2a038646858a0408beca7be319c31035.tar.gz binaryen-20115c8e2a038646858a0408beca7be319c31035.tar.bz2 binaryen-20115c8e2a038646858a0408beca7be319c31035.zip |
[Wasm GC] RSE: Switch local.get to use a more refined type when possible (#5216)
Similar to #5194 but for RedundantSetElimination. This has similar benefits in terms
of using a more refined local in hopes of avoiding casts in followup opts, but unlike
SimplifyLocals this will operate across basic blocks.
To do this, we need to track not just local.set but also local.get in that pass. Then
in each basic block we can track the equivalent locals and pick from them.
I see a few dozen casts removed in the J2Wasm binary. Often stuff like this happens:
y = cast(x);
if (..) {
foo(x); // this could use y
}
Diffstat (limited to 'src/wasm/wasm-binary.cpp')
0 files changed, 0 insertions, 0 deletions