Skip to main content

Accurate Shape Analysis for Recursive Data Structures

  • Conference paper
  • First Online:

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

Abstract

Automatic parallelization of codes which use dynamic data structures is still a challenge. One of the first steps in such parallelization is the automatic detection of the dynamic data structure used in the code. In this paper we describe the framework and the compiler we have implemented to capture complex data structures generated, traversed, and modified in C codes. Our method assigns a Reduced Set of Reference Shape Graphs (RSRSG) to each sentence to approximate the shape of the data structure after the execution of such a sentence. With the properties and operations that define the behavior of our RSRSG, the method can accurately detect complex recursive data structures such as a doubly linked list of pointers to trees where the leaves point to additional lists. Other experiments are carried out with real codes to validate the capabilities of our compiler.

This work was supported by the Ministry of Education and Science (CICYT) of Spain (TIC96-1125-C03), by the European Union (BRITE-EURAM III BE95-1564), by APART: Automatic Performance Analysis: Resources and Tools, EU Esprit IV Working Group No. 29488

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J. Barnes and P. Hut. A Hierarchical O(n· log n) force calculation algorithm. Nature v.324, December 1986.

    Google Scholar 

  2. D. Chase, M. Wegman and F. Zadeck. Analysis of Pointers and Structures. In SIGPLAN Conference on Programming Language Design and Implementation, 296–310. ACM Press, New York, 1990.

    Google Scholar 

  3. F. Corbera, R. Asenjo and E.L. Zapata New shape analysis for automatic parallelization of C codes. In ACM International Conference on Supercomputing, 220–227, Rhodes, Greece, June 1999.

    Google Scholar 

  4. P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximation of fixed points. In Proceedings of the ACM Symposium on Principles of Programming Languages. ACM Press, New York. 238–252, 1977.

    Google Scholar 

  5. J. Hoeflinger and Y. Paek The Access Region Test. In Twelfth International Workshop on Languages and Compilers for Parallel Computing (LCPC’99), The University of California, San Diego, La Jolla, CA USA, August, 1999.

    Google Scholar 

  6. S. Horwitz, P. Pfeiffer, and T. Reps. Dependence Analysis for Pointer Variables. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, 28–40, June 1989.

    Google Scholar 

  7. N. Jones and S. Muchnick. Flow Analysis and Optimization of Lisp-like Structures. In Program Flow Analysis: Theory and Applications, S. Muchnick and N. Jones, Englewood Cliffs, NJ: Prentice Hall, Chapter 4, 102–131, 1981.

    Google Scholar 

  8. J. Plevyak, A. Chien and V. Karamcheti. Analysis of Dynamic Structures for Efficient Parallel Execution. In Languages and Compilers for Parallel Computing, U. Banerjee, D. Gelernter, A. Nicolau and D. Padua, Eds. Lectures Notes in Computer Science, vol 768, 37–57. Berlin Heidelberg New York: Springer-Verlag 1993.

    Google Scholar 

  9. M. Sagiv, T. Reps and R. Wilhelm. Solving Shape-Analysis problems in Languages with destructive updating. ACM Transactions on Programming Languages and Systems, 20(1):1–50, January 1998.

    Article  Google Scholar 

  10. M. Sagiv, T. Reps, and R. Wilhelm, Parametric shape analysis via 3-valued logic. In Conference Record of the Twenty-Sixth ACM Symposium on Principles of Programming Languages, San Antonio, TX, Jan. 20-22, ACM, New York, NY, 1999, pp. 105–118.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Corbera, F., Asenjo, R., Zapata, E. (2001). Accurate Shape Analysis for Recursive Data Structures. In: Midkiff, S.P., et al. Languages and Compilers for Parallel Computing. LCPC 2000. Lecture Notes in Computer Science, vol 2017. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45574-4_1

Download citation

  • DOI: https://doi.org/10.1007/3-540-45574-4_1

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42862-6

  • Online ISBN: 978-3-540-45574-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics