http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48596
Summary: [4.7 Regression] [SH] unable to find a register to
spill in class 'FPUL_REGS'
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
AssignedTo: [email protected]
ReportedBy: [email protected]
Created attachment 23975
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23975
A test case
The attached testcase causes a spill failure with -O1 -m4 -ml:
foo.c: In function 'foo':
foo.c:27:1: error: unable to find a register to spill in class 'FPUL_REGS'
foo.c:27:1: error: this is the insn:
(insn 105 104 106 8 (parallel [
(set (reg:SI 264)
(fix:SI (reg:DF 66 fr2 [262])))
(use (reg/v:PSI 151 ))
]) foo.c:22 357 {fix_truncdfsi2_i}
(expr_list:REG_DEAD (reg:DF 66 fr2 [262])
(expr_list:REG_DEAD (reg/v:PSI 151 )
(expr_list:REG_EQUIV (mem:SI (reg/f:SI 78 fr14 [orig:242 D.2027 ]
[242]) [0 MEM[(struct Info *)D.2027_55]+0 S4 A32])
(nil)))))
foo.c:27:1: internal compiler error: in spill_failure, at reload1.c:2113
for sh-elf target.