crash: error: <unknown>:0:0: ran out of registers during register allocation in function 'relax_jal_spill_64'
| Run: | explore-bc8218b282-20261015-075519 |
| Kind: | crash |
| Category: | error: <unknown>:0:0: ran out of registers during register allocation in function 'relax_jal_spill_64' NEW |
| Occurrences: | 3 in 2 configs, 1 test files |
| Snippet from: | branch-relaxation-rv64.0a08b63bd3.ll (mutant of branch-relaxation-rv64.ll) @relax_jal_spill_64 via llvm-extract + llvm-reduce |
| Config: | -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs |
| Local check: | reproduces at bc8218b282 |
| Compiler Explorer: | https://godbolt.org/z/rExbnM9oj (llc-assertions-trunk, checked 2026-10-15 08:04 UTC): G reproduces |
Snippet:
@G = external global i64
define void @relax_jal_spill_64() {
branch_2:
%LGV = load i64, ptr @G, align 4
call void asm sideeffect "# reg use $0", "{ra}"(i64 0)
call void asm sideeffect "# reg use $0", "{t0}"(i64 0)
call void asm sideeffect "# reg use $0", "{t1}"(i64 0)
call void asm sideeffect "# reg use $0", "{t2}"(i64 0)
call void asm sideeffect "# reg use $0", "{s0}"(i64 0)
call void asm sideeffect "# reg use $0", "{s1}"(i64 0)
call void asm sideeffect "# reg use $0", "{a0}"(i64 0)
call void asm sideeffect "# reg use $0", "{a1}"(i64 0)
call void asm sideeffect "# reg use $0", "{a2}"(i64 0)
call void asm sideeffect "# reg use $0", "{a3}"(i64 0)
call void asm sideeffect "# reg use $0", "{a4}"(i64 0)
call void asm sideeffect "# reg use $0", "{a5}"(i64 0)
call void asm sideeffect "# reg use $0", "{a6}"(i64 0)
call void asm sideeffect "# reg use $0", "{a7}"(i64 0)
call void asm sideeffect "# reg use $0", "{s2}"(i64 0)
call void asm sideeffect "# reg use $0", "{s3}"(i64 0)
call void asm sideeffect "# reg use $0", "{s4}"(i64 0)
call void asm sideeffect "# reg use $0", "{s5}"(i64 0)
call void asm sideeffect "# reg use $0", "{s6}"(i64 0)
call void asm sideeffect "# reg use $0", "{s7}"(i64 0)
call void asm sideeffect "# reg use $0", "{s8}"(i64 0)
call void asm sideeffect "# reg use $0", "{s9}"(i64 0)
call void asm sideeffect "# reg use $0", "{s10}"(i64 0)
call void asm sideeffect "# reg use $0", "{s11}"(i64 0)
call void asm sideeffect "# reg use $0", "{t3}"(i64 0)
call void asm sideeffect "# reg use $0", "{t4}"(i64 0)
call void asm sideeffect "# reg use $0", "{t5}"(i64 0)
call void asm sideeffect "# reg use $0", "{t6}"(i64 0)
store i64 %LGV, ptr null, align 4
ret void
}
Compiler Explorer panes:
| Pane | Options | Exit | Insts | stderr |
|---|
| GlobalISel | -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.* | 1 | 0 | error: <unknown>:0:0: ran out of registers during register allocation in function 'relax_jal_spill_64' |
| SelectionDAG (control) | -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs -global-isel=0 | 0 | 65 | - |
Reproduce:
llc -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel.* snippet.ll -o -
llc -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs -global-isel=0 snippet.ll -o -
Local llc output:
error: <unknown>:0:0: ran out of registers during register allocation in function 'relax_jal_spill_64'
Occurrences (3):
| Input | Function | Config |
|---|
| branch-relaxation-rv64.0a08b63bd3.ll (mutant of branch-relaxation-rv64.ll) | | -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs |
| branch-relaxation-rv64.977f2efb0f.ll (mutant of branch-relaxation-rv64.ll) | | -mtriple=riscv64 -verify-machineinstrs |
| branch-relaxation-rv64.977f2efb0f.ll (mutant of branch-relaxation-rv64.ll) | | -mtriple=riscv64 -verify-machineinstrs |
Generated 2026-10-15 08:05 UTC.