On 11/06/2011 03:19 AM, Dimitrios Apostolou wrote:
I understand major hassle is when the register file is big, too much data is being copied on a function call, when it has a HARD_REG_SET as a pass by value parameter. So I did some testing on SPARC, which has the biggest register file I know of, and there is a small performance regression indeed. On the other hand I really like the code reduction in hard-reg-set.h. So how should I proceed? FWIW I'm already testing passing the parameter by reference in the hottest functions.
What about adding a macro indirection to more functions (like you did with SET_HARD_REG_BIT and friends), so that pass-by-value can be changed to pass-by-reference without affecting all the uses throughout the compiler?
Paolo