[PATCH] Fix PR middle-end/28690, indexed load/store performance + reload bug

Ulrich Weigand uweigand@de.ibm.com
Fri Dec 8 17:15:00 GMT 2006


Michael Matz wrote:

> The constraints in that instruction seem to not forbid reg 65.  Hence 
> global (in fact regclass.c) has no reason to believe that it can not be 
> used for that operand (the register allocator is driven only by the 
> constraints as far as register classes are concerned).  The predicate must 
> not reject registers which the constraints accept.  If for some reason you 
> need to reject some hardregs already in the predicate then you need to 
> create a new register class which also excludes that register and use that 
> in the constraints.

That's what I thought at first, but operand 0 in *addsi3_internal has
only 'r' as constraint, which should be interpreted as GENERAL_REGS,
and that class does not contain reg 65 ...

Any idea why global/regclass might not respect that?

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com



More information about the Gcc-patches mailing list