Demand-Driven Register Allocation

Todd A Proebsting, Charles N. Fischer

Research output: Contribution to journalArticle

10 Citations (Scopus)

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

Fingerprint

Scheduling
Costs

Keywords

  • 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

Demand-Driven Register Allocation. / Proebsting, Todd A; Fischer, Charles N.

In: ACM Transactions on Programming Languages and Systems, Vol. 18, No. 6, 11.1996, p. 683-710.

Research output: Contribution to journalArticle

@article{caeeb813ff4d425695f6408eeaa8f645,
title = "Demand-Driven Register Allocation",
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.",
keywords = "Algorithms, D.3.4 [Programming Languages]: Processors - Code generation;optimization, Languages, Optimizing compiler, Performance, Theory",
author = "Proebsting, {Todd A} and Fischer, {Charles N.}",
year = "1996",
month = "11",
language = "English (US)",
volume = "18",
pages = "683--710",
journal = "ACM Transactions on Programming Languages and Systems",
issn = "0164-0925",
publisher = "Association for Computing Machinery (ACM)",
number = "6",

}

TY - JOUR

T1 - Demand-Driven Register Allocation

AU - Proebsting, Todd A

AU - Fischer, Charles N.

PY - 1996/11

Y1 - 1996/11

N2 - 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.

AB - 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.

KW - Algorithms

KW - D.3.4 [Programming Languages]: Processors - Code generation;optimization

KW - Languages

KW - Optimizing compiler

KW - Performance

KW - Theory

UR - http://www.scopus.com/inward/record.url?scp=0030287935&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0030287935&partnerID=8YFLogxK

M3 - Article

VL - 18

SP - 683

EP - 710

JO - ACM Transactions on Programming Languages and Systems

JF - ACM Transactions on Programming Languages and Systems

SN - 0164-0925

IS - 6

ER -