Compile-time analysis on programs with dynamic pointer-linked data structures

This paper studies static analysis on programs that create and traverse dynamic pointer-linked data structures. It introduces a new type of auxiliary structures, called link graphs, to depict the alias information of pointers and connection relationships of dynamic pointer-linked data structures. The link graphs can be used by compilers to detect side effects, to identify the patterns of traversal, and to gather the DEF-USE information of dynamic pointer-linked data structures. The results of the above compile-time analysis are essential for parallelization and optimizations on communication and synchronization overheads. Algorithms that perform compile-time analysis on side effects and DEF-USE information using link graphs will be proposed.

[1]  Ken Kennedy,et al.  The ParaScope parallel programming environment , 1993, Proc. IEEE.

[2]  Ron Cytron,et al.  Efficient accommodation of may-alias information in SSA form , 1993, PLDI '93.

[3]  Michael Wolfe,et al.  Beyond induction variables , 1992, PLDI '92.

[4]  James R. Larus,et al.  Detecting conflicts between structure accesses , 1988, PLDI '88.

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

[6]  Mark N. Wegman,et al.  Constant propagation with conditional branches , 1985, POPL.

[7]  Alexandru Nicolau,et al.  Parallelizing Programs with Recursive Data Structures , 1989, IEEE Trans. Parallel Distributed Syst..

[8]  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.

[9]  Jong-Deok Choi,et al.  Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects , 1993, POPL '93.

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

[11]  Kevin M. Olson,et al.  An N-body Tree Algorithm for the Cray T3D , 1996 .

[12]  Martin C. Rinard,et al.  Commutativity analysis: a new analysis framework for parallelizing compilers , 1996, PLDI '96.

[13]  Barbara G. Ryder,et al.  Interprocedural Side Effect Analysis With Pointer Aliasing , 1993, PLDI.

[14]  Laurie J. Hendren,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994, PLDI '94.

[15]  Piet Hut,et al.  A hierarchical O(N log N) force-calculation algorithm , 1986, Nature.

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

[17]  Robert S. Schreiber,et al.  Hpf-2 scope of activities and motivating applications , 1994 .