The program dependence graph and vectorization

  • Authors:
  • W. Baxter;H. R. Bauer, III

  • Affiliations:
  • Department of Computer Science, University of Wyoming, Laramie, Wyoming;Department of Computer Science, University of Wyoming, Laramie, Wyoming

  • Venue:
  • POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
  • Year:
  • 1989

Quantified Score

Hi-index 0.00

Visualization

Abstract

Previous attempts at vectorizing programs written in a sequential high level language focused on converting control dependences to data dependences using a mechanism known as IF-conversion. After IF-conversion vector optimizations are performed on a data dependence graph. However, IF-conversion is an irrevocable process which can introduce high run-time overhead if the input program is not amenable to vectorization.This paper uses a program dependence graph as the intermediate representation for a vectorizing compiler. A program dependence graph explicitly represents both control and data dependences, allowing guard values to be generated for vectorized statements. Techniques have been developed to perform code motion on vectorization candidates, to validly eliminate all unnecessary control and data dependence cycles, and to regenerate the newly vectorized program consistent with a topological ordering based on the control and data dependences.