This is the mail archive of the gcc@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: Undocumented anomaly with EXTRA_CONSTRAINTS


Hi,

On Tue, 9 Apr 2002, David S. Miller wrote:

>    I'm not quite sure what this has to do with only EXTRA_CONSTRAINT.  Any
>    'm' constraint accepts pseudos before reload and unassigned pseudos while
>    reloading.  Exactly because unassigned pseudos _are_ memory slots.
>
> Where is this documented?  :-)

Ohh I see.  Guess I stared too long at reload ;)  Indeed documenting this
might be usefull (if not already done so), like would be documenting
reload at all ;)  That pa.h macro probably is usefull globally, I'm just
not sure, how finegraned it should be.  I could think of the usefullness
of a POSSIBLY_MEM_P(rtx) (checking for MEM and before reload also pseudo,
while reload unassigned pseudos).  The pa.h macro as is is rather limited,
as it only does anything while reload.  But before reload pseudos are
valid memory too (constrain-wise at least).  After reload, of course only
real MEMs are valid.  Just to be complete: Also 'o' (offsetable mems)
accepts such pseudos in certain circumstances (although this remark
doesn't relate to any self-written extra constraints accepting mem's).

> That's the point of my entire email. If all one did was read md.texi,
> upon implementing EXTRA_CONSTRAINT for MEM objects this issue would
> not be apparent until the compiler started to fail.

Hmm, but you can define those EXTRA_CONSTRAINTS any way you like, or can't
you?  I.e. if you define one which accepts only a MEM rtx, are you saying
that this breaks, and it really also should accept a pseudo?  This should
only happen, if the pattern itself accepts that pseudo, which would be a
bug in the .md file, if there's no alternative whose constraints accept
the pseudo.


Ciao,
Michael.


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