Robin Freyler

Results 177 issues of Robin Freyler

Currently the `wasmi` [Wasm execution engine](https://github.com/paritytech/wasmi/blob/e9b0463817e277cd9daccca7e66e52e4fd147d8e/wasmi_v1/src/engine/exec_context.rs) follows a stack machine based execution model. This means that most instructions pop of values from the stack, manipulate them and push the result...

wasmi-v1
optimization

Currently `wasmi` does not optimize `global.get g` instructions where `g` is an immutable non-imported global variable. In this case `wasmi` could replace the expensive `global.get g` call with its respective...

wasmi-v1
optimization

This will fuzz test executions of generated Wasm module functions with new `wasmi` versions against the battle-tested legacy `wasmi` version `0.13.0`.

Would it be possible to introduce lossless `TryFrom` implementations for `bf16` and `f16` types from Rust primitive `f32` and `f64` types so that for example `f16::try_from(value).map(f16::to_f32)` is either `Err` or...

enhancement

I am currently using `nextest` via `miri` in Wasmi to run the entire Wasm spec testsuite (which is huge) nightly. Since `miri` execution with all of its checks is rather...

enhancement

This merges two `copy` instructions to a `copy2` instruction if possible. Locally I saw ~20% perf improvement for the `fibonacci/iter` benchmark test case which actually profits from this optimization since...

Closes https://github.com/paritytech/wasmi/issues/920. ## TODOs - [x] Fuse `i32.add_imm` with `global.set 0` - [x] Fuse `global.get 0` with `i32.add_imm` - [x] Fuse fused `global.get 0` + `i32.add_imm` with `i32.local_tee` and `global.set...

Locally I saw no huge regressions (~0-20%) and even some improvements. Best improvement was with `fib/iter` which improved by 24% which is actually pretty big. My hope is that this...

With the transition of Wasmi from the `paritytech` GitHub organization to the `wasmi-labs` GitHub organization we also (expectedly) lost the GitLab based CI benchmarking for Wasmi which immensely helped the...

help wanted
ci

There are cases where 2 transitive copies are generated such as: ```wat Instruction::copy(2, 0) Instruction::copy(1, 2) ``` In this case it is possible to generate a single ```wat Instruction::copy(1, 0)...

optimization