一句话:提出分布式过程间数据流分析框架 BigDataflow,用专用分布式 worklist 算法在集群上高效分析大规模程序。
静态数据流分析是编译器优化的核心,也广泛用于缺陷检测、隐私分析、程序理解等,但在大规模程序上进行过程间数据流分析极具挑战。本文提出通用分布式分析框架 BigDataflow。受大规模图处理启发,作者设计了专为过程间数据流分析定制的分布式 worklist 算法,并在大规模集群上实现该框架。实验结果表明,BigDataflow 能在数分钟内完成数百万行代码程序的分析,与当前最先进方法相比,分析效率获得显著提升。
Abstract: Apart from forming the backbone of compiler optimization, static dataflow analysis has been widely applied in a vast variety of applications, such as bug detection, privacy analysis, program comprehension, etc. Despite its importance, performing interprocedural dataflow analysis on large-scale programs is well known to be challenging.In this paper, we propose a novel distributed analysis framework supporting the general interprocedural dataflow analysis.Inspired by large-scale graph processing, we devise a dedicated distributed worklist algorithm tailored for interprocedural dataflow analysis. We implement the algorithm and develop a distributed framework called BigDataflow running on a large-scale cluster.The experimental results validate the promising performance of BigDataflow – it can finish analyzing the program of millions lines of code in minutes. Compared with the state-of-the-art, BigDataflow achieves much more analysis efficiency.
@inproceedings{SunXZQW0W0LLPG23,
title = {BigDataflow: A Distributed Interprocedural Dataflow Analysis Framework},
author = {Zewen Sun and Duanchen Xu and Yiyu Zhang and Yun Qi and Yueyang Wang and Zhiqiang Zuo and Zhaokang Wang and Yue Li and Xuandong Li and Qingda Lu and Wenwen Peng and Shengjian Guo},
booktitle = {FSE},
year = {2023},
doi = {10.1145/3611643.3616348}
}