afonso360 labeled issue #4969:
:wave: Hey,
I tried to enable s390x CI for cg_clif today, and its failing with a regalloc checker error.
I've minimized the issue to the following test case. However it should be noted that the
filetests/filetests/isa/s390x/tls_elf.clif
file also fails if I enable theregalloc_checker
flag.I tried to investigate this a bit, but I don't understand the register allocator very well.
.clif
Test Casetest compile precise-output set tls_model=elf_gd set regalloc_checker target s390x function u0:42() -> i8 system_v { gv0 = symbol tls userextname0 block0: v0 = tls_value.i64 gv0 v1 = load.i8 notrap v0 return v1 }
Steps to Reproduce
`clif-util test .\the-above.clif``
Expected Results
Compile
Actual Results
Running `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\filetests\filetests\isa\s390x\tls_value.clif` ERROR cranelift_codegen::machinst::compile > Register allocation checker errors: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } for vcode: VCode { Entry block: 0 v128 := v138 v129 := v131 Block 0: (original IR block: block0) (instruction range: 0 .. 15) Inst 0: larl %v132, %ElfGlobalOffsetTable + 0 Inst 1: bras %r1, 12 ; data userextname0@tlsgd ; lg %v133, 0(%r1) Inst 2: lgr %r12, %v132 Inst 3: lgr %r2, %v133 Inst 4: brasl %r14, %ElfTlsGetOffset:tls_gdcall:userextname0 Inst 5: lgr %v134, %r2 Inst 6: ear %v135, %a0 Inst 7: sllg %v136, %v135, 32 Inst 8: lgr %v137, %v136 Inst 9: ear %v137, %a1 Inst 10: agrk %v138, %v134, %v137 Inst 11: llc %v131, 0(%v128) Inst 12: lr %v130, %v129 Inst 13: lr %r2, %v130 Inst 14: br %r14 } thread 'worker #0' panicked at 'register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] }', cranelift\codegen\src\machinst\comp ile.rs:69:14 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } FAIL .\filetests\filetests\isa\s390x\tls_value.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0 i }] } 1 tests Error: 1 failure error: process didn't exit successfully: `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\filetests\filetests\isa\s390x\tls_value.clif` (exit code: 1)
Versions and Environment
Cranelift version or commit: main
Operating system: Windows
Architecture: s390xExtra Info
Maybe we should turn
regalloc_checker
for the entire filetest suite? Like we do the verifier flag.cc: @bjorn3 @uweigand @cfallin
afonso360 labeled issue #4969:
:wave: Hey,
I tried to enable s390x CI for cg_clif today, and its failing with a regalloc checker error.
I've minimized the issue to the following test case. However it should be noted that the
filetests/filetests/isa/s390x/tls_elf.clif
file also fails if I enable theregalloc_checker
flag.I tried to investigate this a bit, but I don't understand the register allocator very well.
.clif
Test Casetest compile precise-output set tls_model=elf_gd set regalloc_checker target s390x function u0:42() -> i8 system_v { gv0 = symbol tls userextname0 block0: v0 = tls_value.i64 gv0 v1 = load.i8 notrap v0 return v1 }
Steps to Reproduce
`clif-util test .\the-above.clif``
Expected Results
Compile
Actual Results
Running `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\filetests\filetests\isa\s390x\tls_value.clif` ERROR cranelift_codegen::machinst::compile > Register allocation checker errors: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } for vcode: VCode { Entry block: 0 v128 := v138 v129 := v131 Block 0: (original IR block: block0) (instruction range: 0 .. 15) Inst 0: larl %v132, %ElfGlobalOffsetTable + 0 Inst 1: bras %r1, 12 ; data userextname0@tlsgd ; lg %v133, 0(%r1) Inst 2: lgr %r12, %v132 Inst 3: lgr %r2, %v133 Inst 4: brasl %r14, %ElfTlsGetOffset:tls_gdcall:userextname0 Inst 5: lgr %v134, %r2 Inst 6: ear %v135, %a0 Inst 7: sllg %v136, %v135, 32 Inst 8: lgr %v137, %v136 Inst 9: ear %v137, %a1 Inst 10: agrk %v138, %v134, %v137 Inst 11: llc %v131, 0(%v128) Inst 12: lr %v130, %v129 Inst 13: lr %r2, %v130 Inst 14: br %r14 } thread 'worker #0' panicked at 'register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] }', cranelift\codegen\src\machinst\comp ile.rs:69:14 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } FAIL .\filetests\filetests\isa\s390x\tls_value.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0 i }] } 1 tests Error: 1 failure error: process didn't exit successfully: `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\filetests\filetests\isa\s390x\tls_value.clif` (exit code: 1)
Versions and Environment
Cranelift version or commit: main
Operating system: Windows
Architecture: s390xExtra Info
Maybe we should turn
regalloc_checker
for the entire filetest suite? Like we do the verifier flag.cc: @bjorn3 @uweigand @cfallin
afonso360 opened issue #4969:
:wave: Hey,
I tried to enable s390x CI for cg_clif today, and its failing with a regalloc checker error.
I've minimized the issue to the following test case. However it should be noted that the
filetests/filetests/isa/s390x/tls_elf.clif
file also fails if I enable theregalloc_checker
flag.I tried to investigate this a bit, but I don't understand the register allocator very well.
.clif
Test Casetest compile precise-output set tls_model=elf_gd set regalloc_checker target s390x function u0:42() -> i8 system_v { gv0 = symbol tls userextname0 block0: v0 = tls_value.i64 gv0 v1 = load.i8 notrap v0 return v1 }
Steps to Reproduce
`clif-util test .\the-above.clif``
Expected Results
Compile
Actual Results
Running `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\filetests\filetests\isa\s390x\tls_value.clif` ERROR cranelift_codegen::machinst::compile > Register allocation checker errors: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } for vcode: VCode { Entry block: 0 v128 := v138 v129 := v131 Block 0: (original IR block: block0) (instruction range: 0 .. 15) Inst 0: larl %v132, %ElfGlobalOffsetTable + 0 Inst 1: bras %r1, 12 ; data userextname0@tlsgd ; lg %v133, 0(%r1) Inst 2: lgr %r12, %v132 Inst 3: lgr %r2, %v133 Inst 4: brasl %r14, %ElfTlsGetOffset:tls_gdcall:userextname0 Inst 5: lgr %v134, %r2 Inst 6: ear %v135, %a0 Inst 7: sllg %v136, %v135, 32 Inst 8: lgr %v137, %v136 Inst 9: ear %v137, %a1 Inst 10: agrk %v138, %v134, %v137 Inst 11: llc %v131, 0(%v128) Inst 12: lr %v130, %v129 Inst 13: lr %r2, %v130 Inst 14: br %r14 } thread 'worker #0' panicked at 'register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] }', cranelift\codegen\src\machinst\comp ile.rs:69:14 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } FAIL .\filetests\filetests\isa\s390x\tls_value.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0 i }] } 1 tests Error: 1 failure error: process didn't exit successfully: `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\filetests\filetests\isa\s390x\tls_value.clif` (exit code: 1)
Versions and Environment
Cranelift version or commit: main
Operating system: Windows
Architecture: s390xExtra Info
Maybe we should turn
regalloc_checker
for the entire filetest suite? Like we do the verifier flag.cc: @bjorn3 @uweigand @cfallin
afonso360 edited issue #4969:
:wave: Hey,
I tried to enable s390x CI for cg_clif today, and its failing with a regalloc checker error.
I've minimized the issue to the following test case. However it should be noted that the
filetests/filetests/isa/s390x/tls_elf.clif
file also fails if I enable theregalloc_checker
flag.I tried to investigate this a bit, but I don't understand the register allocator very well.
.clif
Test Casetest compile precise-output set tls_model=elf_gd set regalloc_checker target s390x function u0:42() -> i8 system_v { gv0 = symbol tls userextname0 block0: v0 = tls_value.i64 gv0 v1 = load.i8 notrap v0 return v1 }
Steps to Reproduce
`clif-util test .\the-above.clif``
Expected Results
Compile
Actual Results
Running `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\filetests\filetests\isa\s390x\tls_value.clif` ERROR cranelift_codegen::machinst::compile > Register allocation checker errors: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } for vcode: VCode { Entry block: 0 v128 := v138 v129 := v131 Block 0: (original IR block: block0) (instruction range: 0 .. 15) Inst 0: larl %v132, %ElfGlobalOffsetTable + 0 Inst 1: bras %r1, 12 ; data userextname0@tlsgd ; lg %v133, 0(%r1) Inst 2: lgr %r12, %v132 Inst 3: lgr %r2, %v133 Inst 4: brasl %r14, %ElfTlsGetOffset:tls_gdcall:userextname0 Inst 5: lgr %v134, %r2 Inst 6: ear %v135, %a0 Inst 7: sllg %v136, %v135, 32 Inst 8: lgr %v137, %v136 Inst 9: ear %v137, %a1 Inst 10: agrk %v138, %v134, %v137 Inst 11: llc %v131, 0(%v128) Inst 12: lr %v130, %v129 Inst 13: lr %r2, %v130 Inst 14: br %r14 } thread 'worker #0' panicked at 'register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] }', cranelift\codegen\src\machinst\comp ile.rs:69:14 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } FAIL .\filetests\filetests\isa\s390x\tls_value.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0 i }] } 1 tests Error: 1 failure error: process didn't exit successfully: `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\filetests\filetests\isa\s390x\tls_value.clif` (exit code: 1)
Versions and Environment
Cranelift version or commit: main
Operating system: Windows
Architecture: s390xExtra Info
Maybe we should turn on the
regalloc_checker
flag for the entire filetest suite? Like we do the verifier flag.cc: @bjorn3 @uweigand @cfallin
uweigand commented on issue #4969:
Thanks for reporting this! Should be fixed by the PR linked above.
jameysharp closed issue #4969:
:wave: Hey,
I tried to enable s390x CI for cg_clif today, and its failing with a regalloc checker error.
I've minimized the issue to the following test case. However it should be noted that the
filetests/filetests/isa/s390x/tls_elf.clif
file also fails if I enable theregalloc_checker
flag.I tried to investigate this a bit, but I don't understand the register allocator very well.
.clif
Test Casetest compile precise-output set tls_model=elf_gd set regalloc_checker target s390x function u0:42() -> i8 system_v { gv0 = symbol tls userextname0 block0: v0 = tls_value.i64 gv0 v1 = load.i8 notrap v0 return v1 }
Steps to Reproduce
`clif-util test .\the-above.clif``
Expected Results
Compile
Actual Results
Running `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\filetests\filetests\isa\s390x\tls_value.clif` ERROR cranelift_codegen::machinst::compile > Register allocation checker errors: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } for vcode: VCode { Entry block: 0 v128 := v138 v129 := v131 Block 0: (original IR block: block0) (instruction range: 0 .. 15) Inst 0: larl %v132, %ElfGlobalOffsetTable + 0 Inst 1: bras %r1, 12 ; data userextname0@tlsgd ; lg %v133, 0(%r1) Inst 2: lgr %r12, %v132 Inst 3: lgr %r2, %v133 Inst 4: brasl %r14, %ElfTlsGetOffset:tls_gdcall:userextname0 Inst 5: lgr %v134, %r2 Inst 6: ear %v135, %a0 Inst 7: sllg %v136, %v135, 32 Inst 8: lgr %v137, %v136 Inst 9: ear %v137, %a1 Inst 10: agrk %v138, %v134, %v137 Inst 11: llc %v131, 0(%v128) Inst 12: lr %v130, %v129 Inst 13: lr %r2, %v130 Inst 14: br %r14 } thread 'worker #0' panicked at 'register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] }', cranelift\codegen\src\machinst\comp ile.rs:69:14 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } FAIL .\filetests\filetests\isa\s390x\tls_value.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0 i }] } 1 tests Error: 1 failure error: process didn't exit successfully: `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\filetests\filetests\isa\s390x\tls_value.clif` (exit code: 1)
Versions and Environment
Cranelift version or commit: main
Operating system: Windows
Architecture: s390xExtra Info
Maybe we should turn on the
regalloc_checker
flag for the entire filetest suite? Like we do the verifier flag.cc: @bjorn3 @uweigand @cfallin
Last updated: Dec 23 2024 at 13:07 UTC