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: 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





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