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