binaryen
binaryen copied to clipboard
Optimizer and compiler/toolchain library for WebAssembly
Change `countScratchLocals` to return the count and type of necessary scratch locals. It used to encode them as keys in the global map from scratch local types to local indices,...
The stringview types from the stringref proposal have three irregularities that break common invariants and require pervasive special casing to handle properly: they are supertypes of `none` but not subtypes...
I am building a project using C API. I have some questions regarding the multi-value return. Suppose I want to construct a function with ( i32 i32 i32) as return...
Alternative to #6390: That PR makes `br_if` with a value have the same typing rules as the wasm spec, i.e., the potentially less refined type of the break target rather...
```wat (module (table 0 funcref) (export "func_94_invoker" (func $0)) (func $0 (nop) ) ) ``` ``` $ bin/wasm-split a.wat -all --split -o1 a.wasm -o2 b.wasm -S --split-funcs=0 warning: not keeping...
The comment `;;@` with nothing else can be used to specify that the following expression does not have any debug info associated to it. This can be used to stop...
I have a large web-based document editing application and am interested in splitting it using `wasm-split`. While discussing with my team possibilities for splitting up the module, the idea of...
Atm we enable StackIR optimizations in `-O3` and `-Os` and above. This made sense because their benefit is usually fairly small, around 1-2%, and we didn't want to slow down...
When GlobalRefining refines the type of a global, it updates the type of corresponding GlobalGet expressions, then runs ReFinalize to propagate the refined types. However, it only performed these updates...
``` $ wasm-opt x.wat -all --type-ssa -O2 --unsubtyping --roundtrip [wasm-validator error in module] struct.new operand 0 must have proper type, on (struct.new $84 (global.get $global$4) ) Fatal: error after opts...