[LLVMdev] Greedy register allocation

Jakob Stoklund Olesen stoklund at 2pi.dk
Tue May 3 15:35:50 PDT 2011


On May 3, 2011, at 3:24 PM, David A. Greene wrote:

> Jakob Stoklund Olesen <stoklund at 2pi.dk> writes:
> 
>> On May 3, 2011, at 12:03 PM, David A. Greene wrote:
> 
>>> Certainly.  I would ask that we keep linearscan around, if possible, as
>>> long as there are significant regressions like this.  Our customers tend
>>> to really, really care about performance.
>> 
>> That's reasonable, and it is also useful to keep it around as a reference when greedy breaks.
>> 
>> On the other hand, I really want to clean up the code surrounding
>> register allocation, and that is much easier to do after linear scan
>> is gone. There is a good chance it won't make it to the 3.0 release.
> 
> Believe me, I understand the desire to clean this code up.  What's
> particular about linearscan in this regard?  What parts are hard to
> clean up due to linearscan?

The new allocator doesn't use VirtRegRewriter. Deleting that alone will improve the average code quality significantly. The worst parts of LiveIntervalAnalysis.cpp can also be deleted.

Once all that code is gone, it is much easier to refactor the LiveIntervals interface.

/jakob




More information about the llvm-dev mailing list