Stream: git-wasmtime

Topic: wasmtime / issue #4067 Cranelift: register allocation fai...


view this post on Zulip Wasmtime GitHub notifications bot (Apr 25 2022 at 10:26):

Mrmaxmeier opened issue #4067:

.clif Test Case

This snipped started crashing with register allocation: EntryLivein in e4b7c8a7376c0b4196262b176373b606c7b4c760 (x86_64):

function u0:0(i32, i64) -> i32 fast {
block0(v1: i32, v2: i64):
    v3 = load.i32 notrap aligned v2
    v4 = umax v1, v3
    return v4
}

I'm not sure why/if this issue is only present with the integer min/max implementations, but I'd guess that it only surfaces with load operands reused in both a conditional move and compare.

CC @cfallin

Versions and Environment

Cranelift version or commit: e4b7c8a7376c0b4196262b176373b606c7b4c760

Operating system: Linux

Architecture: x86_64

view this post on Zulip Wasmtime GitHub notifications bot (Apr 25 2022 at 10:26):

Mrmaxmeier labeled issue #4067:

.clif Test Case

This snipped started crashing with register allocation: EntryLivein in e4b7c8a7376c0b4196262b176373b606c7b4c760 (x86_64):

function u0:0(i32, i64) -> i32 fast {
block0(v1: i32, v2: i64):
    v3 = load.i32 notrap aligned v2
    v4 = umax v1, v3
    return v4
}

I'm not sure why/if this issue is only present with the integer min/max implementations, but I'd guess that it only surfaces with load operands reused in both a conditional move and compare.

CC @cfallin

Versions and Environment

Cranelift version or commit: e4b7c8a7376c0b4196262b176373b606c7b4c760

Operating system: Linux

Architecture: x86_64

view this post on Zulip Wasmtime GitHub notifications bot (Apr 25 2022 at 10:26):

Mrmaxmeier labeled issue #4067:

.clif Test Case

This snipped started crashing with register allocation: EntryLivein in e4b7c8a7376c0b4196262b176373b606c7b4c760 (x86_64):

function u0:0(i32, i64) -> i32 fast {
block0(v1: i32, v2: i64):
    v3 = load.i32 notrap aligned v2
    v4 = umax v1, v3
    return v4
}

I'm not sure why/if this issue is only present with the integer min/max implementations, but I'd guess that it only surfaces with load operands reused in both a conditional move and compare.

CC @cfallin

Versions and Environment

Cranelift version or commit: e4b7c8a7376c0b4196262b176373b606c7b4c760

Operating system: Linux

Architecture: x86_64

view this post on Zulip Wasmtime GitHub notifications bot (Apr 25 2022 at 16:30):

cfallin commented on issue #4067:

Thanks for the report -- taking a look right away!

view this post on Zulip Wasmtime GitHub notifications bot (Apr 25 2022 at 17:32):

cfallin closed issue #4067:

.clif Test Case

This snipped started crashing with register allocation: EntryLivein in e4b7c8a7376c0b4196262b176373b606c7b4c760 (x86_64):

function u0:0(i32, i64) -> i32 fast {
block0(v1: i32, v2: i64):
    v3 = load.i32 notrap aligned v2
    v4 = umax v1, v3
    return v4
}

I'm not sure why/if this issue is only present with the integer min/max implementations, but I'd guess that it only surfaces with load operands reused in both a conditional move and compare.

CC @cfallin

Versions and Environment

Cranelift version or commit: e4b7c8a7376c0b4196262b176373b606c7b4c760

Operating system: Linux

Architecture: x86_64


Last updated: Jan 09 2026 at 13:15 UTC