Register allocation via coloring

  • Authors:
  • Gregory J. Chaitin;Marc A. Auslander;Ashok K. Chandra;John Cocke;Martin E. Hopkins;Peter W. Markstein

  • Affiliations:
  • IBM T. J. Watson Research Center, Yorktown Heights, NY 10598, U.S.A.;IBM T. J. Watson Research Center, Yorktown Heights, NY 10598, U.S.A.;IBM T. J. Watson Research Center, Yorktown Heights, NY 10598, U.S.A.;IBM T. J. Watson Research Center, Yorktown Heights, NY 10598, U.S.A.;IBM T. J. Watson Research Center, Yorktown Heights, NY 10598, U.S.A.;IBM T. J. Watson Research Center, Yorktown Heights, NY 10598, U.S.A.

  • Venue:
  • Computer Languages
  • Year:
  • 1981

Quantified Score

Hi-index 0.01

Visualization

Abstract

Register allocation may be viewed as a graph coloring problem. Each node in the graph stands for a computed quantity that resides in a machine register, and two nodes are connected by an edge if the quantities interfere with each other, that is, if they are simultaneously live at some point in the object program. This approach, though mentioned in the literature, was never implemented before. Preliminary results of an experimental implementation in a PL/I optimizing compiler suggest that global register allocation approaching that of hand-coded assembly language may be attainable.