Skip to main content

Data flow and dependence analysis for instruction level parallelism

  • V. Fine Grain Parallelism
  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1991)

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

Abstract

Instruction-level parallel architectures present their own set of opportunities and needs, requiring the development of a new class of compiler optimization techniques. Dynamic single assignment is presented as a parallel program representation that permits programs, with cyclic control flow graphs, to be expressed in their maximally parallel form (i.e., with a minimal number of dependence arcs). Also, a data flow analysis technique is outlined that extends to subscripted references the full power of conventional techniques that normally only work with scalar variables. The focus is on the representation and analysis of programs containing subscripted references with an emphasis on innermost loops whose bodies contain arbitrary, acyclic control flow.

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. Aho, A. V., Sethi, R. and Ullman, J. D. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, Mass. 1985.

    Google Scholar 

  2. Arvind and Gostelow, K. The U-interpreter. Computer, 15, 2, February 1982.

    Google Scholar 

  3. Callahan, D., Carr, S. and Kennedy, K. Improving Register Allocation for Subscripted Variables. Proc. ACM SIGPLAN'90 Conf. on Prog. Lang. Design and Implem., 53–65, White Plains, New York, June 1990.

    Google Scholar 

  4. Chen, S. S. Large-Scale and High-Speed Multiprocessor System for Scientific Applications: CRAY-X-MP Series. In High-Speed Computation, J. S. Kowalik, Ed., NATO ASI Series F: Computer and System Sciences, Vol. 7, Springer, Berlin, 1984.

    Google Scholar 

  5. Colwell, R. P., et al. A VLIW Architecture for a Trace Scheduling Compiler. Proc. 2nd Intl. Conf. on Arch. Support for Prog. Lang. and Oper. Syst., Palo Alto, California, October 1987.

    Google Scholar 

  6. Cytron, R., Ferrante, J., Rosen, B. K., Wegman, M. N., Zadek, K. An efficient method of computing static single assignment. Proc. 16th Ann. Symp. on Principles of Prog, Lang., 25–35, Austin, Texas, January 1989.

    Google Scholar 

  7. Dehnert, J. C., Hsu, P. Y.-T. and Bratt, J. P. Overlapped Loop Support in the Cydra 5. Proc. 3rd Intl. Conf. on Arch. Support for Prog. Lang. and Oper. Syst., Boston, Mass., 26–38, April 1989.

    Google Scholar 

  8. Dennis, J. B. First Version of a Data Flow Procedure Language. Proc. of Programming Symp., Paris 1974, Lecture Notes in Computer Science 19, Springer Verlag, Berlin, 1974.

    Google Scholar 

  9. Ellis, J. R. Bulldog: A Compiler for VLIW Architectures. The MIT Press, Cambridge, Mass. 1985.

    Google Scholar 

  10. Ferrante, J., Ottenstein, K. J. and Warren, J. D. The Program Dependence Graph and its Use in Optimization. ACM Trans. on Prog, Lang. and Systems, 9, 3, 319–349, July 1987.

    Google Scholar 

  11. Johnson, M. Superscalar Microprocessor Design. Prentice-Hall, Englewood Cliffs, New Jersey. 1991.

    Google Scholar 

  12. McMahon, F. H. The Livermore Fortran Kernels: A Computer Test of the Numerical Performance Range. Technical Report UCRL-53745, Lawrence Livermore National Laboratory, December 1986.

    Google Scholar 

  13. Pingali, K., Beck, M., Johnson, R., Moudgill, M. and Stodghill, P. Dependence flow graphs: an algebraic approach to program dependencies. Conf. Record of the 18th Ann. ACM Symp, on Principles of Programming Languages, 67–78, Orlando, Florida, January 1991.

    Google Scholar 

  14. Rau, B. R., Yen, D. W. L., Yen, W. and Towle, R. A. The Cydra 5 Departmental Supercomputer: Design Philosophies, Decisions and Trade-offs. Computer, 22, 1, January 1989.

    Google Scholar 

  15. Tesler, L. G. and Enea, H. J. A Language Design for Concurrent Processes. Proc. AFIPS Spring Joint Computer Conference, 403–408, 1968.

    Google Scholar 

  16. Traub, K. R. A Compiler for the MIT Tagged-Token Dataflow Architecture. Technical Report MIT/LCS/TR-370, MIT Laboratory for Computer Science, Cambridge, Mass., August 1986.

    Google Scholar 

  17. Zima, H. and Chapman, B. Supercompilers for Parallel and Vector Computers. ACM Press, New York. 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Rau, B.R. (1992). Data flow and dependence analysis for instruction level parallelism. 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/BFb0038668

Download citation

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

  • 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

Publish with us

Policies and ethics