Max Graey

Results 152 issues of Max Graey

Binaryen already has `getMaxBits` which check max possible bits for expressions and allow some optimizations without pattern matching. I propose calculate also "min possible bits" which open opportunities for simplifications...

```ts i32(x) % -C => i32(x) % C i64(x) % -C => i64(x) % C, if C != C_min ``` It may reduce size (however not sure) and canonicalize expression...

Since f64 operations do not use LEB128 encoding, such constants always takes 8 bytes. Although some constants like 2.0, 3.25, 16.0, etc. have an empty or partially filled mantissa, which...

Github Actions already provide built-in mechanics for this: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency

Example: ```cpp if (x == 5) { return x + 1; } else { return x - 1; } if (y == true) { // maxBits(y) true } else {...

After #4811 and #4940 If not specify recently introduced `memoryName` (just use `nullptr`) parameter for `BinaryenLoad`, `BinaryenStore`, `BinaryenMemoryFill` etc., this lead to crash with assertion inside `emscripten-optimizer/istring.h` (line 65): ```...

Inspired by [this issue](https://github.com/WebAssembly/binaryen/issues/4948) ```wat drop (i32.load $addr, offset=0) ... drop (i32.load $addr, offset=8) ... drop (i32.load $addr, offset=16) ``` Could be reduced to: ```wat drop (i32.load $addr, offset=16) ;;...

Currently, DAE pass create only one truncated copy of a function, one of whose arguments are constantly called with the same constant value. This works well for functions with default...

In the example presented below: UIView animateWithDuration:1.5 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^(void) { // property animations } completion:nil ]; the argument "options" always takes the same value (UIViewAnimationCurveEaseInOut) regardless of actual value....