kirancodes.me
To Proof Maintenance & Beyond!

Stack Filtering: Elevating Precision and Efficiency in Rust Pointer Analysis

Wei Li, Dongjie He, Wenguang Chen, Jingling Xue

Abstract

Context-sensitive pointer analysis tends to generate excessive spurious points-to relations, causing inefficiency and imprecision. We introduce stack filtering, a novel approach using Rust's stack object lifetime information to address this issue. It identifies and eliminates context-sensitive points-to relations involving variables pointing to inactive stack objects beyond their lifetimes. Stack filtering is a lightweight two-phase process. It first assesses stack object liveness based on function reachability, leveraging an efficient call graph generated by Rapid Type Analysis (RTA). Then, this filtering is applied during the main pointer analysis.

Related papers