Skip to content
Preprint

IncSFS: Incremental Full-Sparse Flow-Sensitive Pointer Analysis for C/C++

Aug 2026 · 0 citations · 47 references
Computer Science

TL;DR

This work introduces IncSFS, the first incremental full-sparse flow-sensitive pointer analysis algorithm for C/C++ programs that propagates increases and decreases in points-to sets in an interleaved manner, supporting code deletion and insertion within a single analysis pass.

Abstract

Pointer analysis is a fundamental technique for compiler optimization and program analysis. Flow-sensitive pointer analysis provides high precision but is difficult to scale to large projects. Tailored for rapid iteration scenarios where software evolves continuously, we introduce IncSFS, the first incremental full-sparse flow-sensitive pointer analysis algorithm for C/C++ programs. IncSFS first transforms the value-flow graph into a constraint graph and performs strongly connected component detection to ensure precision. It then propagates increases and decreases in points-to sets in an interleaved manner, supporting code deletion and insertion within a single analysis pass. IncSFS is guaranteed to terminate and compute the least fixed point when the points-to relation remains object-acyclic during analysis. Experiments on six large-scale real-world projects show that IncSFS is precise and efficient, achieving average speedups of 9.60x over full flow-sensitive pointer analysis and 5.84x over the traditional reset-recompute approach. It also improves efficiency by 15.8% over state-of-the-art incremental pointer analysis algorithms that propagate points-to-set changes.

View source

Similar papers

Preprint Aug 2026

Accelerating C/C++ Pointer Analysis via Compiler-Based Offline Simplifications

This paper explores a new perspective: applying semantic-preserving compiler optimizations directly to intermediate representation (IR) before pointer analysis, which is modular, analysis-agnostic, and easily integrates with existing tools.

Zi-Nan Gu, Pei-Sen Yao, Kui Ren · 0 citations
Open access Oct 2026

Heap Abstraction via Early-Confluent Object Merging for Pointer Analysis

Heap abstraction critically affects both the efficiency and precision of pointer analysis for Java programs. By merging heap objects allocated at different program points, heap abstractions can significantly improve analysis efficiency, but often at the cost of precision. Mahjong, a state-of-the-art heap abstraction ba...

Jin-Peng Wang, Yu-Fei Liang, Zhong-Sheng Zhan et al. · 0 citations

Leveraging Copy-and-Patch JIT Compilation for Low-Overhead Dynamic Program Analysis

This paper explores copy-and-patch as a foundation for dynamic program analysis, and implements four analyses on top of an existing copy-and-patch JIT for R: code instrumentation, code coverage, performance profiling, and native debugging.

Martin Kocourek, Filip Křikava, Jan Vitek · 0 citations
Open access Oct 2026

Multi-stage On-Demand Program Slicing for Modular Analysis of Multi-threaded Programs

Precise analysis of multi-threaded programs requires combining flow-sensitive pointer analysis (FSPTA) with interleaving and lock analysis (ILA) to reason about cross-thread value flows under feasible concurrent executions. ILA computes may-happen-in-parallel (MHP) relations and lock-release spans to determine when sha...

Jia-Wei Yang, Xiao Cheng, Jia-Wei Wang et al. · 0 citations
Preprint Sep 2026

Pack Iteration in Swift: Ordinary Control Flow for Variadic Generics

Variadic generics are a powerful tool for type-safe meta-programming. Yet in most widely used languages, they remain an"expert-only"feature due to their reliance on complex patterns such as recursive decomposition or expansion expressions that do not compose naturally with ordinary control flow. In C++, for example, ac...

S. Nerush, Eitan Frachtenberg · 0 citations
Preprint Sep 2026

MallocSan: A Memory Safety Tool for Native Closed-Source Applications

Memory-corruption errors remain a leading cause of high-impact vulnerabilities in C and C++ software. Deterministic detection, however, remains difficult to deploy: compiler-based sanitizers require source code and control of the build pipeline, hardware-assisted schemes depend on specific platforms, and dynamic binary...

Adel Belkhiri, Michel Dagenais, Maxime Lamothe · 0 citations

We use cookies to run the site and, with your consent, for analytics and to show ads. See our Cookie Policy.