Quality and Speed in Linear-scan Register Allocation

25Citations
Citations of this article
22Readers
Mendeley users who have this article in their library.

Abstract

A linear-scan algorithm directs the global allocation of register candidates to registers based on a simple linear sweep over the program being compiled. This approach to register allocation makes sense for systems, such as those for dynamic compilation, where compilation speed is important. In contrast, most commercial and research optimizing compilers rely on a graph-coloring approach to global register allocation. In this paper, we compare the performance of a linear-scan method against a modern graph-coloring method. We implement both register allocators within the Machine SUIF extension of the Stanford SUIF compiler system. Experimental results show that linear scan is much faster than coloring on benchmarks with large numbers of register candidates. We also describe improvements to the linear-scan approach that do not change its linear character, but allow it to produce code of a quality near to that produced by graph coloring.

Cite

CITATION STYLE

APA

Traub, O., Holloway, G., & Smith, M. D. (1998). Quality and Speed in Linear-scan Register Allocation. SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 33(5), 142–151. https://doi.org/10.1145/277652.277714

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free