On 12/23/10 09:50, Vladimir Makarov wrote:

Defining classes for pseudos is already one of the most expensive operation in IRA. Looking at the flow would make it even more complicated (I even don't know how to use this to improve the allocation because it means live range splitting before coloring and before defining classes which could help do live range splitting reasonably taking register pressure into account).
I've often wondered if we could use some of the class information to guide range splitting. If a pseudo has contexts where it must be in class A and other contexts where it could be in class B, then there may be a reasonable split point where we could split the pseudo so that the split pseudos could be allocated into A & B respectively.

I looked at this eons ago with trying to split pseudos which had to be allocated to a particular hard reg over a small range, but could be allocated in a much larger class of regs elsewhere. It worked, but was unmaintainable. The other downside is we had defined the problem so narrowly that while the generated code clearly looked better, the net effect was unmeasurable as the reloads we avoided were typically outside of loops.

Jeff

Reply via email to