The program dependence graph and its use in optimization

24Citations
Citations of this article
245Readers
Mendeley users who have this article in their library.
Get full text

Abstract

In this paper we present an intermediate program representation, called a program dependence graph or PDG, which summarizes not only the data dependences of each operation but also summarizes the control dependences of the operations. Data dependences represent only the relevant data flow relationships of the program. Analagously, control dependences represent only the relevant control flow relationships of the program, in contrast to the usual control flow graph. The PDG allows transformations such as vectorization, which previously required special treatuent of control dependence, to be performed in a manner which is uniform for both control and data dependences. Program transformations which require interaction of the two can also be easily handled by the representation. As an example, a new incremental approach to modifying data dependences resulting from branch deletion is introduced. Another value of our representation is that many traditional optimizations operate more efficiently on the PDG. Since dependences in the PDG connect computationally relevant parts of the program, a single walk of these dependences is sufficient to perform many optimizations.

Cite

CITATION STYLE

APA

Ferrante, J., Ottenstein, K. J., & Warren, J. D. (1984). The program dependence graph and its use in optimization. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 167 LNCS, pp. 125–132). Springer Verlag. https://doi.org/10.1007/3-540-12925-1_33

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free