diff options
author | Alon Zakai <azakai@google.com> | 2019-02-26 17:47:28 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2019-03-06 16:34:34 -0800 |
commit | 56fc114121716c672d4a16f92e8323eada557177 (patch) | |
tree | b895d369688c3357a892bd93bfecac78d9b25db8 /test/wasm2js/i64-add-sub.2asm.js | |
parent | 8b5b85463cd5f5fcfec4d0bc6acb52f2acb30d79 (diff) | |
download | binaryen-56fc114121716c672d4a16f92e8323eada557177.tar.gz binaryen-56fc114121716c672d4a16f92e8323eada557177.tar.bz2 binaryen-56fc114121716c672d4a16f92e8323eada557177.zip |
Propagate a load/store offset even if locals are not in ssa form
The initial OptimizeAddedConstants pass did not try to handle the case of non-ssa locals. However, that can happen, and optimizing those cases too improves us by almost 1% of code size on some large benchmarks like bullet.
How this works is that if we see
b = a + 10
a = c
load(b)
then we copy the base value at the add,
a' = a
b = a' + 10
a = c
load(a', offset=10)
This no longer has a guarantee of improving code size, since in theory both b and a may have other uses. However, in practice it's very common for b to be optimized out later.
Diffstat (limited to 'test/wasm2js/i64-add-sub.2asm.js')
0 files changed, 0 insertions, 0 deletions