This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Error : Unrecognizable insn
- From: Andrew Haley <aph at redhat dot com>
- To: Mosfet <forumer at smartmobili dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Fri, 27 Jun 2008 11:42:24 +0100
- Subject: Re: Error : Unrecognizable insn
- References: <641ce84a32a7806aa6ea59128d08ace5@localhost>
Mosfet wrote:
> We are trying to build a language D cross compiler for arm smartphone
> running under Windows Ce. It is based on gcc 4.1.x and we have used a patch
> to add the D front end (http://dgcc.sourceforge.net/). It seems that we
> successed in building the D cross compiler, but we have troubles with the
> phobos library, which is the basic library of the D language. Here is the
> first error that we got :
>
> /home/baptiste/cegcc/src/gcc/libphobos/std/c/windows/com.d: In member
> function 'AddRef':
> /home/baptiste/cegcc/src/gcc/libphobos/std/c/windows/com.d:225: error:
> unrecognizable insn:
> (call_insn/j 13 12 14 0
> /home/baptiste/cegcc/src/gcc/libphobos/std/c/windows/com.d:223 (parallel [
> (set (reg:SI 0 r0)
> (call (mem:SI (reg/f:SI 105) [0 S4 A32])
> (const_int 0 [0x0])))
> (return)
> (use (const_int 0 [0x0]))
> ]) -1 (nil)
> (nil)
> (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
> (nil)))
> /home/baptiste/cegcc/src/gcc/libphobos/std/c/windows/com.d:225: internal
> compiler error: in extract_insn, at recog.c:2084
>
> We have tried to comment the line 225, of course it temporary solved this
> problem but we got similar errors at other lines.
>
> Can anybody explains me what means the "unrecognizable insn" error ?
It simply means that this pattern doesn't correspond to a machine
instruction. It's a call in parallel with a return, which for ARM
corresponds to a sibcall.
However, it is very weird in that the return value of the function is
written to register zero even though it isn't used. Is this a
constructor, by any chance?
Try -fno-optimize-sibling-calls
Andrew.