Keith D Cooper and Anshuman Dasgupta (2006)
Tailoring Graph Coloring Register Allocation for Runtime Compilation
In: Proceedings of the International Symposium on Code Generation and Optimization, IEEE Computer Society.
Just-in-time compilers are invoked during application execution and therefore need to ensure fast compilation times. Consequently, runtime compiler designers are averse to implementing compile-time intensive optimization algorithms. Instead, they tend to select faster but less effective transformations. In this paper, we explore this trade-off for an important optimization - global register allocation. We present a graph-coloring register allocator that has been redeisgned for runtime compilation. Compared to Cahitin-Briggs, a standard graph-coloring technique, the reformulated algorithm requires considerably less allocation time and produces allocation that are only marginally worse than those of Chaitin-Briggs. Our experimental results indicate that the allocator performs better than the linear-scan and Chaitin-Briggs allocators on most benchmarks in a runtime compilation environment. By incresing allocation efficiency and preserving optimization quality, the presented algorithm increases the suitability and profitability of a graph-coloring register allocation strategy for a runtime compiler.