BigDataflow: A Distributed Interprocedural Dataflow Analysis Framework
Zewen Sun,Duanchen Xu,Yiyu Zhang,Yun Qi,Yueyang Wang,Zhiqiang Zuo,Zhaokang Wang,Yue Li,Xuandong Li,Qingda Lu,Wenwen Peng,Shengjian Guo
DOI: https://doi.org/10.1145/3611643.3616348
2023-01-01
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.