Global Register Allocation Based on Graph Fusion.

Abstract

A register allocator must effectively deal with three issues: live range splitting, live range spilling, and register assignment. This paper presents a new coloring-based global register allocation algorithm that addresses all three issues in an integrated way: the algorithm starts with an interference graph for each region of the program, where a region can be a basic block, a loop nest, a superblock, a trace, or another combination of basic blocks. Region formation is orthogonal to register allocation in this framework. Then the interference graphs for adjacent regions are fused to build up the complete interference graph. The algorithm delays decisions on splitting, spilling, and register assignment, and therefore, the register allocation may be better than what is obtained by a Chatin-style allocator. This algorithm uses execution probabilities, derived from either profiles or static estimates, to guide fusing interference graphs, allowing an easy integration of this register allocator into a region-based compiler.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Mar 01, 1996
Accession Number
ADA307735

Entities

People

  • Ali-reza Adl-tabatabai
  • Guei-yuan Lueh
  • Thomas Gross

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Algorithms
  • Boundaries
  • Compilers
  • Computer Science
  • Contrast
  • Debugging
  • Frequency
  • Guarantees
  • Hierarchies
  • Instructions
  • Language
  • Optimization
  • Probability
  • Redundancy
  • Scheduling (Production)
  • Splitting

Fields of Study

  • Computer science

Readers

  • Computer Vision.
  • Integrated Circuit Design and Technology.
  • Mathematical Modeling and Probability Theory.