Abstract. Aggressive compilers employ a larger number of well understood optimizations in the hope of improving compiled code quality. Unfortunately, these optimizations require a variety of intermediate program representations. A first step towards unifying these optimizations to a common intermediate representation is described. The representation chosen is the program dependence graph, which captures both control-flow and data-flow information from a program. The optimization of (interprocedural) constant propagation is studied. The algorithm developed combines a program dependence graph called the system dependence graph (SDG) with the ideas of data-flow computing and graph rewriting. The algorithm safely finds the classes of constants found by other intraprocedural and intraprocedural constant propagation algorithms. In addition, the SDG allows constants to propagate through procedures. This enables the algorithm to discover constants in a calling procedure even thought no constants exist in the called procedure.
Another approach uses system dependence graphs (SDG) to represent the data-flow and control-flow of a program REF .
Interprocedural Constant Propagation using Dependence Graphs and a Data-Flow Model
In International Conference on Compiler Construction
Computer Science