A language for conveying the aliasing properties of dynamic, pointer-based data structures

High-performance architectures rely upon powerful optimizing and parallelizing compilers to maximize performance. Such compilers need accurate program analysis to enable their performance-enhancing transformations. In the domain of program analysis for parallelization, pointer analysis is a difficult and increasingly common problem. When faced with dynamic, pointer-based data structures, existing solutions are either too limited in the types of data structures they can analyze, or require too much effort on the part of the programmer. In this paper we present a powerful description language for expressing the aliasing properties of dynamic date structures. Such descriptions provide the compiler with better information during alias analysis, and require only minimal effort from the programmer. Ultimately, this enables a more accurate program analysis, and an increased application of performance-enhancing transformations.<<ETX>>

[1]  Alexandru Nicolau,et al.  Abstractions for recursive pointer data structures: improving the analysis and transformation of imperative programs , 1992, PLDI '92.

[2]  L.M.G. Feijs,et al.  The interface description language: definition and use. , 1990 .

[3]  Neil D. Jones,et al.  Flow analysis and optimization of LISP-like structures , 1979, POPL.

[4]  Udi Manber,et al.  Introduction to algorithms - a creative approach , 1989 .

[5]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[6]  William Pugh,et al.  Skip lists: a probabilistic alternative to balanced trees , 1989, CACM.

[7]  David K. Gifford,et al.  Polymorphic effect systems , 1988, POPL '88.

[8]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[9]  Alexandru Nicolau,et al.  Applying an Abstract Data Structure Description Approach to Parallelizing Scientific Pointer Programs , 1992, ICPP.

[10]  Richard T. Snodgrass Interface description language - definition and use , 1989, Principles of computer science series.

[11]  Alexandru Nicolau,et al.  A general data dependence test for dynamic, pointer-based data structures , 1994, PLDI '94.

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

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

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

[15]  James R. Larus,et al.  Restructuring symbolic programs for concurrent execution on multiprocessors , 1989 .

[16]  William Pugh,et al.  Skip Lists: A Probabilistic Alternative to Balanced Trees , 1989, WADS.

[17]  Thomas A. Standish Data Structure Techniques , 1980 .

[18]  Nils Klarlund,et al.  Graph types , 1993, POPL '93.

[19]  Neil D. Jones,et al.  Program flow analysis - theory and applications , 1981, Prentice Hall software series.

[20]  TWO-WEEK Loan COpy,et al.  University of California , 1886, The American journal of dental science.

[21]  Martin J. Dürst,et al.  The design and analysis of spatial data structures. Applications of spatial data structures: computer graphics, image processing, and GIS , 1991 .

[22]  Williams Ludwell Harrison,et al.  A Program's Eye View of Miprac , 1992, LCPC.

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

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

[25]  A. Deutsch,et al.  A storeless model of aliasing and its abstractions using finite representations of right-regular equivalence relations , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[26]  Phil Pfeiffer,et al.  Dependence analysis for pointer variables , 1989, PLDI '89.

[27]  Andrew W. Appel,et al.  An Efficient Program for Many-Body Simulation , 1983 .

[28]  Michael S. Warren,et al.  Astrophysical N-body simulations using hierarchical tree data structures , 1992, Proceedings Supercomputing '92.

[29]  V. A. Barker Sparse Matrix Techniques , 1977 .