skip to main content
10.1145/2591635.2591640acmconferencesArticle/Chapter ViewAbstractPublication PagesicsConference Proceedingsconference-collections
research-article

Author retrospective for code scheduling and register allocation in large basic blocks

Published: 10 June 2014 Publication History

Abstract

In 1987 we were working at the University of Wisconsin-Madison with Jim Smith, J. T. Hsieh, Koujuch Liou and Andrew Pleszkun on PIPE [4], an unorthodox 'decoupled access-execute processor.' The driving innovation of PIPE was the separation of instructions dealing with memory through a separate and independent instruction stream racing ahead, initiating load and store instructions in-order, synchronized only with other instructions through architectural queues. The queues eliminated the need for allocating and managing temporary registers.
While the problems of register allocation and instruction scheduling were traditionally treated independently, the genesis of this paper came while developing an optimizing compiler for PIPE, with the insight that in a conventional architecture these two closely related problems have conflicting goals that could be played off against each other to maximize benefit: Code scheduling uses as many temporary registers as possible to achieve a higher level of instruction-level parallelism (ILP), while register allocation minimizes the use of temporary registers so that more data items could be allocated to the available registers. As we gained more experience in optimizing for parallel programs, we came to understand that such conflicting goals were commonplace in the trade-off between parallelism and locality [2].
This work introduced the concept of the DAG-driven register allocation. We defined two terms, width and height of a DAG, in the context of code scheduling. The width of a DAG is the maximal number of mutually independent nodes requiring a destination (i.e. target) register and the height of a DAG is the length of its critical path. The shape of the DAG can be changed due to register allocation. For example, while the width can be reduced by reusing registers, the height could be increased. The purpose of DAG-driven register allocation is to minimize the height while keeping the width smaller than the number of available registers.

References

[1]
http://www.spec.org/benchmarks.html.
[2]
J. M. Anderson and M. S. Lam. Global optimizations for parallelism and locality on scalable parallel machines. SIGPLAN Not., 28(6):112--125, June 1993.
[3]
C. Bienia, S. Kumar, J. P. Singh, and K. Li. The parsec benchmark suite: Characterization and architectural implications. In Proceedings of the 17th International Conference on Parallel Architectures and Compilation Techniques, PACT '08, pages 72--81, New York, NY, USA, 2008. ACM.
[4]
J. R. Goodman, J.-t. Hsieh, K. Liou, A. R. Pleszkun, P. B. Schechter, and H. C. Young. Pipe: A vlsi decoupled architecture. SIGARCH Comput. Archit. News, 13(3):20--27, June 1985.
[5]
C. Lattner and V. Adve. Llvm: A compilation framework for lifelong program analysis & transformation. In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization, CGO '04, Washington, DC, USA, 2004. IEEE Computer Society.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ACM International Conference on Supercomputing 25th Anniversary Volume
June 2014
94 pages
ISBN:9781450328401
DOI:10.1145/2591635
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 June 2014

Check for updates

Qualifiers

  • Research-article

Acceptance Rates

Overall Acceptance Rate 629 of 2,180 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 99
    Total Downloads
  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media