Skip to main content

Semantic analysis for parallelizing C

  • Conference paper
  • First Online:
Parallel Processing: CONPAR 92—VAPP V (VAPP 1992, CONPAR 1992)

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

Abstract

Automatic parallelization of C language programs is a difficult task due, for example, to side effects within expressions and access to memory via pointers. We describe a method based on semantic analysis of the language, in order to detect parallelism in complex programs using pointer arithmetic. We define semantic domains which respect the type system of the language, and use them to synthesize effect of the program through functional objects called transformations.

This article was processed using the LaTEX macro package with LLNCS style

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. Allen R., Johnson S., Compiling C for Vectorization, Parallelization, and Inline Expansion. ACM PLDI88, June 1988

    Google Scholar 

  2. Ammarguellat Z., Restructuration des programmes Fortran en vue de leur parallélisation. Thèse de l'Université Paris 6, Rapport MASI 90.3, 1988.

    Google Scholar 

  3. American National Standard Institute, Draft Proposed American National Standard for Information Systems — Programming Langage C. Draft X3J11/88-002., January 1988.

    Google Scholar 

  4. Bodin F., Data Structure Analysis in C Programs. Int'l Workshop on Compilers for Parallel Computers, Paris, December 1990.

    Google Scholar 

  5. Chase D., Wegman M., Zadeck K., Analysis of Pointers and Structures. ACM-PLDI90, June 1990.

    Google Scholar 

  6. David P., Analyse sémantique des programmes en langage C en vue de leur parallélisation. Thèse de l'Université Paris 6, 1991 (Rapport MASI 91.60).

    Google Scholar 

  7. David P., Semantic Analysis of Straight Line C Code with Pointers. Rapport MASI 92.39 June 1992

    Google Scholar 

  8. Horwitz S., Pfeiffer P., Reps T., Dependence Analysis for Pointer Variables. ACM-PLDI89, 1989

    Google Scholar 

  9. Li K., A Note on the Vector C Language. ACM Symp. on Compiler Construction, SIGPLAN Notices Vol. 21, No 1, January 1986.

    Google Scholar 

  10. Polychronopoulos C., Girkar M., Haghighat M., Ling Lee C., Leung B., Schouten D., Parafrase-2: An Environment for Parallelizing, Partitioning, Synchronizing, and Scheduling Programs on Multiprocessors. Int'l Conf. on Parallel Processing, 1989.

    Google Scholar 

  11. Thornburg J., Number Crunching in C. SIGPLAN Notices, Vol. 21, No 6, June 1986.

    Google Scholar 

  12. Triolet R., Irigoin F., Feautrier P., Direct Parallelization of Call Statements. ACM Symp. on Compiler Construction, SIGPLAN Notices Vol. 21, No 7, July 1986.

    Google Scholar 

  13. Zima H., Chapman B., Supercompilers for Parallel and Vector Computers. ACM Press, Addison Wesley, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Luc Bougé Michel Cosnard Yves Robert Denis Trystram

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

David, P. (1992). Semantic analysis for parallelizing C. In: Bougé, L., Cosnard, M., Robert, Y., Trystram, D. (eds) Parallel Processing: CONPAR 92—VAPP V. VAPP CONPAR 1992 1992. Lecture Notes in Computer Science, vol 634. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55895-0_465

Download citation

  • DOI: https://doi.org/10.1007/3-540-55895-0_465

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55895-8

  • Online ISBN: 978-3-540-47306-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics