Complete register allocation problems

Research output: Contribution to journalConference article

2 Citations (Scopus)

Abstract

The search for efficient algorithms for register allocation dates back to the time of the first Fortran compiler for the IBM 704. Since then, many variants of the problem have been considered; depending on two factors: (1) the particular model for registers, and (2) the definition of the term "computation of a program" e.g. Whether values may be computed more than once. We will show that several variants of the register allocation problem for straight line programs are polynomial complete. In particular we consider, (1) the case when each value is computed exactly once, and (2) the case when values may be recomputed as necessary. The completeness of the third problem considered is surprising. A straight line program starts with a set of initial values, and computes intermediate and final values. Suppose, for each value, the register that value must be computed into is preassigned. Then, (3) the problem of determining if there is a computation of the straight line program, that computes values into the assigned registers, is polynomial complete.

Original languageEnglish (US)
Pages (from-to)182-195
Number of pages14
JournalProceedings of the Annual ACM Symposium on Theory of Computing
DOIs
StatePublished - Apr 30 1973
Externally publishedYes
Event5th Annual ACM Symposium on Theory of Computing, STOC 1973 - Austin, United States
Duration: Apr 30 1973May 2 1973

Fingerprint

Polynomials

Keywords

  • Dag
  • Polynomial complete
  • Program optimization
  • Register allocation
  • Straight line program

ASJC Scopus subject areas

  • Software

Cite this

Complete register allocation problems. / Sethi, Ravi.

In: Proceedings of the Annual ACM Symposium on Theory of Computing, 30.04.1973, p. 182-195.

Research output: Contribution to journalConference article

@article{d0debc1bc4bb4f7fa725e5f9a360480f,
title = "Complete register allocation problems",
abstract = "The search for efficient algorithms for register allocation dates back to the time of the first Fortran compiler for the IBM 704. Since then, many variants of the problem have been considered; depending on two factors: (1) the particular model for registers, and (2) the definition of the term {"}computation of a program{"} e.g. Whether values may be computed more than once. We will show that several variants of the register allocation problem for straight line programs are polynomial complete. In particular we consider, (1) the case when each value is computed exactly once, and (2) the case when values may be recomputed as necessary. The completeness of the third problem considered is surprising. A straight line program starts with a set of initial values, and computes intermediate and final values. Suppose, for each value, the register that value must be computed into is preassigned. Then, (3) the problem of determining if there is a computation of the straight line program, that computes values into the assigned registers, is polynomial complete.",
keywords = "Dag, Polynomial complete, Program optimization, Register allocation, Straight line program",
author = "Ravi Sethi",
year = "1973",
month = "4",
day = "30",
doi = "10.1145/800125.804049",
language = "English (US)",
pages = "182--195",
journal = "Proceedings of the Annual ACM Symposium on Theory of Computing",
issn = "0737-8017",
publisher = "Association for Computing Machinery (ACM)",

}

TY - JOUR

T1 - Complete register allocation problems

AU - Sethi, Ravi

PY - 1973/4/30

Y1 - 1973/4/30

N2 - The search for efficient algorithms for register allocation dates back to the time of the first Fortran compiler for the IBM 704. Since then, many variants of the problem have been considered; depending on two factors: (1) the particular model for registers, and (2) the definition of the term "computation of a program" e.g. Whether values may be computed more than once. We will show that several variants of the register allocation problem for straight line programs are polynomial complete. In particular we consider, (1) the case when each value is computed exactly once, and (2) the case when values may be recomputed as necessary. The completeness of the third problem considered is surprising. A straight line program starts with a set of initial values, and computes intermediate and final values. Suppose, for each value, the register that value must be computed into is preassigned. Then, (3) the problem of determining if there is a computation of the straight line program, that computes values into the assigned registers, is polynomial complete.

AB - The search for efficient algorithms for register allocation dates back to the time of the first Fortran compiler for the IBM 704. Since then, many variants of the problem have been considered; depending on two factors: (1) the particular model for registers, and (2) the definition of the term "computation of a program" e.g. Whether values may be computed more than once. We will show that several variants of the register allocation problem for straight line programs are polynomial complete. In particular we consider, (1) the case when each value is computed exactly once, and (2) the case when values may be recomputed as necessary. The completeness of the third problem considered is surprising. A straight line program starts with a set of initial values, and computes intermediate and final values. Suppose, for each value, the register that value must be computed into is preassigned. Then, (3) the problem of determining if there is a computation of the straight line program, that computes values into the assigned registers, is polynomial complete.

KW - Dag

KW - Polynomial complete

KW - Program optimization

KW - Register allocation

KW - Straight line program

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

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

U2 - 10.1145/800125.804049

DO - 10.1145/800125.804049

M3 - Conference article

SP - 182

EP - 195

JO - Proceedings of the Annual ACM Symposium on Theory of Computing

JF - Proceedings of the Annual ACM Symposium on Theory of Computing

SN - 0737-8017

ER -