一句话:提出首个识别并消除冗余函数摘要的方法,在保证可靠性的同时显著加速路径敏感值流分析。
值流分析通过数据依赖追踪值流动,广泛用于缺陷检测;但路径敏感分析需实例化函数摘要,导致时间和内存开销巨大。作者观察到,盲目为函数计算摘要会产生大量与待查缺陷无关的冗余计算。为此,论文提出首个能有效识别并消除冗余摘要的方法,在不牺牲可靠性的前提下缩减被调函数摘要集合。在大型程序上,该方法将最先进值流分析的耗时和内存分别降低约45%和27%,可识别近80%冗余摘要,额外开销极小;在最大mysqld项目中节省8107秒而仅增加17.31秒,性能增益达468.48倍,平均增益632.1倍。
Value flow analysis that tracks the flow of values via data dependence is a widely used technique for detecting a broad spectrum of software bugs. However, the scalability issue often deteriorates when high precision (i.e., path-sensitivity) is required, as the instantiation of function summaries becomes excessively time- and memory-intensive. The primary culprit, as we observe, is the existence of redundant computations resulting from blindly computing summaries for a function, irrespective of whether they are related to bugs being checked. To address this problem, we present the first approach that can effectively identify and eliminate redundant summaries, thereby reducing the size of collected summaries from callee functions without compromising soundness or efficiency. Our evaluation on large programs demonstrates that our identification algorithm can significantly reduce the time and memory overhead of the state-of-the-art value flow analysis by$\mathbf{4 5 \%}$and$\mathbf{2 7 \%}$, respectively. Furthermore, the identification algorithm demonstrates remarkable efficiency by identifying nearly 80 % of redundant summaries while incurring a minimal additional overhead. In the largest mysqld project, the identification algorithm reduces the time by 8107 seconds ($\mathbf{2. 2 5}$hours) with a mere$\mathbf{1 7. 3 1}$seconds of additional overhead, leading to a ratio of time savings to paid overhead (i.e., performance gain) of$\mathbf{4 6 8. 4 8} \times$. In total, our method attains an average performance gain of$632.1 \times$.
DOI 原文 ·
@inproceedings{paperbot8809,
title = {Boosting Path-Sensitive Value Flow Analysis Via Removal of Redundant Summaries},
author = {Yongchao Wang and Yuandao Cai and Charles Zhang},
booktitle = {ICSE},
year = {2025},
doi = {10.1109/icse55347.2025.00195}
}