This is the mail archive of the
mailing list for the GCC project.
Re: PATCH: PR target/40470: unable to fin d a register to spill in class âSSE_FIRST_REG â
- From: Jeff Law <law at redhat dot com>
- To: Graham Stott <graham dot stott at btinternet dot com>
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>, Vladimir Makarov <vmakarov at redhat dot com>, Steven Bosscher <stevenb dot gcc at gmail dot com>, Richard Guenther <richard dot guenther at gmail dot com>, gcc-patches at gcc dot gnu dot org, ubizjak at gmail dot com
- Date: Thu, 18 Jun 2009 15:43:18 -0600
- Subject: Re: PATCH: PR target/40470: unable to fin d a register to spill in class âSSE_FIRST_REG â
- References: <firstname.lastname@example.org>
Graham Stott wrote:
Jeff,I don't think I'd add MMX_REGS to the likely spilled classes -- that
would needless inhibit optimizations on the other xmm registers. xmm0
is the only member of FIRST_SSE_REGS, and that's the class we need to
add to CLASS_LIKELY_SPILLED_P.
cant_combine_insn_p looks to be where the combind should get rejected.
It uses CLASS_LIKELY_SPILLED (REGNO_REG_CLASS (REGNO (...)) to reject
the combine if it finds a HARD reg which is likely to be spilled.
Now on the x86 XMM0 is in MMX_REGS class which is NOT a likely spilled class hence it doen't get rejected.
Adding MMX_REGS to the set of likely spilled classes on x86 should do the