binaryen
binaryen copied to clipboard
Optimizer and compiler/toolchain library for WebAssembly
Given the following code: ``` webassembly (module (type $0 (func)) (type $1 (func (param i32 i32) (result i32))) (import "External" "external_function" (func $external_function (type $0))) (func $_start (type $1) (param...
Given the following code: ``` webassembly (module (import "External" "external_function" (func $external_function)) (func $_start call $main) (func $main (local $0 i32) (local $1 i32) block ;; label = @1 block...
Early in Binaryen's history we wanted assertions in all builds in order to catch bugs. It was useful for a while but maybe today it is excessive. Profiling a 200MB...
Discussing with @tlively , we thought it would be good to take the string builtins feature part of #7601 and land that, with the idea that the feature would add...
I'm running into some pretty serious issues using wasm2js. It looks to me like the entire wasm memory is getting corrupted. Sometimes they result in clean-ish aborts like this: ```bash...
This pass statically infers branch hint annotations, inspired by LLVM's BranchProbabilityInfo: https://github.com/llvm/llvm-project/blob/main/llvm/lib/Analysis/BranchProbabilityInfo.cpp So far this sets low priority for throwing paths and even lower for unreachable ones. It propagates such...
Currently, `wasm-opt` cannot optimize the code as expected: `(unsigned)x >= 0 ==> i32(0)`. ```webassembly (i32.ge_u (i32.load (i32.const 0) ) (block (result i32) (i32.store (i32.const 0) (i32.const 0) ) (i32.const 0)...
This PR moves the JS wrapper to C++ by utilizing Embind. It aims at automating the process of binding as much as possible. Ideally, I want to get rid of...
hi, Binaryen, I am writting a new compiler for a new language, my attention is use binaryen to generate the backend code and use open source Webassembly runtime to run...
This makes string optimizations happen automatically when `--enable-string-builtins` (or `-all`). The lifting/lowering happen globally, at optimal times in the pipeline, so even `-O3 -O3 -O3` will only lift once and...