Skip to main content
Log in

Data dependence and program restructuring

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

Data dependence concepts are reviewed, concentrating on and extending previous work on direction vectors. A bit vector representation of direction vectors is discussed. Various program restructuring transformations, such as loop circulation (a form of loop interchanging), reversal, skewing, sectioning (strip mining), combing, and rotation, are discussed in terms of their effects on the execution of the program, the required dependence tests for legality, and the effects of each transformation on the dependence graph. The bit vector representation of direction vectors is used to develop simple and efficient bit vector operations for the dependence tests and to generate the modified direction vector for each transformation. Finally, a simple method to interchange complex convex loop limits is given, which is useful when several loop restructuring operations are being applied in sequence.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

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, Rice Univ., Houston, Tex.

    Google Scholar 

  • Allen, J.R., and Kennedy, K. 1984. Automatic loop interchange. In Proc., SIGPLAN '84 Symp. on Compiler Construction (Montreal, June 17–22), ACM Press, pp. 233–246.

  • Allen, J.R., and Kennedy, K. 1987. Automatic translation of Fortran programs to vector form. ACM Trans. Programming Languages and Systems, 9, 4 (June), 491–542.

    Google Scholar 

  • Banerjee, U. 1988. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Norwell, Mass.

    Google Scholar 

  • Banerjee, U. 1990. A theory of loop permutations. In Languages and Compilers for Parallel Computing (D. Gelernter, A. Nicolau, and D. Padua, eds.), MIT Press, Boston, and Pitman Publishing, London, pp. 54–74.

    Google Scholar 

  • Bartle, R.G. 1964. The Elements of Real Analysis. John Wiley & Sons, New York.

    Google Scholar 

  • Burke, M., and Cytron, R. 1986. Interprocedural dependence analysis and parallelization. In Proc., SIGPLAN '86 Symp. on Compiler Construction (Palo Alto, Calif., June 25–27), ACM Press, pp. 162–175.

  • Kuck, D.J., Kuhn, R.H., Padua, D.A., Leasure, B.R., and Wolfe, M. 1981. Dependence graphs and compiler optimizations. In Conf. Record of the 8th ACM Symp. on the Principles of Programming Languages (Williamsburg), ACM Press, pp. 207–218.

    Google Scholar 

  • Loveman, D. 1977. Program improvement by source-to-source transformation. JACM, 20, 1 (Jan.), 121–145.

    Google Scholar 

  • Wedel, D. 1975. Fortran for the Texas Instruments ASC System. ACM SIGPLAN Notices, 10, 3 (Mar.), 119–132.

    Google Scholar 

  • Wolfe, M. 1978. Techniques for improving the inherent parallelism in programs. Rept. UIUCDCS-R-78–929, Dept. of Comp. Sci., Univ. of Ill., Urbana, Ill.

    Google Scholar 

  • Wolfe, M. 1982. Optimizing supercompilers for supercomputers. Ph.D. thesis, Univ. of Ill., Urbana, Ill.

    Google Scholar 

  • Wolfe, M. 1986a. Advanced loop interchanging. In Proc., 1986 Internat. Conf. on Parallel Processing (K. Hwang, S.M. Jacobs, and E.E. Swartzlander, eds.) (St. Charles, Ill., Aug. 19–22), IEEE Computer Soc. Press, pp. 536–543.

  • Wolfe, M. 1986b. Loop skewing: The wavefront method revisited. Internat. J. Parallel Programming, 15, 4 (Aug.), 279–294.

    Google Scholar 

  • Wolfe, M. 1989. Optimizing Supercompilers for Supercomputers. MIT Press, Boston, and Pitman Publishing, London.

    Google Scholar 

  • Wolfe, M. 1990. Loop rotation. In Languages and Compilers for Parallel Computing (D. Gelernter, A. Nicolau, and D. Padua, eds.), MIT Press, Boston, and Pitman Publishing, London, pp. 531–553.

    Google Scholar 

  • Wolfe, M., and Banerjee, U. 1987. Data dependence and its application to parallel processing. Internat. J. Parallel Programming, 16, 2 (Apr.), 137–178.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was supported by NSF Grant CCR-8906909 and DARPA Grant MDA972-88-J-1004.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Wolfe, M. Data dependence and program restructuring. J Supercomput 4, 321–344 (1991). https://doi.org/10.1007/BF00129834

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00129834

Key words

Navigation