Affiliation:
1. Aarhus University, Denmark
2. University of Athens, Greece
Abstract
Context sensitivity is an essential technique for ensuring high precision in Java pointer analyses. It has been observed that applying context sensitivity partially, only on a select subset of the methods, can improve the balance between analysis precision and speed. However, existing techniques are based on heuristics that do not provide much insight into what characterizes this method subset. In this work, we present a more principled approach for identifying precision-critical methods, based on general patterns of value flows that explain where most of the imprecision arises in context-insensitive pointer analysis. Accordingly, we provide an efficient algorithm to recognize these flow patterns in a given program and exploit them to yield good tradeoffs between analysis precision and speed.
Our experimental results on standard benchmark and real-world programs show that a pointer analysis that applies context sensitivity partially, only on the identified precision-critical methods, preserves effectively all (98.8%) of the precision of a highly-precise conventional context-sensitive pointer analysis (2-object-sensitive with a context-sensitive heap), with a substantial speedup (on average 3.4X, and up to 9.2X).
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
47 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. SCALE: Constructing Structured Natural Language Comment Trees for Software Vulnerability Detection;Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis;2024-09-11
2. Go Static: Contextualized Logging Statement Generation;Proceedings of the ACM on Software Engineering;2024-07-12
3. Scaling Type-Based Points-to Analysis with Saturation;Proceedings of the ACM on Programming Languages;2024-06-20
4. Falcon: A Fused Approach to Path-Sensitive Sparse Data Dependence Analysis;Proceedings of the ACM on Programming Languages;2024-06-20
5. When to Stop Going Down the Rabbit Hole: Taming Context-Sensitivity on the Fly;Proceedings of the 13th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis;2024-06-20