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
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
J. Barnes and P. Hut. A Hierarchical O(n· log n) force calculation algorithm. Nature v.324, December 1986.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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