Decoupled graph-coloring register allocation with hierarchical aliasing

  • Authors:
  • André L. C. Tavares;Quentin Colombet;Mariza A. S. Bigonha;Christophe Guillon;Fernando M. Q. Pereira;Fabrice Rastello

  • Affiliations:
  • DCC - ICEx/UFMG;ENS Lyon;DCC - ICEx/UFMG;STMicroelectronics;DCC - ICEx/UFMG;ENS Lyon

  • Venue:
  • Proceedings of the 14th International Workshop on Software and Compilers for Embedded Systems
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Recent results have shown how to do graph-coloring-based register allocation in a way that decouples spilling from register assignment. This decoupled approach has the main advantage of simplifying the implementation of register allocators. However, the decoupled model, as described in previous works, faces many problems when dealing with register aliasing, a phenomenon typical in architectures usually seen in embedded systems, such as ARM. In this paper we introduce the semi-elementary form, a program representation that brings decoupled register allocation to architectures with register aliasing. The semi-elementary form is much smaller than program representations used by previous decoupled solutions; thus, leading to register allocators that perform better in terms of time and space. Furthermore, this representation reduces the number of copies that traditional allocators insert into assembly programs. We have empirically validated our results by showing how our representation improves two well known graph coloring based allocators, namely the Iterated Register Coalescer (IRC), and Bouchez et al.'s brute force (BF) method, both augmented with Smith et al. extensions to handle aliasing. Running our techniques on SPEC CPU 2000, we have reduced the number of nodes in the interference graphs by a factor of 4 to 5; hence, speeding-up allocation time by a factor of 3 to 5. Additionally the semi-elementary form reduces by 8% the number of copies that IRC leaves uncoalesced.