Ruiyang Xu
Ruiyang Xu
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...
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...
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...
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...
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...
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)...
Given the following code: ``` webassembly (module (type $0 (func)) (type $1 (func (param i32 i32) (result i32))) (type $2 (func (result i32))) (type $3 (func (param i32) (result i32)))...
Given the following code: ```webassembly (module (import "External" "external_function" (func $external_function)) (func $foo (result i32) i32.const 0 i32.load) (func $_start (param $0 i32) (param $1 i64) (param $2 i32) (local...
Given the following code: ```webassembly (module (import "External" "external_function" (func $external_function)) (func $_start (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) (local $5...