Accurate shape analysis for recursive data structures. (English)
Midkiff, Samuel P. (ed.) et al., Languages and compilers for parallel computing. 13th international workshop, LCPC 2000, Yorktown Heights, NY, USA, August 10-12, 2000. Proceedings. Berlin: Springer. Lect. Notes Comput. Sci. 2017, 1-15 (2001).
Summary: 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.