Optimal register allocation in polynomial time

15Citations
Citations of this article
13Readers
Mendeley users who have this article in their library.

This article is free to access.

Abstract

A graph-coloring register allocator that optimally allocates registers for structured programs in polynomial time is presented. It can handle register aliasing. The assignment of registers is optimal with respect to spill and rematerialization costs, register preferences and coalescing. The register allocator is not restricted to programs in SSA form or chordal interference graphs. It assumes the number of registers is to be fixed and requires the input program to be structured, which is automatically true for many programming languages and for others, such as C, is equivalent to a bound on the number of goto labels per function. Non-structured programs can be handled at the cost of either a loss of optimality or an increase in runtime. This is the first optimal approach that has polynomial runtime and works for such a huge class of programs. An implementation is already the default register allocator in most backends of a mainstream cross-compiler for embedded systems. © 2013 Springer-Verlag.

Cite

CITATION STYLE

APA

Krause, P. K. (2013). Optimal register allocation in polynomial time. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 7791 LNCS, pp. 1–20). https://doi.org/10.1007/978-3-642-37051-9_1

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