loop hoisting fails

Paulo J. Matos pocmatos@gmail.com
Thu Feb 10 15:04:00 GMT 2011


On 09/02/11 15:57, Ian Lance Taylor wrote:

> For your processor it sounds like you should make a constant more
> expensive than a register for an outer code of SET.  You're right that
> the cost should really depend on the destination of the set but
> unfortunately I don't know if you will see that.

Increasing the cost of constants slightly for outer code set actually 
works. It blocks cse from doing the transformation but then gcse comes 
and does the transformation without consulting costs. That makes the 
cost change pretty useless.

Also, saying that 0 with a set is slightly more expensive than a 
register is also a mistake since it depends on the destination of the 0. 
But then again I guess this is a gcc constraint which everyone has 
probably to live with.



More information about the Gcc mailing list