Abstract
A new global register allocation technique, demand-driven register allocation, is described. Demand-driven register allocation quantifies the costs and benefits of allocating variables to registers over live ranges so that high-quality allocations can be made. Local allocation is done first, and then global allocation is done iteratively beginning in the the most deeply nested loops. Because local allocation precedes global allocation, demand-driven allocation does not interfere with the use of well-known, high-quality local register allocation and instruction-scheduling techniques.
Original language | English (US) |
---|---|
Pages (from-to) | 683-710 |
Number of pages | 28 |
Journal | ACM Transactions on Programming Languages and Systems |
Volume | 18 |
Issue number | 6 |
DOIs | |
State | Published - Nov 1996 |
Keywords
- Algorithms
- D.3.4 [Programming Languages]: Processors - Code generation;optimization
- Languages
- Optimizing compiler
- Performance
- Theory
ASJC Scopus subject areas
- Software