Sciweavers

CC
1998
Springer

Live Range Splitting in a Graph Coloring Register Allocator

13 years 4 months ago
Live Range Splitting in a Graph Coloring Register Allocator
Graph coloring is the dominant paradigm for global register allocation [8, 7, 4]. Coloring allocators use an interference graph, Z, to model conflicts that prevent two values from sharing a register. Nodes in 2: represent live ranges. An edge between two nodes indicates that they are simultaneously live azld, thus, cannot share a register. The allocator tries to construct a k-coloring of 2:, for k equal to the number of registers on the target machine. If it succeeds, it maps the colors onto the machine registers to produce an allocation. Unfortunately, it may not discover a k-coloring. In that case, it sp///s some live ranges by saving their values to memory. Early coloring allocators spilled live ranges completely - at each definition and use. This approach often introduces more spill code than necessary. This paper presents a global approach that avoids some spill code by splitting the live range, breaking it into smaller pieces. We are not the first to study this problem. Bergner e...
Keith D. Cooper, L. Taylor Simpson
Added 21 Dec 2010
Updated 21 Dec 2010
Type Journal
Year 1998
Where CC
Authors Keith D. Cooper, L. Taylor Simpson
Comments (0)