Skip to content

Releases: WebAssembly/binaryen

version_72

07 Mar 17:51
1a5b410
Compare
Choose a tag to compare
Fix getExitingBranches, which had |targets| instead of |curr->targets…

version_71

01 Mar 19:10
689fe40
Compare
Choose a tag to compare
Consistently optimize small added constants into load/store offsets (…

version_70: Optimize normally with debug info (#1927)

28 Feb 19:21
1a483a2
Compare
Choose a tag to compare
* optimize normally with debug info - some of it may be removed, but that's the price of higher optimization levels, and by optimizing normally in profiling and -g2 etc. builds they are more comparable to normal ones, yielding better data
* copy debug locations automatically in replaceCurrent in wasm-traversal, so optimization passes at least by default will preserve debuggability

version_69: Dead return value elimination in DeadArgumentElimination (#1917)

27 Feb 17:34
c6237e8
Compare
Choose a tag to compare
* Finds functions whose return value is always dropped, and removes the return.
* Run multiple iterations of the pass, as one can enable others.
* Do not run DeadArgumentElimination at all if debug info is present (with these improvements, it became much more likely to destroy debug info).

Saves 2.5% on hello world, because of some simple libc calls.

1.38.28: NaN fuzzing improvements (#1913)

22 Feb 14:30
3564b71
Compare
Choose a tag to compare
* make DE_NAN avoid creating nan literals in the first place
* add a reducer option `--denan` to not introduce nans in destructive reduction
* add a `Literal::isNaN()` method
* also remove the default exception logging from the fuzzer js glue, which is a source of non-useful VM differences (like nan nondeterminism)
* added an option `--no-fuzz-nans` to make it easy to avoid nans when fuzzing (without hacking the source and recompiling).

Background: trying to get fuzzing on jsc working despite this open issue: https://bugs.webkit.org/show_bug.cgi?id=175691

version_68

14 Feb 19:26
90d0ee4
Compare
Choose a tag to compare
respect --no-validation in pass-debug mode (#1904)

1.38.27

11 Feb 19:15
9628a03
Compare
Choose a tag to compare
legalize invokes even when doing minimal legalization, as js needs th…

1.38.26: Fix EM_ASM+pthreads (#1891)

05 Feb 02:25
484f62f
Compare
Choose a tag to compare
To calculate the metadata, we must look at the segments. If we split them out earlier (which we do for threads), they aren't there.

version_67: Strip the producers section in --strip-producers (#1875)

31 Jan 18:17
ddb5acd
Compare
Choose a tag to compare
WebAssembly/tool-conventions#93 has a summary of emscripten's current thinking on this. For Binaryen, we don't want to do anything to the producers section by default, but do want it to be possible to optionally remove it. To achieve that, this PR

 * creates a --strip-producers pass that removes that section.
 * creates a --strip-debug pass that removes debug info, same as the old --strip, which is still around but deprecated.

A followup in emscripten will use this pass by default.

version_66

29 Jan 21:38
5f1afa5
Compare
Choose a tag to compare
wasm-emscripten-finalize: Emit illegal dynCalls, and legalize them (#…