无需控制流图的流敏感性:一种高效的 Andersen 风格流敏感指针分析
软件工程
2025-08-05 v1 编程语言
摘要
流敏感指针分析通过结合控制流来精确建模指针行为,是精确程序分析的重要组成部分。流敏感指针分析被广泛应用于别名分析、污点分析、程序理解、编译器优化等方面。现有的基于控制流图进行的流敏感指针分析方法,通过利用控制流信息的复杂技术,显著提升了指针分析的精度。然而,由于控制流图固有的复杂结构,它们在解析指向信息时不可避免地存在计算效率低下的问题。为了克服基于控制流图分析的效率低下问题,我们提出了 CG-FSPTA,一种基于流敏感约束图(FSConsG)的流敏感指针分析方法。CG-FSPTA 使用流敏感变体来利用集合约束图(通常用于流不敏感指针分析)的结构优势,同时保持变量定义和使用的流敏感性,从而允许结合复杂的图优化和动态求解技术。通过这种方式,CG-FSPTA 在保持流敏感分析精度的同时,实现了显著的效率提升。在基准程序上的实验评估表明,CG-FSPTA 在保持精度的同时,显著降低了内存使用和执行时间。特别是,通过在 FSConsG 中求解,与最先进方法相比,CG-FSPTA 实现了平均 33.05% 的内存减少,并将流敏感指针分析加速了 7.27 倍。这些实验结果突显了 CG-FSPTA 作为分析大规模软件系统可扩展解决方案的有效性,为未来高效程序分析框架的发展奠定了坚实基础。
引用
@article{arxiv.2508.01974,
title = {Flow Sensitivity without Control Flow Graph: An Efficient Andersen-Style Flow-Sensitive Pointer Analysis},
author = {Jiahao Zhang and Xiao Cheng and Yuxiang Lei},
journal= {arXiv preprint arXiv:2508.01974},
year = {2025}
}