binaryen
binaryen copied to clipboard
Optimizer and compiler/toolchain library for WebAssembly
Given the following code: ``` webassembly (module (import "External" "external_function" (func $external_function)) (func $_start (result i32) i32.const 0 i32.const 0 i32.const 0 call $func_15 drop unreachable) (func $func_15 (param $0...
Fixed: #7647 Now it is just a generic concept about tail call optimization. I am not sure whether I am in the correct way. So I put the draft version...
Given the following code: ```wasm (func $test (drop (i32.const 3049323471))) ``` The version 123 of `wasm-as` output codes that, when displayed with `wasm-dis` is: ```wasm (func $0 (drop (i32.const -1245643825)))...
This draft is about leveraging llvm opt to benefiting wasm-opt. Languages like C/C++ and Rust are from LLVM and benefit a lot. However, not all come from LLVM (GC languages...
Old code size measure is simply based on operation count in callee. It will miss the opportunity like ```wat (func (param $ptr i32) (param $value i32) local.get $ptr local.get $value...
Given the following code: ``` webassembly (module (import "env" "dead" (func $dead)) (func $_start (param $0 i32) i32.const 0 i32.const 0 call $main) (func $main (param $0 i32) (param $1...
I'm curious as to why binaryen doesn't implement an optimization pass for tailcall feature. Is the optimization itself not feasible? If it is feasible, I would like to implement it....
Hi. I am planning on applying `wasm-opt` to my Go project as part of https://github.com/Jacalz/hegelmote/pull/30. The Go WASM files are generally quite big and our toolkit is not super optimised...
When converting a WebAssembly module using `wasm2js`, I encountered an error related to the features section of the module. The module includes advanced WebAssembly features such as `mutable-globals`, `bulk-memory`, and...
A wasm2js-transpiled JS module is throwing an error after an async call, but the WASM binary is working just fine. The wasm binary is compiled from a rust crate using...