regclass oddity?

Jim Wilson wilson@specifix.com
Thu Mar 15 20:19:00 GMT 2007


Dave Korn wrote:
>   When regclass determines that placing an operand into either one of several
> register classes would have the same cost, it picks the numerically highest
> one in enum reg_class ordering.

One possible solution is to give the special registers a higher 
REGISTER_MOVE_COST to discourage their use.

Another solution is to use ! and ? in the constraints to increase the 
cost of alternatives that are inconvenient.

There is also CLASS_LIKELY_SPILLED_P which is supposed to discourage 
local-alloc from using registers in single-reg classes.  At least there 
is code for this in gcc-2.95.3.  It looks like things have changed in 
this area since then.
-- 
Jim Wilson, GNU Tools Support, http://www.specifix.com



More information about the Gcc mailing list