Affiliation:
1. Texas A8M University, College Station, TX, USA
Abstract
Pointer analysis is at the heart of most interprocedural program analyses. However, scaling pointer analysis to large programs is extremely challenging. In this article, we study incremental pointer analysis and present a new algorithm for computing the points-to information incrementally (i.e., upon code insertion, deletion, and modification). Underpinned by new observations of incremental pointer analysis, our algorithm significantly advances the state of the art in that it avoids redundant computations and the expensive graph reachability analysis, and preserves precision as the corresponding whole program exhaustive analysis. Moreover, it is parallel within each iteration of fixed-point computation. We have implemented our algorithm, IPA, for Java based on the WALA framework and evaluated its performance extensively on real-world large, complex applications. Experimental results show that IPA achieves more than 200X speedups over existing incremental algorithms, two to five orders of magnitude faster than whole program pointer analysis, and also improves the performance of an incremental data race detector by orders of magnitude. Our IPA implementation is open source and has been adopted by WALA.
Funder
Google Faculty Award
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Reference86 articles.
1. 2018. Language Server Protocol. https://langserver.org/. 2018. Language Server Protocol. https://langserver.org/.
2. Application-Only Call Graph Construction
3. Reviser: efficiently updating IDE-/IFDS-based data-flow analyses in response to incremental program changes
4. SSA based IR in WALA. 2018. Retrieved January 23 2019 from https://github.com/wala/WALA/wiki/Intermediate-Representation-(IR). SSA based IR in WALA. 2018. Retrieved January 23 2019 from https://github.com/wala/WALA/wiki/Intermediate-Representation-(IR).
5. A New Approach to Incremental Cycle Detection and Related Problems
Cited by
22 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Finding Cuts in Static Analysis Graphs to Debloat Software;Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis;2024-09-11
2. Accelerating Static Null Pointer Dereference Detection with Parallel Computing;Proceedings of the 15th Asia-Pacific Symposium on Internetware;2024-07-24
3. Homeostasis: Design and Implementation of a Self-Stabilizing Compiler;ACM Transactions on Programming Languages and Systems;2024-05
4. On-the-Fly Static Analysis via Dynamic Bidirected Dyck Reachability;Proceedings of the ACM on Programming Languages;2024-01-05
5. Compositional Taint Analysis for Enforcing Security Policies at Scale;Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2023-11-30