[4.6 regression/armhf] ICE, unable to find a register to spill in class 'LO_REGS'
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Linaro GCC |
Won't Fix
|
Medium
|
Ramana Radhakrishnan | ||
gcc-4.6 (Ubuntu) |
Triaged
|
Medium
|
Unassigned |
Bug Description
seen with gcc-4.6 4.6.2-7ubuntu1, works with gcc-4.5
$ gcc -c -O2 -g TextDiagnosticP
/scratch/
/scratch/
/scratch/
(insn 137 148 138 3 (parallel [
(set (reg/v:SI 208 [ Suppressed ])
]) /scratch/
(expr_
(nil)))
/scratch/
Changed in gcc-4.6 (Ubuntu): | |
status: | Confirmed → Triaged |
Thank you for the bug report. I've confirmed this with gcc-linaro- 4.6-2011. 12 on ARM:
michaelh@ ursa3:~ /linaro/ bugs$ /tools/ toolchains/ arch/armv7l/ gcc-linaro- 4.6-2011. 12-armv7l- natty-cbuild21 cortexa9r1/ bin/gcc -c -g -O2 TextDiagnosticP rinter2. ii rinter2. ii: In member function 'void clang:: TextDiagnosticP rinter: :EmitCaretDiagn ostic(clang: :SourceLocation , clang:: CharSourceRange *, unsigned int, const clang:: SourceManager& , const clang::FixItHint*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)': rinter2. ii:29848: 1: error: unable to find a register to spill in class 'LO_REGS' rinter2. ii:29848: 1: error: this is the insn:
(and: SI (ltu:SI (reg/v:SI 1356 [ OnMacroInst ])
(reg/ v:SI 1358 [ MacroSkipEnd ]))
( geu:SI (reg/v:SI 1356 [ OnMacroInst ])
(reg/ v:SI 1357 [ MacroSkipStart ]))))
(clobber (reg:CC 24 cc)) rinter2. ii:29667 282 {*and_scc_ scc_nodom} list:REG_ UNUSED (reg:CC 24 cc) rinter2. ii:29848: confused by earlier errors, bailing out
2-tcpanda03-
TextDiagnosticP
TextDiagnosticP
TextDiagnosticP
(insn 137 150 138 3 (parallel [
(set (reg/v:SI 208 [ Suppressed ])
]) TextDiagnosticP
(expr_
(nil)))
TextDiagnosticP
The work-around is to compile at -O1. The fault does not exist in gcc-4.5.3, gcc-4.6.2, or gcc-4.7~svn182152. The fault was introduced in the 2011.09 release.
I've set it to medium priority as it is a ftbfs and a work-around exists.