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
39 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. BigDataflow: A Distributed Interprocedural Dataflow Analysis Framework;Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2023-11-30
2. A Cocktail Approach to Practical Call Graph Construction;Proceedings of the ACM on Programming Languages;2023-10-16
3. A Container-Usage-Pattern-Based Context Debloating Approach for Object-Sensitive Pointer Analysis;Proceedings of the ACM on Programming Languages;2023-10-16
4. Automatic Generation and Reuse of Precise Library Summaries for Object-Sensitive Pointer Analysis;2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE);2023-09-11
5. Hybrid Inlining: A Framework for Compositional and Context-Sensitive Static Analysis;Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis;2023-07-12