binaryen icon indicating copy to clipboard operation
binaryen copied to clipboard

Optimizer and compiler/toolchain library for WebAssembly

Results 496 binaryen issues
Sort by recently updated
recently updated
newest added

IRBuilder is a utility for turning arbitrary valid streams of Wasm instructions into valid Binaryen IR. It is already used in the text parser, so now use it in the...

The binary parser generally does not know the final names of module elements when it parses them, or even when it parses instructions that refer to them, since the name...

**Steps to reproduce** 1. Get attached file [classTest.wasm.tar.gz](https://github.com/user-attachments/files/17054155/classTest.wasm.tar.gz) 2. Run `wasm-opt -O3 --all-features classTest.wasm` **Actual result** Tool reports following: ``` [wasm-validator error in function org.teavm.junit.TestEntryPoint::run] break type must be a...

Running on the binary from Google Sheets, ``` BINARYEN_CORES=1 perf record bin/wasm-opt binary.wasm -all --precompute --no-validation ``` (1 core to avoid noise from multithreading; validation disabled to focus on the...

interpreter

Consider the following expression: ````wasm (select (i32.div_u (i32.const 3) (i32.const 0)) (i32.const 2) (i32.const 0) ) ```` Binaryen will try to eliminate the `select` statement when its condition is constant....

Logging values is important in the fuzzer as the loggings are observable effects that we can then compare to other VMs and after optimizations. Previously we logged random things, which...

WebAssembly has the property that every valid sequence of instructions has a principal type, i.e. a unique most-specific type. However, due to various kinds of polymorphism, these principal types may...

Currently wasm-opt cannot optimize unused branch complexed with side-effect operations, such as ``` webassembly (func $_start (local $0 i32) (block $block (br_if $block (local.tee $0 (i32.const 1) ) ) (br_if...

When using `wasm-opt` with the `--minify-imports-and-exports-and-modules` flag, the tool correctly minifies both the import module names and the import function names. It often merges multiple import modules into a single...