Towards a Versatile Pointer Analysis Framework

Current pointer analysis techniques fail to find parallelism in heap accesses. However, some of them are still capable of obtaining valuable information about the way dynamic memory is used in pointer-based programs. It would be desirable to have a unified framework with a broadened perspective that can take the best out of available techniques and compensate for their weaknesses. We present an early view of such a framework, featuring a graph-based shape analysis technique. We describe some early experiments that obtain detailed information about how dynamic memory arranges in the heap. Furthermore, we document how def-use information can be used to greatly optimize shape analysis.

[1]  Mark N. Wegman,et al.  Analysis of pointers and structures , 1990, SIGP.

[2]  Andrew A. Chien,et al.  Analysis of Dynamic Structures for Efficient Parallel Execution , 1993, LCPC.

[3]  Laurie J. Hendren,et al.  Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C , 1996, POPL '96.

[4]  Monica S. Lam,et al.  Efficient context-sensitive pointer analysis for C programs , 1995, PLDI '95.

[5]  Reinhard Wilhelm,et al.  Parametric shape analysis via 3-valued logic , 1999, POPL '99.

[6]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[7]  Michael Hind,et al.  Which pointer analysis should I use? , 2000, ISSTA '00.

[8]  Yunheung Paek,et al.  Parallel Programming with Polaris , 1996, Computer.

[9]  Ruiqi Lian,et al.  An Overview of the Open Research Compiler , 2004, LCPC.

[10]  Rudolf Eigenmann,et al.  Languages and Compilers for High Performance Computing, 17th International Workshop, LCPC 2004, West Lafayette, IN, USA, September 22-24, 2004, Revised Selected Papers , 2005, LCPC.

[11]  E. Zapata,et al.  Shape Analysis for Dynamic Data Structures based on Coexistent Links Sets ? , 2005 .

[12]  Steven W. K. Tjiang,et al.  SUIF: an infrastructure for research on parallelizing and optimizing compilers , 1994, SIGP.

[13]  Joel H. Saltz,et al.  Identifying DEF/USE Information of Statements that Construct and Traverse Dynamic Recursive Data Structures , 1997, LCPC.

[14]  Rafael Asenjo,et al.  A novel approach for detecting heap-based loop-carried dependences , 2005, 2005 International Conference on Parallel Processing (ICPP'05).

[15]  Reinhard Wilhelm,et al.  Solving shape-analysis problems in languages with destructive updating , 1998, TOPL.

[16]  Laurie Hendren,et al.  Soot---a java optimization framework , 1999 .

[17]  Rudolf Eigenmann,et al.  Experiences in Using Cetus for Source-to-Source Transformations , 2004, LCPC.