Skip to content

Releases: WebAssembly/binaryen

1.37.34: determinism fix: hash results may differ between runs (#1431)

16 Feb 19:00
27000a9
Compare
Choose a tag to compare
Hash results may differ between runs, as they can depend on pointers. In remove-duplicate-functions, that shouldn't matter, except that we only considered the first item in each hash group vs the others (to avoid O(N^2)), which is fine except for hash collisions (collisions mean 2 groups are merged into one, and considering just the first item vs the rest we miss out on the other duplicates in that single group). And hash collisions do occur (rarely) in practice. Instead, consider all comparisons in each hash group, which should be fine unless we have large amounts of hash collisions.

version_44: determinism fix: hash results may differ between runs (#1431)

16 Feb 17:01
27000a9
Compare
Choose a tag to compare
Hash results may differ between runs, as they can depend on pointers. In remove-duplicate-functions, that shouldn't matter, except that we only considered the first item in each hash group vs the others (to avoid O(N^2)), which is fine except for hash collisions (collisions mean 2 groups are merged into one, and considering just the first item vs the rest we miss out on the other duplicates in that single group). And hash collisions do occur (rarely) in practice. Instead, consider all comparisons in each hash group, which should be fine unless we have large amounts of hash collisions.

1.37.33

02 Feb 02:24
Compare
Choose a tag to compare
Fix hard-wired buffer limit in the JS API (#1394)

1.37.32: Simplify ThreadPool::isRunning (#1391)

31 Jan 18:04
6bc9700
Compare
Choose a tag to compare
* simplify ThreadPool::isRunning: it doesn't need to be static and to go through the global unique_ptr

* it's undefined behavior to access the threadpool from a shutting down thread, as the parent is being destroyed

1.37.31: Simplify ThreadPool::isRunning (#1391)

31 Jan 17:10
6bc9700
Compare
Choose a tag to compare
* simplify ThreadPool::isRunning: it doesn't need to be static and to go through the global unique_ptr

* it's undefined behavior to access the threadpool from a shutting down thread, as the parent is being destroyed

1.37.30: Simplify ThreadPool::isRunning (#1391)

31 Jan 17:21
6bc9700
Compare
Choose a tag to compare
* simplify ThreadPool::isRunning: it doesn't need to be static and to go through the global unique_ptr

* it's undefined behavior to access the threadpool from a shutting down thread, as the parent is being destroyed

1.37.29

24 Jan 21:28
9baf87e
Compare
Choose a tag to compare
Show the binary bytes we can remove without each export, in --func-me…

version_42: Global optimization fixes (#1360)

17 Jan 23:06
0a9ddae
Compare
Choose a tag to compare
* run dfe at the very end, as it may be more effective after inlining

* optimize reorder-functions

* do a final dfe in asm2wasm after all other opts

* make inlining deterministic: std::atomic<T> values are not zero-initialized

* do global post opts at the end of asm2wasm, and don't also do them in the module builder

* fix function type removing

* don't inline+optimize when preserving debug info

1.37.28: Redundant Set Elimination pass (#1344)

08 Jan 23:58
2372862
Compare
Choose a tag to compare
This optimizes #1343. It looks for stores of a value that is already present in the local, which in particular can remove the initial set to 0 of loops starting at zero, since all locals are initialized to that already. This helps in real-world code, but is not super-common since coalescing means we tend to have assigned something else to it anyhow before we need it to be zero, so this mainly helps in small functions (and running this before coalescing would extend live ranges in potentially bad ways).

1.37.27

24 Dec 16:46
Compare
Choose a tag to compare
README: Add instructions for build with Visual C++ (#1337)