This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/55247] [4.8 Regression] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 10 Nov 2012 09:22:03 +0000
- Subject: [Bug rtl-optimization/55247] [4.8 Regression] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
- Auto-submitted: auto-generated
- References: <bug-55247-4@http.gcc.gnu.org/bugzilla/>
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).