Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C 论文

1996引用 284
Software Testing and Debugging TechniquesLogic, programming, and type systemsParallel Computing and Optimization Techniques

摘要

This paper reports on the design and implementation of a practical shape analysis for C. The purpose of the analysis is to aid in the disambiguation of heap-allocated data structures by estimating the shape (Tree, DAG, or Cyclic Graph) of the data structure accessible from each heap-directed pointer. This shape information can be used to improve dependence testing and in parallelization, and to guide the choice of more complex heap analyses.The method has been implemented as a context-sensitive interprocedural analysis in the McCAT conlpiler. Experimental results and observations are given for 16 benchmark programs. These results show that the analysis gives accurate and useful results for an important group of applications.