Hermes: Making Path-Sensitive Pointer Analysis Scalable for Sparse Value-Flow Analysis
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 4.79× for pointer analysis and bug search, respectively, without sacrificing the effectiveness of bug detection.
Authors
- Qingkai Shi (ORCID: https://orcid.org/0000-0002-8297-8998)
- Huaxun Huang
- Yue He
- Rongxin Wu (ORCID: https://orcid.org/0000-0002-4648-3795)
Institutions
- Xiamen University (CN)
- Nanjing University (CN)
Publication Details
- Journal
- Proceedings of the ACM on Programming Languages
- Published
- 2026-04-10
- DOI
- https://doi.org/10.1145/3798211
- Primary Topic
- Software Engineering Research
- Type
- article
- Field-Weighted Citation Impact
- 0.00