Internal error egcs-2.92.17 with -O3 -march=pentiumpro

Laurent Bonnaud
Thu Nov 12 11:43:00 GMT 1998

[I sent this message as a private reply to Martin, but his username is
unknown at, so i send it to the list.]

>>>>> "Martin" == Martin Buchholz <> writes:
Martin> (martin@lasker) ~/src $ egcs -O3 -march=pentiumpro -c event-stream.i
Martin> event-stream.i: In function `Fnext_event':
Martin> event-stream.i:11829: Could not split insn
Martin> (insn 2838 2836 3257 (set (reg/v:SI 3 %ebx)
Martin>         (if_then_else:SI (lt:SI (reg:SI 4 %esi)
Martin>                 (mem/s:SI (plus:SI (reg:SI 5 %edi)
Martin>                         (const_int 4)) 2))
Martin>             (reg:SI 0 %eax)
Martin>             (mem/s:SI (plus:SI (mem/s:SI (plus:SI (reg:SI 6 %ebp)
Martin>                             (const_int 16)) 0)
Martin>                     (const_int 4)) 2))) 351 {movsicc+2} (insn_list 2836 (insn_list 3254 (insn_list 3251 (insn_list 2836 (nil)))))
Martin>     (expr_list:REG_DEAD (reg:SI 4 %esi)
Martin>         (expr_list:REG_DEAD (reg:SI 5 %edi)
Martin>             (expr_list:REG_DEAD (reg:SI 0 %eax)
Martin>                 (nil)))))
Martin> /hack/import/egcs-19981026/gcc/toplev.c:1374: Internal compiler error in function fatal_insn
Martin> (martin@lasker) ~/src $ egcs --version
Martin> egcs-2.92.17
Martin> (martin@lasker) ~/src $ uname -a
Martin> Linux 2.1.105 #9 SMP Tue Jun 9 16:21:01 PDT 1998 i686 unknown
Martin> Both the -O3 and -march=pentiumpro options are required to cause the
Martin> crash.  Also, egcs 1.1a does NOT produce the same crash.
Martin> I can provide a (large) pre-processed source file to reproduce the
Martin> error, if desired.

I have just submitted a bug-report very much like yours.  Everything is
the same except two small differences:

 - Details of the message are a bit different.
 - The bug occurs with -O2.  But my source contains a C++ inline
   function, which has probably the same effect as -O3.

I managed to reduce the testcase to a reasonable number of lines.  Thus
it is more likely to attract the attention of somebody.  So when my bug
is fixed, yours has a chance to be fixed, too.



More information about the Gcc-bugs mailing list