Stream: git-wasmtime

Topic: wasmtime / issue #10529 Cranelift: trace-log panic from x...


view this post on Zulip Wasmtime GitHub notifications bot (Apr 06 2025 at 01:23):

cfallin opened issue #10529:

With latest main (801cd06bffeb5c555973c1f8892b7591edc37a74), this CLIF:

test compile
target x86_64

function u0:0(f32, f32) -> f32 {
    block0(v0: f32, v1: f32):
        v2 = bxor.f32 v0, v1
        return v2
}

when compiled with

$ RUST_BACKTRACE=1 RUST_LOG=trace cargo run -p cranelift-tools -- test ./t.clif

results in this panic:

thread 'worker #1' panicked at cranelift/codegen/src/isa/x64/inst/external.rs:144:9:
internal error: entered unreachable code
stack backtrace:
   0: rust_begin_unwind
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:692:5
   1: core::panicking::panic_fmt
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:75:14
   2: core::panicking::panic
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:145:5
   3: cranelift_codegen::isa::x64::inst::external::enc_xmm
             at ./cranelift/codegen/src/isa/x64/inst/external.rs:144:9
   4: <cranelift_codegen::isa::x64::inst::external::PairedXmm as cranelift_assembler_x64::api::AsReg>::enc
             at ./cranelift/codegen/src/isa/x64/inst/external.rs:67:20
   5: cranelift_assembler_x64::xmm::Xmm<R>::enc
             at ./cranelift/assembler-x64/src/xmm.rs:22:19
   6: cranelift_assembler_x64::xmm::Xmm<R>::to_string
             at ./cranelift/assembler-x64/src/xmm.rs:29:24
   7: <cranelift_assembler_x64::inst::xorps_a<R> as core::fmt::Display>::fmt
             at ./target/debug/build/cranelift-assembler-x64-c5f27d6ae628a962/out/assembler.rs:14517:19
   8: <&T as core::fmt::Display>::fmt
             at /home/cfallin/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:2643:62
   9: core::fmt::rt::Argument::fmt
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/rt.rs:177:76
  10: core::fmt::write
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/mod.rs:1440:21
  11: core::fmt::Formatter::write_fmt
             at /home/cfallin/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:1912:13
  12: <cranelift_assembler_x64::inst::Inst<R> as core::fmt::Display>::fmt
             at ./target/debug/build/cranelift-assembler-x64-c5f27d6ae628a962/out/assembler.rs:432:33
  13: <&T as core::fmt::Display>::fmt
             at /home/cfallin/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:2643:62
  14: core::fmt::rt::Argument::fmt
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/rt.rs:177:76
  15: core::fmt::write
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/mod.rs:1440:21
  16: <&mut W as core::fmt::Write::write_fmt::SpecWriteFmt>::spec_write_fmt
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/mod.rs:242:21
  17: core::fmt::Write::write_fmt
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/mod.rs:247:9
[ ... ]

It appears that the XMM-register pretty-printing can't handle pre-regalloc states.

cc @abrown

view this post on Zulip Wasmtime GitHub notifications bot (Apr 10 2025 at 00:41):

abrown closed issue #10529:

With latest main (801cd06bffeb5c555973c1f8892b7591edc37a74), this CLIF:

test compile
target x86_64

function u0:0(f32, f32) -> f32 {
    block0(v0: f32, v1: f32):
        v2 = bxor.f32 v0, v1
        return v2
}

when compiled with

$ RUST_BACKTRACE=1 RUST_LOG=trace cargo run -p cranelift-tools -- test ./t.clif

results in this panic:

thread 'worker #1' panicked at cranelift/codegen/src/isa/x64/inst/external.rs:144:9:
internal error: entered unreachable code
stack backtrace:
   0: rust_begin_unwind
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:692:5
   1: core::panicking::panic_fmt
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:75:14
   2: core::panicking::panic
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:145:5
   3: cranelift_codegen::isa::x64::inst::external::enc_xmm
             at ./cranelift/codegen/src/isa/x64/inst/external.rs:144:9
   4: <cranelift_codegen::isa::x64::inst::external::PairedXmm as cranelift_assembler_x64::api::AsReg>::enc
             at ./cranelift/codegen/src/isa/x64/inst/external.rs:67:20
   5: cranelift_assembler_x64::xmm::Xmm<R>::enc
             at ./cranelift/assembler-x64/src/xmm.rs:22:19
   6: cranelift_assembler_x64::xmm::Xmm<R>::to_string
             at ./cranelift/assembler-x64/src/xmm.rs:29:24
   7: <cranelift_assembler_x64::inst::xorps_a<R> as core::fmt::Display>::fmt
             at ./target/debug/build/cranelift-assembler-x64-c5f27d6ae628a962/out/assembler.rs:14517:19
   8: <&T as core::fmt::Display>::fmt
             at /home/cfallin/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:2643:62
   9: core::fmt::rt::Argument::fmt
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/rt.rs:177:76
  10: core::fmt::write
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/mod.rs:1440:21
  11: core::fmt::Formatter::write_fmt
             at /home/cfallin/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:1912:13
  12: <cranelift_assembler_x64::inst::Inst<R> as core::fmt::Display>::fmt
             at ./target/debug/build/cranelift-assembler-x64-c5f27d6ae628a962/out/assembler.rs:432:33
  13: <&T as core::fmt::Display>::fmt
             at /home/cfallin/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:2643:62
  14: core::fmt::rt::Argument::fmt
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/rt.rs:177:76
  15: core::fmt::write
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/mod.rs:1440:21
  16: <&mut W as core::fmt::Write::write_fmt::SpecWriteFmt>::spec_write_fmt
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/mod.rs:242:21
  17: core::fmt::Write::write_fmt
             at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/mod.rs:247:9
[ ... ]

It appears that the XMM-register pretty-printing can't handle pre-regalloc states.

cc @abrown


Last updated: Dec 06 2025 at 07:03 UTC