by Atanas Rountev, Barbara G. Ryder
ftp://www.cs.rutgers.edu/pub/technical-reports/dcs-tr-410.ps.Z
Add To MetaCart
Abstract:
Traditional whole-program analysis cannot be directly applied to programs that include precompiled libraries. Such programs could be analyzed separately from the included libraries by using precomputed summary information about each library. This paper describes one such separate analysis derived from Andersen's wholeprogram points-to analysis [2]. The analysis uses a summary which is a compact representation of the points-to e#ects of all statements in the library. The summary is generated by substituting some of the library variables with placeholder variables. By replacing many variables with the same placeholder, we can reduce the size of the summary and the cost of the separate analysis. We use a substitution which summarizes the library e#ects without losing precision or exposing the internals of the library. Our experiments show that the cost of computing and storing the summary is practical, and that the substitution technique significantly reduces the cost of the separate analysis. Keywords: Data-flow analysis, pointer analysis
Citations
|
1267
|
Abstract interpretation : a unified lattice model for the static analysis of programs by construction or approximation of fixpoints
– Cousot, Cousot
- 1977
|
|
415
|
Points-to analysis in almost linear time
– Steensgaard
- 1996
|
|
403
|
Program Analysis and Specialization for the C Programming Language. PhDthesis, University of Copenhagen, DIKU, DIKU report 94/19
– Andersen
- 1994
|
|
339
|
Effective context-sensitive pointer analysis for C programs
– Wilson, Lam
- 1995
|
|
329
|
Context-sensitive interprocedural points-to analysis in the presence of function pointers
– Enami, Ghiya, et al.
- 1994
|
|
301
|
A safe approximate algorithm for interprocedural pointer aliasing
– Landi, Ryder
- 1992
|
|
234
|
Precise interprocedural dataflow analysis via graph reachability
– Reps, Sagiv, et al.
- 1995
|
|
216
|
Two approaches to interprocedural data flow analysis
– Sharir, Pnueli
- 1981
|
|
187
|
Detecting equality of variables in programs
– Alpern, Wegman, et al.
- 1988
|
|
137
|
Fast and Accurate Flow-Insensitive Points-To Analysis
– Shapiro, Horwitz
- 1997
|
|
122
|
Context-insensitive alias analysis reconsidered
– Ruf
- 1995
|
|
99
|
Componential set-based analysis
– Flanagan, Felleisen
- 1997
|
|
91
|
Relevant Context Inference
– Chatterjee, Ryder, et al.
- 1999
|
|
81
|
Partial online cycle elimination in inclusion constraint graphs
– Fähndrich, Foster, et al.
- 1998
|
|
77
|
E cient Points-to Analysis for Whole-Program Analysis
– Liang, Harrold
- 1999
|
|
68
|
Interprocedural pointer alias analysis
– Hind, Burke, et al.
- 1999
|
|
67
|
The effects of precision on pointer analysis
– Shapiro, Horwitz
- 1997
|
|
51
|
Testing component-based software: A cautionary tale
– Weyuker
- 1998
|
|
43
|
Program decomposition for pointer aliasing: A step towards practical analyses
– Zhang, Ryder, et al.
- 1996
|
|
38
|
Projection merging: Reducing redundancies in inclusion constraint graphs
– Su, Fähndrich, et al.
- 2000
|
|
36
|
Data-flow analysis of program fragments
– Rountev, Ryder, et al.
- 1999
|
|
20
|
Separate Computation of Alias Information for Reuse
– Harrold, Rothermel
- 1996
|
|
14
|
Equivalence analysis: a general technique to improve the efficiency of data-flow analyses in the presence of pointers
– Liang, Harrold
- 1999
|
|
8
|
An e#cient hybrid algorithm for incremental data flow analysis
– Marlowe, Ryder
- 1990
|
|
8
|
Comparing flow- and context-sensitivity on the modification side-e#ects problem
– Stocks, Ryder, et al.
- 1998
|
|
2
|
O#-line variable substuitution for scaling points-to analysis
– Rountev, Chandra
- 2000
|