diff options
author | Alon Zakai <azakai@google.com> | 2020-06-23 09:20:50 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-23 09:20:50 -0700 |
commit | 92423bebfc267373b28f5cf8c28e5711767adb4c (patch) | |
tree | 8676095dabcaeda54da8dc9c01871e525f5ba5ce /scripts | |
parent | 63e580f737352d877fb90b4efca2eee89d780755 (diff) | |
download | binaryen-92423bebfc267373b28f5cf8c28e5711767adb4c.tar.gz binaryen-92423bebfc267373b28f5cf8c28e5711767adb4c.tar.bz2 binaryen-92423bebfc267373b28f5cf8c28e5711767adb4c.zip |
Asyncify liveness analysis (#2890)
This finds out which locals are live at call sites that might pause/resume,
which is the set of locals we need to actually save/load. That is, if a local
is not alive at any call site in the function, then it's value doesn't need to
stay alive while sleeping.
This saves about 10% of locals that are saved/loaded, and about 1.5%
in final code size.
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/fuzz_opt.py | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/scripts/fuzz_opt.py b/scripts/fuzz_opt.py index 76d97bd2e..9c8af1106 100755 --- a/scripts/fuzz_opt.py +++ b/scripts/fuzz_opt.py @@ -545,10 +545,6 @@ class Asyncify(TestCaseHandler): print('ignoring due to pre-asyncify difference') return - # TODO: also something that actually does async sleeps in the code, say - # on the logging commands? - # --remove-unused-module-elements removes the asyncify intrinsics, which are not valid to call - def do_asyncify(wasm): cmd = [in_bin('wasm-opt'), wasm, '--asyncify', '-o', 'async.t.wasm'] # if we allow NaNs, running binaryen optimizations and then |