Tags: gxchain/binaryen
Tags
determinism fix: hash results may differ between runs (WebAssembly#1431) 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.
determinism fix: hash results may differ between runs (WebAssembly#1431) 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.
adjust test scripts to cope with out-of-tree builds (WebAssembly#1420) Many places assume that test/blah is valid, but that's only valid if you're executing scripts from the binaryen source directory. The binaryen_test option is more general, and enables out-of-tree testing, so that's what we should be using instead.
Simplify ThreadPool::isRunning (WebAssembly#1391) * 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
Simplify ThreadPool::isRunning (WebAssembly#1391) * 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
Simplify ThreadPool::isRunning (WebAssembly#1391) * 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
Show the binary bytes we can remove without each export, in --func-me… …trics (WebAssembly#1379) * show the binary bytes we can remove without each export, in --func-metrics * check start too
Global optimization fixes (WebAssembly#1360) * 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
Optimize out memory and table when possible (WebAssembly#1352) We can remove the memory/table (itself, or an import if imported) if they are not used. This is pretty minor on a large wasm file, but when reading small wasts it's very noticeable to have an unused memory and table all the time.
PreviousNext