I can reliably produce an ICE with a source file with gcc 3.4.4 on m68k-elf. I
have stripped down the preprocessed source file considerably from the original,
and pretty much as far as I can go. My investigation appears to show it is
dependent on -funit-at-a-time which is why it is not constrained to a single
function.
It can be reproduced when compiled with:
m68k-elf-gcc -c -m5200 -O1 -funit-at-a-time parse.c
which outputs:
parse.c: In function `read_module':
parse.c:149: error: insn does not satisfy its constraints:
(insn 361 630 362 36 parse.c:37 (set (mem/s/j:SI (plus:SI (reg:SI 8 %a0)
(const_int 8 [0x8])) [0 <variable>.hint+0 S4 A16])
(mem:SI (plus:SI (reg/f:SI 14 %a6)
(reg:SI 0 %d0)) [0 hint+0 S4 A16])) 26 {*m68k.md:760} (nil)
(nil))
parse.c:149: internal compiler error: in reload_cse_simplify_operands, at
postreload.c:391
An earlier version of the sources could reproduce it at -O2, but this stripped
one only now does it with -O1 -funit-at-a-time.
It is highly dependent on just about every line of the input file. I would not
be at all surprised if it was not reproduceable on a heavily modified 3.4.4 or
on 4.0.0, which doesn't mean the problem is necessarily fixed.
I have tried the patch from bug 18421 without effect.
--
Summary: M68K Coldfire: ICE in reload_cse_simplify_operands
Product: gcc
Version: 3.4.4
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jifl-bugzilla at jifvik dot org
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: m68k-elf
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22049