ACM Home Page
Please provide us with feedback. Feedback
Value dependence graphs: representation without taxation
Full text PdfPdf (1.49 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Portland, Oregon, United States
Pages: 297 - 310  
Year of Publication: 1994
ISBN:0-89791-636-0
Authors
Daniel Weise  Microsoft Research, One Microsoft Way, Redmond, WA
Roger F. Crew  Microsoft Research, One Microsoft Way, Redmond, WA
Michael Ernst  Microsoft Research, One Microsoft Way, Redmond, WA
Bjarne Steensgaard  Microsoft Research, One Microsoft Way, Redmond, WA
Sponsors
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 58,   Citation Count: 19
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/174675.177907
What is a DOI?

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
AWZ88
BCT92
 
BH92
Thomas Ball and Susan Horwitz. Slicing programs with arbitrary control flow. Technical Report 1128, University of Wisconsin - Madison, December 21, 1992.
 
BJP91
BMO90
BR91
CCF91
CF89
CFR+89
 
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
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
FM85
FMS88
FOW87
Har85
 
Hav93
Paul Havlak. Construction of thinned gated singleassignment form. Draft -- Private distribution, February 20, 1993.
HRB90
JP93
 
JPP93
KRS92
MR79
 
Ott78
Karl Joseph Ottenstein. Data-flow graphs as an intermediate program form. PhD thesis, Purdue University, August 1978.
 
PBJ+90
RWZ88
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
 
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

Collaborative Colleagues:
Daniel Weise: colleagues
Roger F. Crew: colleagues
Michael Ernst: colleagues
Bjarne Steensgaard: colleagues