Register Allocation

0Citations
Citations of this article
40Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Register allocation maps the variables of a program to physical memory locations: usually either CPU registers or the main memory. As there is only a small number of registers available in a CPU, the task of register allocation is also to decide which variables should be evicted from registers and at which program points to store and load them from memory (spilling). Furthermore, register allocation has to remove spurious copy instructions (copy coalescing) inserted by previous phases in the compilation process and to deal with allocation restrictions that the instruction set architecture and the runtime system impose (register targeting). Classical register allocation algorithms address these different issues with either complex and sometimes expensive schemes (usually graph-based), or simpler and faster (but less efficient) algorithms such as linear scan. The goal of this chapter is to illustrate how SSA form can help in designing both simpler and faster schemes with similar or even better quality than the most complex existing ones.

Cite

CITATION STYLE

APA

Bouchez Tichadou, F., & Rastello, F. (2022). Register Allocation. In SSA-based Compiler Design (pp. 303–328). Springer International Publishing. https://doi.org/10.1007/978-3-030-80515-9_22

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