Title :
Techniques for Region-Based Register Allocation
Author_Institution :
Java, Compilers & Tools Lab., Hewlett-Packard Co., Cupertino, CA
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.
Keywords :
optimising compilers; HP- global allocator; HP-UX C-C++-Fortran production compilers; SPEC2006FP; allocation quality improvement; region-based register allocation; Algorithm design and analysis; Engines; Ground penetrating radar; Java; Laboratories; Optimizing compilers; Processor scheduling; Production; Registers; Runtime; region-based compilation; register allocation;
Conference_Titel :
Code Generation and Optimization, 2009. CGO 2009. International Symposium on
Conference_Location :
Seattle, WA
Print_ISBN :
978-0-7695-3576-0
DOI :
10.1109/CGO.2009.31