This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Problem with reloading in a new backend...
- From: Andy H <hutchinsonandy at aim dot com>
- To: GCC Development <gcc at gcc dot gnu dot org>, stelian at popies dot net
- Date: Tue, 08 Apr 2008 20:09:56 -0400
- Subject: Re: Problem with reloading in a new backend...
Take at look at AVR target which is very similar.
Here onluy "d" constrained register accept constants (they are call used
registers too)
The AVR move pattern (*reloadinqi) has multiple constrain options "d"
against "i" being relevant. So check you have all the combinations
defined. You omitted "i" constraint but I dont know if that is relevant.
When "costing " is done, it walks thru constraints. You don't seem to
have many constrain combinations (since costs are lower than I typically
see for AVR). It will score on both EVEN and EIGHT and likely pick EVEN
because its bigger class. So I think that is perhaps reason. I think
order of classes maybe need to be changed or something else to prevent
problem with overlap (LOWER_EVEN? UPPER_EVEN)
But I could be completely wrong!
Andy