Techniques for Region-Based Register Allocation

  • Authors:
  • Ivan D. Baev

  • Affiliations:
  • -

  • Venue:
  • Proceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Register allocation is an important component of every compiler and numerous studies have investigated ways to improve allocation quality or reduce allocation time. However, techniques proposed to reduce register allocation time tend to have a detrimental impact on application run-time. In this paper we propose three enhancements to region-based register allocation that not only provide scalable allocation times across multiple applications, but also improve application run-time. We have developed a register pressure based model to determine when using multiple regions is profitable, proposed the use of different regions for each register class, and designed a new region formation algorithm. Our implementation in HP-UX C/C++/Fortran production compilers led to 29% allocation time and 1.4% run-time improvements over a global allocator on the SPEC2006FP suite of benchmarks.