Unification-based Pointer Analysis without Oversharing

06/04/2019
by   Jakub Kuderski, et al.
0

Pointer analysis is indispensable for effectively verifying heap-manipulating programs. Even though it has been studied extensively, there are no publicly available pointer analyses that are moderately precise while scalable to large real-world programs. In this paper, we show that existing context-sensitive unification-based pointer analyses suffer from the problem of oversharing -- propagating too many abstract objects across the analysis of different procedures, which prevents them from scaling to large programs. We present a new pointer analysis for LLVM, called TeaDsa, without such an oversharing. We show how to further improve precision and speed of TeaDsa with extra contextual information, such as flow-sensitivity at call- and return-sites, and type information about memory accesses. We evaluate TeaDsa on the verification problem of detecting unsafe memory accesses and compare it against two state-of-the-art pointer analyses: SVF and SeaDsa. We show that TeaDsa is one order of magnitude faster than either SVF or SeaDsa, strictly more precise than SeaDsa, and, surprisingly, sometimes more precise than SVF.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/06/2020

A Thread-Local Semantics and Efficient Static Analyses for Race Free Programs

Data race free (DRF) programs constitute an important class of concurren...
research
11/29/2018

Exploiting Pointer Analysis in Memory Models for Deductive Verification

Cooperation between verification methods is crucial to tackle the challe...
research
04/24/2023

Context Sensitivity without Contexts: A Cut-Shortcut Approach to Fast and Precise Pointer Analysis

Over the past decades, context sensitivity has been considered as one of...
research
08/11/2022

Correlating Effectiveness of Pointer Analysis Techniques with Patterns in Embedded System Code

A pointer analysis maps the pointers in a program to the memory location...
research
11/07/2022

Symbolic Abstract Heaps for Polymorphic Information-flow Guard Inference (Extended Version)

In the realm of sound object-oriented program analyses for information-f...
research
06/19/2014

Pushdown flow analysis with abstract garbage collection

In the static analysis of functional programs, pushdown flow analysis an...
research
09/03/2021

Indexing Context-Sensitive Reachability

Many context-sensitive data flow analyses can be formulated as a variant...

Please sign up or login with your details

Forgot password? Click here to reset