[Bug c/35802] New: MIPS64: Unable to find a register to spill in class ‘V1_REG’
aurelien at aurel32 dot net
gcc-bugzilla@gcc.gnu.org
Wed Apr 2 14:11:00 GMT 2008
I am getting a very strange ICE on a mips system when building with -mabi=n32
or -mabi=64:
testcase.i: In function ‘_IO_vfscanf_internal’:
testcase.i:2857: error: unable to find a register to spill in class
‘V1_REG’
testcase.i:2857: error: this is the insn:
(insn 1286 1241 1243 106 testcase.i:577 (set (reg:SI 19 $19 [3464])
(unspec:SI [
(const_int 0 [0x0])
] 28)) 460 {tls_get_tp_si} (expr_list:REG_EQUIV (unspec:SI [
(const_int 0 [0x0])
] 28)
(nil)))
testcase.i:2857: confused by earlier errors, bailing out
This is when trying to build glibc 2.7, file vfscanf.c. The strange part appear
when trying to reduce the testcase. I noticed that removing struct declarations
that are not use elsewhere in the file make the problem disappear. That's why
the reduced testcase is still big.
I'll attach two testcase, one unreduced, and one reduced.
With the unreduced testcase, it is possible to trigger the bug with -mabi=n32
or -mabi=64 with -O2 or -O3.
On reduce testcase, the bug is triggered exclusively with -mabi=n32 and -O2.
This is the command I used to build the file:
/usr/bin/gcc-4.3 -c -O2 -fgnu89-inline -std=gnu99 -mabi=n32 testcase-min.i
--
Summary: MIPS64: Unable to find a register to spill in class
‘V1_REG’
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: aurelien at aurel32 dot net
GCC build triplet: mips64el-unknown-linux-gnu
GCC host triplet: mips64el-unknown-linux-gnu
GCC target triplet: mips64el-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35802
More information about the Gcc-bugs
mailing list