Jump to content

Program dependence graph: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Fixed tense
Removed duplicate information
Line 8: Line 8:
A '''Program Dependence Graph''' ('''PDG''') is a [[directed graph]] of a program's [[Control dependency|control]] and [[Data dependency|data dependencies]]. Nodes represent program statements and edges represent dependencies between these statements.
A '''Program Dependence Graph''' ('''PDG''') is a [[directed graph]] of a program's [[Control dependency|control]] and [[Data dependency|data dependencies]]. Nodes represent program statements and edges represent dependencies between these statements.


PDGs are used in optimization, debugging, and understanding program behavior. These dependencies are used during [[dependence analysis]] stage in [[optimizing compiler|optimizing compilation]] to make transformations to allow for [[Parallelism (computing)|parallelism]]. Nodes and edges in a PDG may have attributes associated with them, representing variables read from or written to, or the type of dependency they represent.<ref>{{cite journal |author=[[Jeanne Ferrante]] |last2=Ottenstein |first2=Karl J. |last3=Warren |first3=Joe D. |date=July 1987 |title=The Program Dependence Graph and its Use in Optimization |url=https://www.cs.utexas.edu/~pingali/CS395T/2009fa/papers/ferrante87.pdf |journal=ACM Transactions on Programming Languages and Systems |language=en |volume=9 |issue=3 |pages=319–349 |citeseerx=10.1.1.101.27 |doi=10.1145/24039.24041 |s2cid=505075}}</ref>
PDGs are used in optimization, debugging, and understanding program behavior. These dependencies are used during [[dependence analysis]] stage of [[optimizing compiler|optimizing compilation]] to make transformations to allow for [[Parallelism (computing)|parallelism]].<ref>{{cite journal |author=[[Jeanne Ferrante]] |last2=Ottenstein |first2=Karl J. |last3=Warren |first3=Joe D. |date=July 1987 |title=The Program Dependence Graph and its Use in Optimization |url=https://www.cs.utexas.edu/~pingali/CS395T/2009fa/papers/ferrante87.pdf |journal=ACM Transactions on Programming Languages and Systems |language=en |volume=9 |issue=3 |pages=319–349 |citeseerx=10.1.1.101.27 |doi=10.1145/24039.24041 |s2cid=505075}}</ref>


==See also==
==See also==

Revision as of 14:56, 26 June 2024

A Program Dependence Graph (PDG) is a directed graph of a program's control and data dependencies. Nodes represent program statements and edges represent dependencies between these statements.

PDGs are used in optimization, debugging, and understanding program behavior. These dependencies are used during dependence analysis stage of optimizing compilation to make transformations to allow for parallelism.[1]

See also

Dependency graph

References

  1. ^ Jeanne Ferrante; Ottenstein, Karl J.; Warren, Joe D. (July 1987). "The Program Dependence Graph and its Use in Optimization" (PDF). ACM Transactions on Programming Languages and Systems. 9 (3): 319–349. CiteSeerX 10.1.1.101.27. doi:10.1145/24039.24041. S2CID 505075.