当前位置: X-MOL 学术ACM Trans. Program. Lang. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Rethinking Incremental and Parallel Pointer Analysis
ACM Transactions on Programming Languages and Systems ( IF 1.3 ) Pub Date : 2019-03-04 , DOI: 10.1145/3293606
Bozhen Liu 1 , Jeff Huang 1 , Lawrence Rauchwerger 1
Affiliation  

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.

中文翻译:

重新思考增量和并行指针分析

指针分析是大多数过程间程序分析的核心。然而,将指针分析扩展到大型程序是极具挑战性的。在本文中,我们研究了增量指针分析并提出了一种用于增量计算指向信息的新算法(即,在代码插入、删除和修改时)。在增量指针分析的新观察的支持下,我们的算法显着提高了现有技术,因为它避免了冗余计算和昂贵的图可达性分析,并保持了相应的整个程序详尽分析的精度。此外,它在定点计算的每次迭代中都是并行的。我们已经基于 WALA 框架为 Java 实现了我们的算法 IPA,并在现实世界的大型、复杂的应用。实验结果表明,与现有增量算法相比,IPA 实现了 200 倍以上的加速,比整个程序指针分析快了 2 到 5 个数量级,并且还将增量数据竞争检测器的性能提高了几个数量级。我们的 IPA 实现是开源的,并已被 WALA 采用。
更新日期:2019-03-04
down
wechat
bug