Skip to main content

Finding legal reordering transformations using mappings

  • Postlinear Loop Transformations
  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1994)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 892))

Abstract

We present a unified framework for applying iteration reordering transformations. This framework is able to represent traditional transformations such as loop interchange, loop skewing and loop distribution as well as compositions of these transformations. Using a unified framework rather than a sequence of adhoc transformations makes it easier to analyze and predict the effects of these transformations. Our framework is based on the idea that all reordering transformations can be represented as a mapping from the original iteration space to a new iteration space. An optimizing compiler would use our framework by finding a mapping that both corresponds to a legal transformation and produces efficient code. We present the mapping selection problem as a search problem by decomposing it into a sequence of smaller choices. We then characterize the set of all legal mappings by defining a search tree.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. U. Banerjee. Unimodular transformations of double loops. In Proc. of the 3rd Workshop on Programming Languages and Compilers for Parallel Computing, pages 192–219, Irvine, CA, August 1990.

    Google Scholar 

  2. Alain Darte and Yves Robert. Scheduling uniform loop nests. In Proceedings of ISMN International Conference on Parallel and Distributed Computer Systems, October 1992.

    Google Scholar 

  3. Paul Feautrier. Dataflow analysis of array and scalar references. International Journal of Parallel Programming, 20(1), February 1991.

    Google Scholar 

  4. Paul Feautrier. Some efficient solutions to the affine scheduling problem, Part I, One-dimensional time. Int. J. of Parallel Programming, 21(5), Oct 1992.

    Google Scholar 

  5. Paul Feautrier. Some efficient solutions to the affine scheduling problem, Part II, Multidimensional time. Int. J. of Parallel Programming, 21(6), Dec 1992.

    Google Scholar 

  6. Wayne Kelly and William Pugh. Determining schedules based on performance estimation. Technical Report CS-TR-3108, Dept. of Computer Science, University of Maryland, College Park, July 1993. to appear in Parallel Processing Letters (1994).

    Google Scholar 

  7. Wayne Kelly and William Pugh. A framework for unifying reordering transformations. Technical Report CS-TR-3193, Dept. of Computer Science, University of Maryland, College Park, April 1993.

    Google Scholar 

  8. Wayne Kelly, William Pugh, and Evan Rosser. Code generation for multiple mappings. Technical Report CS-TR-3317, Dept. of Computer Science, University of Maryland, College Park, July 1994. to appear at the 5th Symposium on the Frontiers of Massively Parallel Computation.

    Google Scholar 

  9. Herve Leverge, Christophe Mauras, and Patrice Quinton. A language-orientied approach to the design of systolic chips. Journal of VLSI Signal Processing, pages 173–182, Mar 1991.

    Google Scholar 

  10. Wei Li and Keshav Pingali. A singular loop transformation framework based on non-singular matrices. In 5th Workshop on Languages and Compilers for Parallel Computing, pages 249–260, Yale University, August 1992.

    Google Scholar 

  11. Nils J. Nilsson. Principles of Artificial Intelligence. Morgan Kaufmann Publishers, 1980.

    Google Scholar 

  12. William Pugh. Uniform techniques for loop optimization. In 1991 International Conference on Supercomputing, pages 341–352, Cologne, Germany, June 1991.

    Google Scholar 

  13. William Pugh. The Omega test: a fast and practical integer programming algorithm for dependence analysis. Communications of the ACM, 8:102–114, August 1992.

    Google Scholar 

  14. William Pugh and David Wonnacott. Going beyond integer programming with the Omega test to eliminate false data dependences. IEEE Transactions on Parallel and Distributed Systems, 1994. To appear.

    Google Scholar 

  15. A. Schrijver. Theory of Linear and Integer Programming. John Wiley and Sons, Chichester, Great Britain, 1986.

    Google Scholar 

  16. Vivek Sarkar and Radhika Thekkath. A general framework for iteration-reordering loop transformations. In ACM SIGPLAN'92 Conference on Programming Language Design and Implementation, pages 175–187, San Francisco, California, Jun 1992.

    Google Scholar 

  17. Michael E. Wolf and Monica S. Lam. A data locality optimizing algorithm. In ACM SIGPLAN'91 Conference on Programming Language Design and Implementation, 1991.

    Google Scholar 

  18. M. J. Wolfe. Optimizing Supercompilers for Supercomputers. The MIT Press, Cambridge, MA, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Keshav Pingali Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kelly, W., Pugh, W. (1995). Finding legal reordering transformations using mappings. In: Pingali, K., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1994. Lecture Notes in Computer Science, vol 892. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0025874

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58868-9

  • Online ISBN: 978-3-540-49134-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics