Demand-Driven Register Allocation

Todd A Proebsting, Charles N. Fischer

Research output: Contribution to journalArticle

10 Scopus citations


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 languageEnglish (US)
Pages (from-to)683-710
Number of pages28
JournalACM Transactions on Programming Languages and Systems
Issue number6
Publication statusPublished - Nov 1996



  • Algorithms
  • D.3.4 [Programming Languages]: Processors - Code generation;optimization
  • Languages
  • Optimizing compiler
  • Performance
  • Theory

ASJC Scopus subject areas

  • Computer Graphics and Computer-Aided Design
  • Software

Cite this