2006
DOI: 10.1007/11688839_5
|View full text |Cite
|
Sign up to set email alerts
|

Context-Sensitive Points-to Analysis: Is It Worth It?

Abstract: Abstract. We present the results of an empirical study evaluating the precision of subset-based points-to analysis with several variations of context sensitivity on Java benchmarks of significant size. We compare the use of call site strings as the context abstraction, object sensitivity, and the BDD-based context-sensitive algorithm proposed by Zhu and Calman, and by Whaley and Lam. Our study includes analyses that context-sensitively specialize only pointer variables, as well as ones that also specialize the… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

9
155
1

Year Published

2007
2007
2016
2016

Publication Types

Select...
4
3
3

Relationship

2
8

Authors

Journals

citations
Cited by 148 publications
(165 citation statements)
references
References 20 publications
9
155
1
Order By: Relevance
“…In Java, context sensitivity has been found to improve precision of pointer information. On call graph precision, its effect is more modest (Lhoták and Hendren 2006;Lhoták and Hendren 2008;Smaragdakis et al 2011Smaragdakis et al , 2014, unless very sophisticated context abstractions are used (Feng et al 2015). In Scala, where use of generic type parameters and abstract type members is pervasive, our static-type-based context-sensitive analysis that can precisely model these features significantly improves call graph precision.…”
Section: Call Graph Construction and Context Sensitivitymentioning
confidence: 98%
“…In Java, context sensitivity has been found to improve precision of pointer information. On call graph precision, its effect is more modest (Lhoták and Hendren 2006;Lhoták and Hendren 2008;Smaragdakis et al 2011Smaragdakis et al , 2014, unless very sophisticated context abstractions are used (Feng et al 2015). In Scala, where use of generic type parameters and abstract type members is pervasive, our static-type-based context-sensitive analysis that can precisely model these features significantly improves call graph precision.…”
Section: Call Graph Construction and Context Sensitivitymentioning
confidence: 98%
“…Livshits and Lam [17] analyze Java EE applications by tracking taint through heap-allocated objects. Their solution requires prior computation of Whaley and Lam's flow-insensitive, context-sensitive may-points-to analysis, based on Binary Decision Diagrams (BDDs) [38], which limits the scalability of the analysis [16]. The pointsto relation is the same for the entire program ignoring control flow.…”
Section: Related Workmentioning
confidence: 99%
“…Roughly speaking, most call graph construction algorithms can be classified as being either type-based or flow-based [7,13,14,17,18]. The former class of algorithms uses only local information given by static types to determine possible call targets, whereas the latter analyzes the program's data flow.…”
Section: Introductionmentioning
confidence: 99%