[Bug rtl-optimization/55247] [4.8 Regression] internal compiler error: Max. number of generated reload insns per insn is achieved (90)

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Sat Nov 10 09:22:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55247

--- Comment #8 from Uros Bizjak <ubizjak at gmail dot com> 2012-11-10 09:22:03 UTC ---
(In reply to comment #3)
> There are 2 issues here:
> 
> 1. Should we use
> 
>     movdqu    (%eax), %xmm0    # 19    *movti_internal_rex64/4    [length = 5]
>     movdqa    %xmm0, (%rsp)    # 29    *movti_internal_rex64/5    [length = 5]
>
> to copy 16 bytes?

Yes, and this is the intention of all these "!" marks.

> 2. Should we split *movti_internal_rex64 if -mno-sse is used?

Movti is used for TARGET_64BIT only. Please keep in mind that *_doubleword
instructions operate on TImode values, so we rely completely on register
allocator to NOT allocate XMM register moves in this case. According to the
documentation, "!" means that alternative is OK if no reloading is needed, so
this fits our purpose to use SSE moves unless we move value directly to TImode
arithmetic operation (*_doubleword patterns).



More information about the Gcc-bugs mailing list