TY - JOUR
T1 - IDEal
T2 - Efficient and precise alias-Aware dataflow analysis
AU - Späth, Johannes
AU - Ali, Karim
AU - Bodden, Eric
N1 - Publisher Copyright:
© 2017 Association for Computing Machinery.
PY - 2017/10
Y1 - 2017/10
N2 - Program analyses frequently track objects throughout a program, which requires reasoning about aliases. Most dataflow analysis frameworks, however, delegate the task of handling aliases to the analysis clients, which causes a number of problems. For instance, custom-made extensions for alias analysis are complex and cannot easily be reused. On the other hand, due to the complex interfaces involved, off-the-shelf alias analyses are hard to integrate precisely into clients. Lastly, for precision many clients require strong updates, and alias abstractions supporting strong updates are often relatively inefficient. In this paper, we present IDEal , an alias-aware extension to the framework for Interprocedural Distributive Environment (IDE) problems. IDEal relieves static-analysis authors completely of the burden of handling aliases by automatically resolving alias queries on-demand, both efficiently and precisely. IDEal supports a highly precise analysis using strong updates by resorting to an on-demand, flow-sensitive, and context-sensitive all-alias analysis. Yet, it achieves previously unseen efficiency by propagating aliases individually, creating highly reusable per-pointer summaries. We empirically evaluate IDEal by comparing TSf , a state-of-the-art typestate analysis, to TSal , an IDEal - based typestate analysis. Our experiments show that the individual propagation of aliases within IDEal enables TSal to propagate 10.4× fewer dataflow facts and analyze 10.3× fewer methods when compared to TSf . On the DaCapo benchmark suite, TSal is able to efficiently compute precise results.
AB - Program analyses frequently track objects throughout a program, which requires reasoning about aliases. Most dataflow analysis frameworks, however, delegate the task of handling aliases to the analysis clients, which causes a number of problems. For instance, custom-made extensions for alias analysis are complex and cannot easily be reused. On the other hand, due to the complex interfaces involved, off-the-shelf alias analyses are hard to integrate precisely into clients. Lastly, for precision many clients require strong updates, and alias abstractions supporting strong updates are often relatively inefficient. In this paper, we present IDEal , an alias-aware extension to the framework for Interprocedural Distributive Environment (IDE) problems. IDEal relieves static-analysis authors completely of the burden of handling aliases by automatically resolving alias queries on-demand, both efficiently and precisely. IDEal supports a highly precise analysis using strong updates by resorting to an on-demand, flow-sensitive, and context-sensitive all-alias analysis. Yet, it achieves previously unseen efficiency by propagating aliases individually, creating highly reusable per-pointer summaries. We empirically evaluate IDEal by comparing TSf , a state-of-the-art typestate analysis, to TSal , an IDEal - based typestate analysis. Our experiments show that the individual propagation of aliases within IDEal enables TSal to propagate 10.4× fewer dataflow facts and analyze 10.3× fewer methods when compared to TSf . On the DaCapo benchmark suite, TSal is able to efficiently compute precise results.
KW - Aliasing
KW - Dataflow
KW - Static analysis
UR - http://www.scopus.com/inward/record.url?scp=85119582081&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85119582081&partnerID=8YFLogxK
U2 - 10.1145/3133923
DO - 10.1145/3133923
M3 - Article
AN - SCOPUS:85119582081
SN - 2475-1421
VL - 1
JO - Proceedings of the ACM on Programming Languages
JF - Proceedings of the ACM on Programming Languages
IS - OOPSLA
M1 - 99
ER -