Scaling Inter-procedural Dataflow Analysis on the Cloud
Zewen Sun,Yujin Zhang,Duanchen Xu,Yiyu Zhang,Yun Qi,Yueyang Wang,Yi Li,Zhaokang Wang,Yue Li,Xuandong Li,Zhiqiang Zuo,Qingda Lu,Wenwen Peng,Shengjian Guo
2024-12-17
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 dedicated distributed worklist algorithms for both whole-program analysis and incremental analysis. We implement these algorithms and develop a distributed framework called BigDataflow running on a large-scale cluster. The experimental results validate the promising performance of BigDataflow -- BigDataflow 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.
Programming Languages,Operating Systems,Software Engineering