Abstract
The dependence flow graph is a novel intermediate representation for optimizing and parallelizing compilers that can be viewed as an executable representation of program dependences. The execution model, called dependencedriven execution, is a generalization of the tagged-token dataflow model that permits imperative updates to memory. The dependence flow graph subsumes other representations such as continuation-passing style [12], data dependence graphs [13], and static single assignment form [8]. In this paper, we show how dependence distance and direction information can be represented in this model using dependence operators. From a functional perspective, these operators can be viewed as functions on streams [4].
This research was supported by an NSF Presidential Young Investigator award (NSF grant #CCR8958543), NSF grant CCR-9008526, and grants from IBM and HP.
Preview
Unable to display preview. Download preview PDF.
References
A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, MA, 1986.
Arvind, K. P. Gostelow, and W. Plouffe. An asynchronous programming language and computing machine. Technical Report 114a, Univ. of Calif., Irvine, Dec. 1978.
R. A. Ballance, A. B. Maccabe, and K. J. Ottenstein. The Program Dependence Web: A representation supporting control-, data-, and demand-driven interpretation of imperative languages. In Proc. of the 1990 SIGPLAN Conference on Programming Language Design and Implementation, pages 257–271, June 1990.
W. H. Burge. Recursive Programming Techniques. Addison-Wesley, Reading, MA, 1975.
R. Cartwright and M. Felleisen. The semantics of program dependence. In Proc. of the 1989 SIGPLAN Conference on Programming Language Design and Implementation, pages 13–27, June 1989.
J.-D. Choi. personal communication, 1991.
P. Cousout and R. Cousout. Abstract Interpretation: A unified lattice model for static analysis of programs by construction of approximations of fixpoints. Proc. of the 4th ACM Symposium on Principles of Programming Languages, pages 238–252, Jan. 1977.
R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. An efficient method of computing static single assignment form. In Proc. of the 16th ACM Symposium on Principles of Programming Languages, pages 25–35, Jan. 1989.
E. W. Dijkstra. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, NJ, 1976.
J. Ferrante, K. J. Ottenstein, and J. D. Warren. The program dependency graph and its uses in optimization. ACM Transactions on Programming Languages and Systems, 9(3):319–349, June 1987.
S. Horwitz. Identifying the semantic and textual differences between two versions of a program. In Proc. of the 1990 SIGPLAN Conference on Programming Language Design and Implementation, pages 234–245, 1990.
G. L. S. Jr. and G. J. Sussman. Scheme: An interpreter for extended lambda calculus. Technical Report Memo 349, M.I.T. Artificial Intellegence Laboratory, 1975.
D. J. Kuck. The Structure of Computers and Computations, volume 1. John Wiley and Sons, New York, 1978.
K. Pingali, M. Beck, R. Johnson, M. Moudgill, and P. Stodghill. Dependence Flow Graphs: An algebraic approach to program dependencies. In Proc. of the 18th ACM Symposium on Principles of Programming Languages, pages 67–78, Jan. 1991.
B. Rosen. Linear time is sometimes quadratic. In Proc. of the 8th ACM Symposium on Principles of Programming Languages, Jan. 1981.
R. P. Selke. A rewriting semantics for program dependence graphs. In Proc. of the 16th ACM Symposium on Principles of Programming Languages, pages 12–24, 1989.
M. N. Wegman and F. K. Zadeck. Constant propagation with conditional branches. In Proc. of the 11th ACM Symposium on Principles of Programming Languages, pages 291–299, 1984.
M. Wolfe. Optimizing Supercompilers for Supercomputers. Pitman Publishing, London, 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Johnson, R., Li, W., Pingali, K. (1992). An executable representation of distance and direction. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1991. Lecture Notes in Computer Science, vol 589. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0038661
Download citation
DOI: https://doi.org/10.1007/BFb0038661
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55422-6
Online ISBN: 978-3-540-47063-2
eBook Packages: Springer Book Archive