posted on 1993-01-01, 00:00authored byDavid Koes, Seth C. Goldstein
Graph coloring is the de facto standard technique for register allocation within a compiler. In this paper
we examine the importance of the quality of the coloring algorithm and various extensions of the basic
graph coloring technique by replacing the coloring phase of the GNU compiler’s register allocator with an
optimal coloring algorithm. We then extend this optimal algorithm to incorporate various extensions such
as coalescing and preferential register assignment. We find that using an optimal coloring algorithm has
surprisingly little benefit and empirically demonstrate the benefit of the various extensions.