discouraging register use

DJ Delorie dj@redhat.com
Mon Jan 3 20:22:00 GMT 2005


> >   [(set (match_operand:SI 0 "" "c,c,?m,?m")
> >         (plus:SI (match_operand:SI 1 "" "0,0,0,0")
> > 		 (match_operand:SI 1 "" "c,?m,c,?m")))]
> 
> Yes, that looks plausible.  The other way isn't going to work because
> you penalize c at the same time as m by using "?cm".
> 
> Does it actually work?

One case I tried seems to work, but it will mean some REALLY long
constraint lists for some of the common insns.  I suppose I can skip
the generic move insns, as they shouldn't have too much bearing on
register selection, if I get all the other insns (which have shorter
constraint lists).

But it's a lot of work to fix up everything, I wanted to make sure I
wasn't missing something obvious before I started on it.



More information about the Gcc mailing list