Nothing Special   »   [go: up one dir, main page]

skip to main content
article
Free access

Register allocation & spilling via graph coloring

Published: 01 June 1982 Publication History

Abstract

In a previous paper we reported the successful use of graph coloring techniques for doing global register allocation in an experimental PL/I optimizing compiler. When the compiler cannot color the register conflict graph with a number of colors equal to the number of available machine registers, it must add code to spill and reload registers to and from storage. Previously the compiler produced spill code whose quality sometimes left much to be desired, and the ad hoe techniques used took considerable amounts of compile time. We have now discovered how to extend the graph coloring approach so that it naturally solves the spilling problem. Spill decisions are now made on the basis of the register conflict graph and cost estimates of the value of keeping the result of a computation in a register rather than in storage. This new approach produces better object code and takes much less compile time.

References

[1]
"The 801 minicomputer," G. Radin, Proceedings of the ACM Symposium on Architectural Support for Programming Languages and Operating Systems, March 1-3, 1982, Palo Alto, California.
[2]
"The history of language processor technology in IBM," F.E. Allen, IBM Journal of Research and Development 25 (1981), pp. 535-548.
[3]
"Measurement of code improvement algorithms," J. Cocke, P.W. Markstein, Information Processing 80, S.H. Lavington (ed.), North-Holland, Amsterdam, 1980, pp. 221-228.
[4]
"Register allocation via coloring," G.J. Chaitin, M.A. Auslander, A.K. Chandra, J. Cocke, M.E. Hopkins, P.W. Markstein, Computer Languages 6 (1981), pp. 47-57.
[5]
"Optimization of range checking," V. Markstein, J. Cocke, P. Markstein, this Proceedings.
[6]
"Higher Level Programming: Introduction to the Use of the Set-Theoretic Programming Language SETL," R.B.K. Dewar, E. Schonberg, J.T. Schwartz, Courant Institute, New York University, 1981.

Cited By

View all
  • (2024)Accelerate RISC-V Instruction Set Simulation by Tiered JIT CompilationProceedings of the 16th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3689490.3690399(12-22)Online publication date: 17-Oct-2024
  • (2024)Effective Bug Detection with Unused DefinitionsProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629576(720-735)Online publication date: 22-Apr-2024
  • (2024)JITSPMM: Just-in-Time Instruction Generation for Accelerated Sparse Matrix-Matrix MultiplicationProceedings of the 2024 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO57630.2024.10444827(448-459)Online publication date: 2-Mar-2024
  • Show More Cited By

Index Terms

  1. Register allocation & spilling via graph coloring

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 17, Issue 6
    Proceedings of the 1982 SIGPLAN symposium on Compiler construction
    June 1982
    347 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/872726
    Issue’s Table of Contents
    • cover image ACM Conferences
      SIGPLAN '82: Proceedings of the 1982 SIGPLAN symposium on Compiler construction
      June 1982
      357 pages
      ISBN:0897910745
      DOI:10.1145/800230

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 June 1982
    Published in SIGPLAN Volume 17, Issue 6

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)506
    • Downloads (Last 6 weeks)49
    Reflects downloads up to 14 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Accelerate RISC-V Instruction Set Simulation by Tiered JIT CompilationProceedings of the 16th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3689490.3690399(12-22)Online publication date: 17-Oct-2024
    • (2024)Effective Bug Detection with Unused DefinitionsProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629576(720-735)Online publication date: 22-Apr-2024
    • (2024)JITSPMM: Just-in-Time Instruction Generation for Accelerated Sparse Matrix-Matrix MultiplicationProceedings of the 2024 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO57630.2024.10444827(448-459)Online publication date: 2-Mar-2024
    • (2024)BitEA: BitVertex Evolutionary Algorithm to Enhance Performance for Register AllocationIEEE Access10.1109/ACCESS.2024.344659612(115497-115514)Online publication date: 2024
    • (2023)Rapid: Region-Based Pointer DisambiguationProceedings of the ACM on Programming Languages10.1145/36228597:OOPSLA2(1729-1757)Online publication date: 16-Oct-2023
    • (2023)Let Coarse-Grained Resources Be Shared: Mapping Entire Neural Networks on FPGAsACM Transactions on Embedded Computing Systems10.1145/360910922:5s(1-23)Online publication date: 31-Oct-2023
    • (2023)Experience Deploying Graph Applications on GPUs with SYCLProceedings of the 52nd International Conference on Parallel Processing Workshops10.1145/3605731.3605744(30-39)Online publication date: 7-Aug-2023
    • (2023)BcBench: Exploring Throughput Processor Designs based on Blockchain BenchmarkingProceedings of the 38th ACM/SIGAPP Symposium on Applied Computing10.1145/3555776.3577701(88-97)Online publication date: 27-Mar-2023
    • (2023)Experimenting with Hybrid Quantum Optimization in HPC Software Stack for CPU Register Allocation2023 IEEE International Conference on Quantum Computing and Engineering (QCE)10.1109/QCE57702.2023.10197(134-140)Online publication date: 17-Sep-2023
    • (2023)An Investigation into the Security of Register Allocation with Spilling and Splitting2023 IEEE Computer Society Annual Symposium on VLSI (ISVLSI)10.1109/ISVLSI59464.2023.10238662(1-6)Online publication date: 20-Jun-2023
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media