Stream: git-wasmtime

Topic: wasmtime / PR #11785 Revert "Constant propagation opts (#...


view this post on Zulip Wasmtime GitHub notifications bot (Oct 03 2025 at 16:08):

alexcrichton opened PR #11785 from alexcrichton:revert to bytecodealliance:main:

This reverts #11748 as fuzzing turned up a differential execution error which bisected to this PR. The original failing test case is:

<details>

<summary><code>testcase0.wat</code></summary>

(module
  (type (;0;) (func (param i32 i32) (result i32)))
  (global (;0;) (mut i32) i32.const 0)
  (global (;1;) (mut i32) i32.const 1000)
  (export "r_ coatin-1not r e*_e*A__se*r  ,r,r_ coatin-1not r e*_e*A__se*_," (func 0))
  (export "r,r_ coatin-1not r e*_,r,rt_co ain-1not r  _ coatin-1not r e*\u{1f},r,rt_co ain-1not r  ,_,r,r_ ocatin-0not r  ,r,r_ " (global 0))
  (elem (;0;) func)
  (func (;0;) (type 0) (param i32 i32) (result i32)
    global.get 1
    i32.eqz
    if ;; label = @1
      unreachable
    end
    global.get 1
    i32.const 1
    i32.sub
    global.set 1
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.popcnt
    i32.extend8_s
    i32.popcnt
    i64.extend_i32_u
    i64.clz
    i64.clz
    i64.extend8_s
    i32.const -131072
    local.tee 1
    i32.extend8_s
    i32.popcnt
    local.set 0
    i64.extend8_s
    local.get 1
    i32.extend8_s
    local.get 0
    i32.lt_s
    i64.extend_i32_u
    i64.popcnt
    i64.shr_u
    local.get 0
    local.set 0
    i32.const 825060969
    local.get 0
    i32.lt_s
    local.set 0
    i64.ctz
    i64.clz
    i64.ctz
    elem.drop 0
    i64.clz
    i64.ctz
    elem.drop 0
    i64.ctz
    i32.const -513
    local.get 1
    i32.xor
    local.set 1
    local.get 0
    i64.extend_i32_u
    i64.or
    i64.extend8_s
    i64.ctz
    local.get 1
    i64.extend_i32_u
    i64.shr_s
    i64.clz
    i64.extend8_s
    i32.const -131072
    local.tee 1
    i32.extend8_s
    i32.extend8_s
    local.set 0
    i32.const 825060969
    local.get 0
    i32.lt_s
    local.set 0
    i64.extend8_s
    local.get 1
    i32.extend8_s
    local.get 0
    i32.lt_s
    i32.ctz
    i32.extend8_s
    i64.extend_i32_u
    i64.gt_s
    local.get 1
    i32.xor
    local.set 0
    local.get 0
    local.set 0
    i32.const 808283753
    local.get 0
    i32.lt_s
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.get 1
    i32.xor
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.get 1
    i32.xor
    local.set 0
    local.get 0
    local.set 0
    i32.const 808283753
    local.get 0
    i32.lt_s
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    i32.popcnt
    i64.extend_i32_u
    i64.clz
    i64.clz
    i64.extend8_s
    i64.extend8_s
    elem.drop 0
    i64.extend8_s
    local.get 1
    i32.extend8_s
    local.get 0
    i32.lt_s
    i32.ctz
    i32.extend8_s
    i64.extend_i32_u
    i64.gt_s
    local.get 1
    i32.xor
    local.set 0
    local.get 0
    local.set 0
    i32.const 808283753
    local.get 0
    i32.lt_s
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.get 1
    i32.xor
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.get 1
    i32.xor
    local.set 0
    local.get 0
    local.set 0
    i32.const 808283753
    local.get 0
    i32.lt_s
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.get 1
    i32.xor
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.get 1
    i32.xor
    local.set 0
    local.get 0
    local.set 0
    i32.const 808283753
    local.get 0
    i32.lt_s
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    i32.popcnt
    i64.extend_i32_u
    i64.clz
    i64.clz
    i64.extend8_s
    i64.extend8_s
    elem.drop 0
    i64.extend8_s
    local.get 1
    i32.extend8_s
    local.get 0
    i32.lt_s
    i32.ctz
    i32.extend8_s
    i64.extend_i32_u
    i64.gt_s
    local.get 1
    i32.xor
    local.set 0
    local.get 0
    local.set 0
    i32.const 808283753
    local.get 0
    i32.lt_s
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.get 1
    i32.xor
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.get 1
    i32.xor
    local.set 0
    local.get 0
    local.set 0
    i32.const 808283753
    local.get 0
    i32.lt_s
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.get 1
    i32.xor
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    local.set 1
    local.get 1
    local.get 1
    i32.xor
    local.set 0
    local.get 0
    local.set 0
    i32.const 808283753
    local.get 0
    i32.lt_s
    local.set 0
    local.get 1
    local.set 0
    local.get 1
    i32.popcnt
    i32.extend8_s
    i32.extend8_s
    i32.popcnt
    i64.extend_i32_u
    i64.clz
    i64.clz
    i64.extend8_s
    i64.extend8_s
    elem.drop 0
    i64.extend8_s
    local.get 1
    i32.extend8_s
    local.get 0
    i32.lt_s
    i32.ctz
    i32.extend8_s
    i64.extend_i32_u
    i64.gt_s
    local.get 1
    i32.xor
    local.set 0
    local.get 0
    local.set 0
    i32.const 808283753
    local.get 0
    global.get 0
    i32.xor
    global.set 0
  )

  (func (export "x")  (result i32)
      i32.const -1 i32.const -1
      call 0
      drop
      global.get 0)
)

</details>

and wasm-tools shrink-minimized version is attached to this PR as a regression test as well.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 03 2025 at 16:08):

alexcrichton requested fitzgen for a review on PR #11785.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 03 2025 at 16:08):

alexcrichton requested wasmtime-compiler-reviewers for a review on PR #11785.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 03 2025 at 16:08):

alexcrichton requested wasmtime-core-reviewers for a review on PR #11785.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 03 2025 at 16:12):

cfallin submitted PR review:

Thanks for triaging!

view this post on Zulip Wasmtime GitHub notifications bot (Oct 03 2025 at 16:12):

cfallin has enabled auto merge for PR #11785.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 03 2025 at 16:44):

cfallin merged PR #11785.


Last updated: Dec 06 2025 at 06:05 UTC