This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]