$ cargo run compile testcase0.wat --target x86_64-unknown-linux-gnu -Oregalloc-algorithm=single-pass -Wexceptions=y
2025-08-26T18:47:40.840113Z ERROR cranelift_codegen::machinst::compile: Register allocation error for vcode
VCode {
Entry block: 0
Block 0([]):
(original IR block: block0)
(successor: Block 1([]))
Inst 0: args %v192=%rdi
Inst 1: jmp label1
Block 1([]):
(original IR block: block2)
(successor: Block 4([VReg(vreg = 197, class = Int)]))
(successor: Block 2([]))
Inst 2: movq 0x30(%v192), %v200
Inst 3: movq 0x40(%v192), %v199
Inst 4: call *%v200; jmp MachLabel(2); catch [context v192, default: MachLabel(4)]
Block 2([]):
(original IR block: block5)
(successor: Block 3([]))
Inst 5: jmp label3
Block 3([]):
(original IR block: block3)
(successor: Block 5([]))
Inst 6: jmp label5
Block 4([VReg(vreg = 194, class = Int)]):
(original IR block: block4)
(successor: Block 5([]))
Inst 7: jmp label5
Block 5([]):
(original IR block: block1)
Inst 8: rets
}
Error: TooManyLiveRegs
CLIF for error:
function u0:0(i64 vmctx, i64) tail {
gv0 = vmctx
gv1 = load.i64 notrap aligned readonly gv0+8
gv2 = load.i64 notrap aligned gv1+16
gv3 = vmctx
sig0 = (i64 vmctx, i64) tail
stack_limit = gv2
block0(v0: i64, v1: i64):
@001e jump block2
block4(v2: i64):
@001e jump block1
block2:
@0023 v6 = load.i64 notrap aligned readonly can_move v0+48
@0023 v5 = load.i64 notrap aligned readonly can_move v0+64
@0023 try_call_indirect v6(v5, v0), sig0, block5, [ context v0, default: block4(exn0) ]
block5:
@0025 jump block3
block3:
@0026 jump block1
block1:
@0026 return
}
thread '<unnamed>' panicked at cranelift/codegen/src/machinst/compile.rs:79:14:
register allocation: TooManyLiveRegs
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
This input:
fails with:
The original fuzz test case is:
Details