Program Structure as a Basis for the Parallelization of Global Compiler Optimizations

Abstract

Optimizing compilers can produce very efficient code but incur a high compilation cost. Because interactions between arbitrary points in a program are possible, global compiler organizations are inherently expensive and in general there is no easy way to partition the data processed during global compiler optimizations into independent components. This thesis explores how program structure can be used to provide a basis for the parallelization for global compiler optimizations. Two concepts to obtain data parallelism in global compiler optimizations are described. The first concept uses program structure explicitly for the parallelization. Demonstrated by the program structure analytically to establish data partitioning points. The effectiveness of this concept is demonstrated in the parallelization of global register allocation via optimal coloring of a graph denoting register conflicts, an NP complete problem. A model for global register allocation in which program structure is used to analyze a register conflict graph is presented. The purpose of this analysis is to detect clique separators that partition a conflict graph into independent components that can be colored independently and combined to an overall coloring by renaming. Properties of live ranges in loops and conditionals are linked to characteristics of the conflict graph.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
May 15, 1992
Accession Number
ADA254554

Entities

People

  • Angelika Zobel

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Algorithms
  • Computations
  • Computer Architecture
  • Computer Programming
  • Computer Science
  • Computers
  • Computing System Architectures
  • Data Analysis
  • Frequency Domain
  • Hot Spots
  • Language
  • Measurement
  • Parallel Computing
  • Parallel Processing
  • Parallel Processors
  • Programming Languages
  • Scheduling (Production)

Readers

  • Computer Vision.
  • Operations Research
  • Parallel and Distributed Computing.