loop.c bugfix

Bernd Schmidt bernds@redhat.co.uk
Mon Oct 23 02:29:00 GMT 2000


On Fri, 20 Oct 2000, Richard Kenner wrote:

> On HP PA, certain patterns are only valid if one register has
> REGNO_POINTER_FLAG (e.g., reg + reg in a MEM).  But loop.c will substitute
> one pseudo for another and assume it's OK.  It is only if REGNO_POINTER_FLAG
> is copied.

This could be argued to be a bug in the PA backend.
I'm sure that quite a few of the optimizer passes assume that substituting one
pseudo for another is always valid.  If we decide to disallow this, then I'm
pretty sure we'll need to add a whole lot more code than this patch in loop.c.
We certainly should add documentation.

IMHO this patch is a bad idea, and we should change the PA port instead.
These special cases for one particular port will make gcc much less
maintainable in the long run.


Bernd



More information about the Gcc-patches mailing list