Accelerating Object-Sensitive Pointer Analysis by Exploiting Object Containment and Reachability
Fri 16 Jul 2021 10:00 - 10:20 at ECOOP 1 - Types / Program Analysis (time band 3) Chair(s): George Fourtounis
Object-sensitive pointer analysis for an object-oriented program can be accelerated if context-sensitivity can be selectively applied to some precision-critical variables/objects in the program. Existing pre-analyses, which are performed to make such selections, either preserve precision but achieve limited speedups by reasoning about all the possible value flows in the program conservatively or achieve greater speedups but sacrifice precision (often unduly) by examining only some but not all the value flows in the program heuristically. In this paper, we introduce a new approach, named \tool, that represents a sweet spot between the two existing ones, as it is designed to enable object-sensitive pointer analysis to run significantly faster than the former approach and achieve significantly better precision than the latter approach. \tool is simple, lightweight yet effective due to two novel aspects in its design. First, we exploit a key observation that some precision-uncritical objects can be approximated based on the object-containment relationship pre-established (by applying Andersen’s analysis). This approximation introduces a small degree yet the only source of imprecision into \tool. Second, leveraging this initial approximation, we introduce a simple DFA to reason about object reachability for a method intra-procedurally from its entry to its exit along all the possible value flows established by its statements to finalize its precision-critical variables/objects identified. We have validated \tool with a soon-to-be-open-sourced implementation in \Soot against the state of the art using a set of 12 popular Java benchmarks and applications.
Fri 16 JulDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
02:00 - 03:20 | Program Analysis / Runtimes (time band 2)ECOOP Technical Papers at ECOOP 1 Chair(s): Werner Dietl University of Waterloo | ||
02:00 20mTalk | Gradual Program Analysis for Null Pointers ECOOP Technical Papers Sam Estep Carnegie Mellon University, Jenna DiVincenzo (Wise) Carnegie Mellon University, Jonathan Aldrich Carnegie Mellon University, Éric Tanter University of Chile, Johannes Bader Jane Street, Joshua Sunshine Carnegie Mellon University DOI Pre-print Media Attached File Attached | ||
02:20 20mTalk | Best-Effort Lazy Evaluation for Python Software Built On APIs ECOOP Technical Papers DOI | ||
02:40 20mTalk | Lifted Static Analysis of Dynamic Program Families by Abstract Interpretation ECOOP Technical Papers DOI | ||
03:00 20mTalk | Accelerating Object-Sensitive Pointer Analysis by Exploiting Object Containment and Reachability ECOOP Technical Papers Dongjie He University of New South Wales, Jingbo Lu UNSW Sydney, Yaoqing Gao Huawei Canada, Jingling Xue UNSW DOI Pre-print |