This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: PR target/40470: unable to find a register to spill in class âSSE_FIRST_REGâ
On Wed, 2009-06-17 at 17:33 -0700, Ian Lance Taylor wrote:
> Vladimir Makarov <vmakarov@redhat.com> writes:
>
> > I looked at this problem. It looks like
> >
> > xmm0=call
> > p666= xmm0
> > ...
> > insn in the question (spill failure because it needs xmm0)
> > ...
> > = p666, dead p666
> >
> > The combiner removes p666=xmm0 and uses xmm0 instead of p666 in the
> > last insn.
>
> That sounds like a bad idea, particularly if SMALL_REGISTER_CLASSES or
> FUNCTION_VALUE_REGNO_P (regno).
>
> Of course it would be nice if ra/reload handled this sort of thing
> better.
Vlad,
If combine is "fixed", shouldn't the IRA coalescer coalesce p666 with
xmm0 (assuming no other xmm0 uses during p666's lifetime) giving HJ
the code he wants without having to force things into hardregs too
early? Or doesn't the coalescer coalesce pseudos with hardregs?
Peter