Tags: ProgArt/javascript_WebAssembly_binaryen
Tags
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.
Redundant Set Elimination pass (WebAssembly#1344) This optimizes WebAssembly#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).
README: Add instructions for build with Visual C++ (WebAssembly#1337)
PreviousNext