Abstract
Dependence analysis is a very important part of any vectorizing or concurrentizing compiler. This paper is an introduction to a formal theory of dependence analysis. The emphasis here is on rigor —the subject matter is not new. The program model is a Fortran do loop consisting of loops and assignment statements. We carefully explain the key dependence concepts and indicate through examples how the dependence tests work. These ideas and methods can be readily extended to more general programs.
Similar content being viewed by others
References
Allen, J. R. 1983.Dependence Analysis for Subscripted Variables and Its Application to Program Transformations. Ph.D. Thesis, Dept. of Mathematical Sciences, Rice University, Houston, Texas. Also available as Document 83–14916 from University Microfilms, Ann Arbor, Mich.
Allen, J. R., and Kennedy, K. 1987. Automatic translation of FORTRAN programs to vector form.ACM Trans. Programming Languages & Systems, 9(4): 491–542.
Allen, J. R., Kennedy, K., Porterfield, C., and Warren, J. 1983. Conversion of control dependence to data dependence. In Conference Proceedings—The 10th Annual ACM Symposium on Principles of Programming Languages (Austin, Jan. 24–26), ACM Press, pp. 177–189.
Banerjee, U. 1976.Data Dependence in Ordinary Programs. M.S. Thesis, Report 76–837, Dept. of Computer Science, University of Illinois, Urbana.
Banerjee, U. 1979.Speedup of Ordinary Programs. Ph.D. Thesis, Report 79–989, Dept. of Computer Science, University of Illinois, Urbana. Also available as Document 80–08967 from University Microfilms, Ann Arbor, Mich.
Banerjee, U. 1988.Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston.
Banerjee, U., Chen, S. C., Kuck, D. J., and Towle, R. A. 1979. Time and parallel processor bounds for Fortran-like loops.IEEE Trans. Computers, C-28(9): 660–670.
Burke, M., and Cytron, R. 1986. Interprocedural dependence analysis and parallelization. In Conference Proceedings—The SIGPLAN '86 Symposium on Compiler Construction (Palo Alto, June 25–27). Also available as SIGPLAN Notices, 21(7): 162–175.
Cohagan, W. L. 1973. Vector optimization for the ASC. In Conference Proceedings—The 7th Annual Princeton Conference on Information Sciences and Systems (Princeton, Mar. 22–23), Princeton University Press, Princeton, N.J., pp. 169–174.
Kuck, D. J., Kuhn, R. H., Padua, D. A., Leasure, B. R., and Wolfe, M. J. 1981. Dependence graphs and compiler optimizations. In Conference Proceedings—The 8th ACM Symposium on Principles of Programming Languages (Williamsburg, Va., Jan. 26–28), ACM Press, pp. 207–218.
Kuhn, R. H. 1980.Optimization and Interconnection Complexity for:Parallel Processors, Single-Stage Networks, and Decision Trees. Ph.D. Thesis, Report 80–1009, Dept. of Computer Science, University of Illinois, Urbana. Also available as Document 80–26541 from University Microfilms, Ann Arbor, Mich.
Padua, D. A., and Wolfe, M. J. 1986. Advanced compiler optimizations for supercomputers.Comm. ACM, 29 (12): 1184–1201.
Towle, R. A. 1976.Control and Data Dependence for Program Transformations. Ph.D. Thesis, Report 76–788, Dept. of Computer Science, University of Illinois, Urbana.
Wolfe, M. J. 1982.Optimizing Supercompilers for Supercomputers. Ph.D. Thesis, Report 82–1105, Dept. of Computer Science, University of Illinois, Urbana. Also available as Document 83–03027 from University Microfilms, Ann Arbor, Mich.
Wolfe, M. J., and Banerjee, U. 1987. Data dependence and its application to parallel processing.Int. J. Parallel Programming, 16(2): 137–178.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Banerjee, U. An introduction to a formal theory of dependence analysis. J Supercomput 2, 133–149 (1988). https://doi.org/10.1007/BF00128174
Issue Date:
DOI: https://doi.org/10.1007/BF00128174