https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69195

Peter Bergner <bergner at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bergner at gcc dot gnu.org

--- Comment #8 from Peter Bergner <bergner at gcc dot gnu.org> ---
(In reply to Vladimir Makarov from comment #7)
> So it is probably a long lasting latent bug of reload.  It would be better
> to work on switching ppc to LRA by default.  But it might be too late for
> gcc6 and somebody should fix it in reload.

We are planning on moving ppc to LRA, but there are still a bug or two that
needs fixing before we switch to LRA and now it's too late for gcc6.


> Unfortunately I have not time to do this.

If no one else is looking into this (let me know if you are), I'll have a look.



> It is a legitimate.  Reload pass decides later to use equiv memory extending
> range of p172 and doesn't check that it is wrong.
> 
> LRA also uses equiv memory with p172 for a spilled pseudo but it *checks*
> that the transformation is legitimate.  It finds that it is wrong and makes
> a correction by spilling p172 first and then reassigning free r30 to it.
> 
> As I remember the old global and local passes did not take equivalences into
> account and could have assigned p172 and p185 to the same reg as well.

Vlad, can you point me to the LRA code that checks whether using the equiv
memory is legitimate or not before using it?  I'm guessing I'll need to make a
similar change to reload, so I'd like to see how LRA is doing it.

Reply via email to