paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Hermes: Making Path-Sensitive Pointer Analysis Scalable for Sparse Value-Flow Analysis

Hermes:使路径敏感指针分析可扩展以支持稀疏值流分析
OOPSLA 10(OOPSLA1)2026匹配度 3/10 · 论文属于纯静态分析/指针分析的可扩展性工作,未涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析,虽与程序分析基础相关,但不在当前核心交叉方向上。引用 0 inbox
Yuxuan He, Ruilin Jiang, He Zhang, Qingkai Shi, Huaxun Huang, Rongxin Wu
crossref: 2026-09-10

AI 速览

一句话:通过符号化内存副作用构建惰性符号表达式图,按需生成过程间值流,大幅加速路径敏感指针分析与缺陷搜索。

稀疏值流分析(SVFA)是检测空指针解引用、内存泄漏等缺陷的关键技术,但其依赖的路径敏感指针分析在工业级项目上面临严重可扩展性问题,尤其是摘要爆炸(summary-explosion)。本文提出 Hermes:它将内存副作用符号化,并构建一种不完整的稀疏值流图——惰性符号表达式图(LSEG);在此结构上,Hermes 仅在必要时为缺陷检测构建过程间值流,从而显著降低指针分析开销并精简缺陷搜索路径。作者在大规模真实项目上进行了评估,结果表明,与当前最优方法相比,Hermes 在指针分析和缺陷搜索上分别取得至少 9.84 倍的平均加速,且不损失缺陷检测的有效性。

问题
路径敏感指针分析在工业级项目上因摘要爆炸等问题难以扩展,成为稀疏值流分析的瓶颈。
方法
提出 Hermes,将内存副作用符号化并构建不完整的惰性符号表达式图(LSEG),按需构建与缺陷检测相关的过程间值流。
评估
在大型真实项目上与当前最优方法对比,指针分析与缺陷搜索平均加速至少 9.84 倍,且缺陷检测效果不下降。
原文摘要(Abstract)

Sparse Value-Flow Analysis (SVFA) is essential for detecting software bugs such as null pointer dereference and memory leak. However, SVFA heavily relies on path-sensitive pointer analysis, which faces significant scalability challenges when analyzing industrial-scale projects, notably the summary-explosion problem. To address this issue, we propose Hermes , which symbolizes memory side effects and constructs an incomplete Sparse Value-Flow Graph (SVFG) called Lazy Symbolic Expression Graph (LSEG). Leveraging this structure, Hermes builds inter-procedural value flows relevant to bug detection only when necessary, significantly reducing the overhead of pointer analysis and streamlining the bug-search paths. Evaluations on large-scale real-world projects demonstrate that, compared to the state-of-the-art, Hermes achieves average speedups of at least 9.84× and 9.84× for pointer analysis and bug search, respectively, without sacrificing the effectiveness of bug detection.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot3842,
  title = {Hermes: Making Path-Sensitive Pointer Analysis Scalable for Sparse Value-Flow Analysis},
  author = {Yuxuan He and Ruilin Jiang and He Zhang and Qingkai Shi and Huaxun Huang and Rongxin Wu},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {10},
  number = {OOPSLA1},
  year = {2026},
  doi = {10.1145/3798211}
}