Cited by 2,755Parallel Computing and Optimization TechniquesLogic, programming, and type systemsEmbedded Systems Design Techniques

The program dependence graph and its use in optimization

Open access
Ferrante, Jeanne, Ottenstein, Karl J., Warren, Joe D.·1987·ACM Transactions on Programming Languages and Systems

Abstract

In this paper we present an intermediate program representation, called the program dependence graph ( PDG ), that makes explicit both the data and control dependences for each operation in a program. Data dependences have been used to represent only the relevant data flow relationships of a program. Control dependences are introduced to analogously represent only the essential control flow relationships of a program. Control dependences are derived from the usual control flow graph. Many traditional optimizations operate more efficiently on the PDG. Since dependences in the PDG connect computationally related parts of the program, a single walk of these dependences is sufficient to perform many optimizations. The PDG allows transformations such as vectorization, that previously required special treatment of control dependence, to be performed in a manner that is uniform for both control and data dependences. Program transformations that require interaction of the two dependence types can also be easily handled with our representation. As an example, an incremental approach to modifying data dependences resulting from branch deletion or loop unrolling is introduced. The PDG supports incremental optimization, permitting transformations to be triggered by one another and applied only to affected dependences.

The claims and statistics of this paper haven’t been checked yet.

Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.

A few free checks a day · papers already verified open instantly · results are public

Integrity signals

Registry

Crossref · 10.1145/24039.24041

Cites

56 of 56 references verified0 citation errors · 0 not checkable

Statistics

Claims the paper makes

The claims and statistics of this paper haven’t been checked yet.

Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.

A few free checks a day · papers already verified open instantly · results are public

Self-check

Percentages, sums and reported differences re-computed from the paper’s own numbers.

The self-check needs the paper’s full text.

Cites

Flagged first, then by citations

Research works printed but not linked: 3

  1. [21]21. ELLCEY, S. J. The program dependence graph: interprocedural information representation and general space requirements. Master's thesis, Dept. of Computer Science, Michigan Technological Univ., Houghton, MI, Aug. 1985.
  2. [28]28. KAS'JANOV, V. N. Distinguishing hammocks in a directed graph. Soviet Math. DokZady 16, 5 (1975), 448-450.
  3. [31]31. KUCK, D. J., KUHN, R. H., LEASURE, B., AND WOLFE, M. The structure of an advanced vectorizer for pipelined processors. In Proceedings IEEE 4th International COMPSAC (Chicago, IL, Oct. 1980), IEEE, New York, 709-715.

Cited by

Sorted by citations

Authors
Ferrante, J., Ottenstein, K. J., & Warren, J. D.
Affiliations
  • IBM T. J. Watson Research Center, Yorktown Heights, NY
  • Michigan Technological University (US)
  • Rice University (US)
Venue
ACM Transactions on Programming Languages and Systems
Published
1987-07
Volume
9
Issue
3
Pages
319-349
ISSN
  • 0164-0925 (ISSN-L)
  • 1558-4593
OpenAlex
W2144344516
Cited by
2,755
References
56
Citations by year
2026: 61 · 2025: 72 · 2024: 87 · 2023: 83 · 2022: 87 · 2021: 83 · 2020: 61 · 2019: 74 · 2018: 83 · 2017: 69 · 2016: 97 · 2015: 88 · 2014: 112 · 2013: 124 · 2012: 97
FWCI
40.05
Type
journal article
Language
en
Open access
Locations
  • ACM Transactions on Programming Languages and Systems (publishedVersion)
  • Digital Commons - Michigan Tech (Michigan Technological University) (submittedVersion)
Funders
  • National Science Foundation (8404909, 8404463, 8203487, 8511439)
  • International Business Machines Corporation
Topics
  • Physical Sciences › Computer Science › Hardware and Architecture › Parallel Computing and Optimization Techniques
  • Physical Sciences › Computer Science › Artificial Intelligence › Logic, programming, and type systems
  • Physical Sciences › Computer Science › Hardware and Architecture › Embedded Systems Design Techniques
Keywords
program dependence graph, data dependencies, control dependence, program optimization, vectorization, control flow graph, incremental optimization, loop unrolling, program transformation

About these checks

Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.

Statistics and arithmetic are recomputed, not judged.

Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.

What counts as a claim ›How we measure confidence ›How we check this ›

Are you an author, or do you see a problem with this page? Request a review