[moving to gcc@ to get input from a wider audience]

On Thu, Mar 10, 2011 at 06:47:20AM +0100, Hans-Peter Nilsson wrote:
> > From: Nathan Froyd <froy...@codesourcery.com>
> > On Thu, Mar 10, 2011 at 04:02:27AM +0100, Hans-Peter Nilsson wrote:
> > > PS. If you really feel for it, I won't stop you converting MMIX. :)
> > 
> > Heh.  I looked at doing MMIX; I think the only tricky thing might be
> > dealing with the 'U' constraint.
> 
> Hm.  Speaking of macros with semantics different depending on
> REG_OK_STRICT being defined (should be just register and address
> constraints), how do you do that in constraints.md?  I looked
> around but haven't found the answer.  I guess you've bumped into
> that problem a few times now, or some converted target will find
> out the hard way?
> 
> (Please CC any reply to gcc@)

I haven't ran into that problem; all the targets I've converted to
constraints.md haven't had constraints that changed based on strictness.
I think the right thing to do is depend on
reload_{in_progress,completed}
(cf. rs6000/predicates.md:volatile_memory_operand), but I freely admit
this is a part of the compiler that I'm not familiar with.

In fact, I think the only targets remaining for constraints.md are
(besides h8300, which I haven't received an ack on yet) are:

- mmix ('U' dependent on strictness);
- cris (all interesting constraints based on strictness, I think);
- m32c (tedious to convert due to m32c-specific encode_pattern).

so knowing how to deal with strictness would help a great deal.

-Nathan

Reply via email to