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

Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-12-19
                 CC|                            |ramana at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #11 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> ---
(In reply to Vladimir Makarov from comment #9)
> (In reply to Richard Earnshaw from comment #5)

> I think major problem is in wrong alternative choices as thumb lo/hi reg
> usage is complicated.

That is probably going to be the reason.

> 
> I take this bug very seriously.  If I cannot fix it till end of Jan (sorry,
> it is a vacation time), probably we should switch to reload pass for thumb.

Thanks very much for taking this so seriously.


> 
>  To be honest, I don't know why 12 is not fixed.  It results in using
> 12 by IRA and bigger code when even reload is used.  I believe it
> should fixed too.


According to the ABI r12 is a caller saved register. Am I correct in
understanding that we are taking out a caller-saved register to allow for lra
to be able to choose other low regs and thereby prevent movements to and from
r12 ? 

Taking out r12 will have performance implications, so any change here needs to
be benchmarked very carefully on all cores with Thumb1 and Thumb2 to make sure
that the impact. Additionally we shouldn't be needing to do this in ARM state,
so this patchlet as it stands is not enough.


regards
Ramana

Reply via email to