This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: discouraging register use
- From: Nick Ing-Simmons <nick at ing-simmons dot net>
- To: dj at redhat dot com
- Cc: gcc at gcc dot gnu dot org, rth at redhat dot com
- Date: Tue, 04 Jan 2005 11:50:24 +0000
- Subject: Re: discouraging register use
- References: <200412302354.iBUNsiBH002125@greed.delorie.com><20041231062116.GA12583@redhat.com><200501032022.j03KM6GG005893@greed.delorie.com>
- Reply-to: Nick Ing-Simmons <nick at ing-simmons dot net>
DJ Delorie <dj@redhat.com> writes:
>> > [(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.
In such a case it is probably worth generating the md file with
a perl script ?