x86 Graph coloring register allocator

Hi all,

Just wanted to announce that I've implemented a preliminary version of a Chaitin-Briggs graph coloring register allocator for the LLVM x86 back-end.

Right now, as it stands, the allocator works correctly for the benchmarks that I tested it on (from the LLVM test suite and some of the SPEC benchmarks). It performs better than the local register allocator in terms of spills and the allocated code's execution time. I am still in the process of comparing it to the linear-scan allocator.

Currently, the allocator takes a considerable amount of time to finish allocating. I am working on ways to make it faster.

Chris and I (well, mostly Chris :)) are figuring out how to include this into the LLVM cvs. Once we've done that and the code can be downloaded, we'll post a message to this mailing list.