Unification-based Pointer Analysis with Directional Assignments (2000)
| Citations: | 175 - 5 self |
BibTeX
@INPROCEEDINGS{Das00unification-basedpointer,
author = {Manuvir Das},
title = {Unification-based Pointer Analysis with Directional Assignments},
booktitle = {},
year = {2000},
pages = {35--46}
}
Years of Citing Articles
OpenURL
Abstract
This paper describes a new algorithm for flow and context insensitive pointer analysis of C programs. Our studies show that the most common use of pointers in C programs is in passing the addresses of composite objects or updateable values as arguments to procedures. Therefore, we have designed a low-cost algorithm that handles this common case accurately. In terms of both precision and running time, this algorithm lies between Steensgaard's algorithm, which treats assignments bi-directionally using unification, and Andersen's algorithm, which treats assignments directionally using subtyping. Our "one level flow" algorithm uses a restricted form of subtyping to avoid unification of symbols at the top levels of pointer chains in the points-to graph, while using unification elsewhere in the graph. The method scales easily to large programs. For instance, we are able to analyze a 1.4 MLOC (million lines of code) program in two minutes, using less than 200MB of memory. At the same time, the pr...







