|
ABSTRACT
The value dependence graph (VDG) is a sparse dataflow-like representation that simplifies program analysis and transformation. It is a functional representation that represents control flow as data flow and makes explicit all machine quantities, such as stores and I/O channels. We are developing a compiler that builds a VDG representing a program, analyzes and transforms the VDG, then produces a control flow graph (CFG) [ASU86] from the optimized VDG. This framework simplifies transformations and improves upon several published results. For example, it enables more powerful code motion than [CLZ86, FOW87], eliminates as many redundancies as [AWZ88, RWZ88] (except for redundant loops), and provides important information to the code scheduler [BR91]. We exhibit a fast, one-pass method for elimination of partial redundancies that never performs redundant code motion [KFS92, DS93] and is simpler than the classical [MR79, Dha91] or SSA [RWZ88] methods. These results accrue from eliminating the CFG from the analysis/transformation phases and using demand dependences in preference to control dependences.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
AN90
|
|
| |
ASU86
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
 |
AWZ88
|
B. Alpern , M. N. Wegman , F. K. Zadeck, Detecting equality of variables in programs, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.1-11, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73561]
|
 |
BCT92
|
Preston Briggs , Keith D. Cooper , Linda Torczon, Rematerialization, Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation, p.311-321, June 15-19, 1992, San Francisco, California, United States
|
| |
BH92
|
Thomas Ball and Susan Horwitz. Slicing programs with arbitrary control flow. Technical Report 1128, University of Wisconsin - Madison, December 21, 1992.
|
| |
BJP91
|
|
 |
BMO90
|
Karl J. Ottenstein , Robert A. Ballance , Arthur B. MacCabe, The program dependence web: a representation supporting control-, data-, and demand-driven interpretation of imperative languages, Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation, p.257-271, June 1990, White Plains, New York, United States
|
 |
BR91
|
|
 |
CCF91
|
Jong-Deok Choi , Ron Cytron , Jeanne Ferrante, Automatic construction of sparse data flow evaluation graphs, Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.55-66, January 21-23, 1991, Orlando, Florida, United States
[doi> 10.1145/99583.99594]
|
 |
CF89
|
|
 |
CFR+89
|
R. Cytron , J. Ferrante , B. K. Rosen , M. N. Wegman , F. K. Zadeck, An efficient method of computing static single assignment form, Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.25-35, January 11-13, 1989, Austin, Texas, United States
[doi> 10.1145/75277.75280]
|
| |
CKB93
|
Philip L. Campbell, Ksheerabdhi Krishna, and Robert A. Ballance. Refining and defining the program dependence web. Technical Report CS93-6, University of New Mexico, Albuquerque, March 1993.
|
| |
Cli93a
|
|
| |
Cli93b
|
Cliff Click. From quads to graphs: An intermediate representation's journey. Submitted for publication, October 18, 1993.
|
 |
CLZ86
|
|
 |
Coc70
|
|
| |
CS70
|
John Cocke and Jacob T. Schwartz. Programming languages and their compilers. Technical report, Courant Institute, NYU, April 1970. Preliminary notes.
|
 |
Dha91
|
|
 |
DRZ92
|
Dhananjay M. Dhamdhere , Barry K. Rosen , F. Kenneth Zadeck, How to analyze large programs efficiently and informatively, Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation, p.212-223, June 15-19, 1992, San Francisco, California, United States
|
 |
DS93
|
|
| |
Ern93
|
Michael Ernst. Program slicing using the value dependence graph. In preparation, 1993.
|
| |
Fie92
|
John Field. A simple rewriting semantics for realistic imperative programs and its application to program analysis (preliminary report). In Proc. A CM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 98-107, San Francisco, June 1992. Published as Yale University Technical Report YALEU/DCS/RR-909.
|
 |
FKCX94
|
Lawrence Feigen , David Klappholz , Robert Casazza , Xing Xue, The revival transformation, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.421-434, January 16-19, 1994, Portland, Oregon, United States
[doi> 10.1145/174675.178043]
|
 |
FM85
|
|
 |
FMS88
|
|
 |
FOW87
|
|
 |
Har85
|
|
| |
Hav93
|
Paul Havlak. Construction of thinned gated singleassignment form. Draft -- Private distribution, February 20, 1993.
|
 |
HRB90
|
|
 |
JP93
|
|
| |
JPP93
|
|
 |
KRS92
|
Jens Knoop , Oliver Rüthing , Bernhard Steffen, Lazy code motion, Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation, p.224-234, June 15-19, 1992, San Francisco, California, United States
|
 |
MR79
|
|
| |
Ott78
|
Karl Joseph Ottenstein. Data-flow graphs as an intermediate program form. PhD thesis, Purdue University, August 1978.
|
| |
PBJ+90
|
|
 |
RWZ88
|
B. K. Rosen , M. N. Wegman , F. K. Zadeck, Global value numbers and redundant computations, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.12-27, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73562]
|
 |
SAF90
|
|
| |
SF93
|
Barbara Simons and Jeanne Ferrante. An efficient algorithm for constructing a control flow graph for parallel code. Technical Report TR 03.465, IBM, Santa Teresa Laboratory, San Jose, California, February 1993.
|
| |
SHKN76
|
T. A. Standish, D. C. Harriman, D. F. Kilber, and J. M. Neighbors. The Irvine program transformation catalogue. Technical Report 161, University of California at Irvine, Department of Information and Computer Science, January 1976.
|
| |
Ste93a
|
Bjarne Steensgaard. Sequentializing program dependence graphs for irreducible programs. Technical Report MSR- TR-93-14, Microsoft Research, Redmond, WA, August 1993.
|
| |
Ste93b
|
Bjarne Steensgaard. A store algebra for graphical program representations. In preparation, November 1993.
|
 |
Ven91
|
|
| |
WCRS91
|
Daniel Weise , Roland Conybeare , Erik Ruf , Scott Seligman, Automatic online partial evaluation, Proceedings of the 5th ACM conference on Functional programming languages and computer architecture, p.165-191, June 1991, Cambridge, Massachusetts, United States
|
| |
Wei84
|
Mark Weiser. Program slicing. IEEE Transactions on Software Engineering, SE-10(4):352-357, July 1984.
|
| |
Wei90
|
Daniel Weise. Graphs as an intermediate representation for partial evaluation. Technical Report CSL-TR-90-421, Stanford Computer Systems Laboratory, Stanford, CA, March 1990.
|
 |
WZ85
|
|
| |
WZ89
|
Mark N. Wegman and F. Kenneth Zadeck. Constant propagation with conditional branches. Technical Report CS- 89-36, IBM T.J. Watson Research Center, Yorktown Heights, NY, May 1989.
|
CITED BY 19
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ross Tate , Michael Stepp , Zachary Tatlock , Sorin Lerner, Equality saturation: a new approach to optimization, Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, January 21-23, 2009, Savannah, GA, USA
|
|