Proceedings Article10.1145/378795.378802
Demand-driven pointer analysis
Nevin Heintze,Olivier Tardieu +1 more
- 01 May 2001
- Vol. 36, Iss: 5, pp 24-34
171
TL;DR: This paper describes a demand-driven flow-insensitive, subset-based, con text-inssensitive points-to analysis, and proves that the algorithm is correct and optimal in the sense that it does not do more work than necessary.
read more
Abstract: Known algorithms for pointer analysis are “global” in the sense that they perform an exhaustive analysis of a program or program component In this paper we introduce a demand-driven approach for pointer analysis Specifically, we describe a demand-driven flow-insensitive, subset-based, con text-insensitive points-to analysis Given a list of pointer variables (a query), our analysis performs just enough computation to determine the points-to sets for these query variables Using deductive reachability formulations of both the exhaustive and the demand-driven analyses, we prove that our algorithm is correct We also show that our analysis is optimal in the sense that it does not do more work than necessary We illustrate the feasibility and efficiency of our analysis with an implementation of demand-driven points-to analysis for computing the call-graphs of C programs with function pointers The performance of our system varies substantially across benchmarks - the main factor is how much of the points-to graph must be computed to determine the call-graph For some benchmarks, only a small part of the points-to graph is needed (eg pouray emacs and gcc), and here we see more than a 10x speedup For other benchmarks (eg burlap and gimp), we need to compute most (> 95%) of the points-to graph, and here the demand-driven algorithm is considerably slower, because using the demand-driven algorithm is a slow method of computing the full points-to graph
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Pointer analysis: haven't we solved this problem yet?
Michael Hind
- 01 Jun 2001
TL;DR: Issues related to pointer analysis and remaining open problems are described.
682
Scaling Java points-to analysis using SPARK
Ondřej Lhoták,Laurie Hendren +1 more
- 07 Apr 2003
TL;DR: SPARK is introduced, a flexible framework for experimenting with points-to analyses for Java that supports equality- and subset-based analyses, variations in field sensitivity, respect for declared types, variationsIn call graph construction, off-line simplification, and several solving algorithms.
Refinement-based context-sensitive points-to analysis for Java
Manu Sridharan,Rastislav Bodik +1 more
- 11 Jun 2006
TL;DR: This work has developed a refinement-based analysis that succeeds by simultaneously refining handling of method calls and heap accesses, allowing the analysis to precisely analyze important code while entirely skipping irrelevant code.
Strictly declarative specification of sophisticated points-to analyses
Martin Bravenboer,Yannis Smaragdakis +1 more
- 25 Oct 2009
TL;DR: DOOP framework for points-to analysis of Java programs using Datalog for declarative specification and optimization.
Demand-driven alias analysis for C
Xin Zheng,Radu Rugina +1 more
- 07 Jan 2008
TL;DR: This paper formulate the computation of alias queries as a CFL-reachability problem, and uses this formulation to derive a demand-driven analysis algorithm that uses a worklist algorithm that gradually explores the program structure and stops as soon as enough evidence is gathered to answer the query.
References
Points-to analysis in almost linear time
Bjarne Steensgaard
- 01 Jan 1996
TL;DR: This is the asymptotically fastest non-trivial interprocedural points-to analysis algorithm yet described and is based on a non-standard type system for describing a universally valid storage shape graph for a program in linear space.
Context-sensitive interprocedural points-to analysis in the presence of function pointers
Maryam Emami,Rakesh Ghiya,Laurie Hendren +2 more
- 01 Jun 1994
TL;DR: This paper reports on the design, implementation, and empirical results of a new method for dealing with the aliasing problem in C based on approximating the points-to relationships between accessible stack locations that allows the smooth integration for handling general function pointers in C.
Unification-based pointer analysis with directional assignments
Manuvir Das
- 01 May 2000
TL;DR: This algorithm provides a method for obtaining precise flow-insensitive points-to information for large C programs and lies between Steensgaard's algorithm and Andersen's algorithm in terms of both precision and running time.
352
Fast and accurate flow-insensitive points-to analysis
Marc Shapiro,Susan Horwitz +1 more
- 01 Jan 1997
TL;DR: This paper addresses techniques for flow- and context-insensitive interprocedural analysis of stack-based storage, and defines two new algorithms that are significantly more accurate than Steensgaard's algorithm, and significantly faster than Andersen's algorithm on large programs.
276
Ultra-fast aliasing analysis using CLA: a million lines of C code in a second
Nevin Heintze,Olivier Tardieu +1 more
- 01 May 2001
TL;DR: This work describes the design and implementation of a system for very fast points-to analysis that is built into a forward data-dependence analysis tool that is deployed within Lucent to help with consistent type modifications to large legacy C code bases.
Related Papers (5)
Bjarne Steensgaard
- 01 Jan 1996
Thomas Reps,Susan Horwitz,Mooly Sagiv +2 more
- 25 Jan 1995
Lars Ole Andersen,Peter Lee +1 more
- 01 Jan 2005
Michael Hind
- 01 Jun 2001
Robert P. Wilson,Monica S. Lam +1 more
- 01 Jan 1997