The Fine-Grained Complexity of Andersen's Pointer Analysis

06/02/2020
by   Andreas Pavlogiannis, et al.
0

Pointer analysis is one of the fundamental problems in static program analysis. Given a set of pointers, the task is to produce a useful over-approximation of the memory locations that each pointer may point-to at runtime. The most common formulation is Andersen's Pointer Analysis (APA), defined as an inclusion-based set of m pointer constraints over a set of n pointers. Existing algorithms solve APA in O(n^2· m) time, while it has been conjectured that the problem has no truly sub-cubic algorithm, with a proof so far having remained elusive. It is also well-known that APA can be solved in O(n^2) time under certain sparsity conditions that hold naturally in some settings. Besides these simple bounds, the complexity of the problem has remained poorly understood. In this work we draw a rich fine-grained complexity landscape of APA, and present upper and lower bounds. First, we establish an O(n^3) upper-bound for general APA, improving over O(n^2· m) as n=O(m). Second, we show that sparse instances can be solved in O(n^3/2) time, improving the current O(n^2) bound. Third, we show that even on-demand APA ("may a specific pointer a point to a specific location b?") has an Ω(n^3) (combinatorial) lower bound under standard complexity-theoretic hypotheses. This formally establishes the long-conjectured "cubic bottleneck" of APA, and shows that our O(n^3)-time algorithm is optimal. Fourth, we show that under mild restrictions, APA is solvable in Õ(n^ω) time, where ω<2.373 is the matrix-multiplication coefficient. It is believed that ω=2+o(1), in which case this bound becomes quadratic. Fifth, we show that even under such restrictions, even the on-demand problem has an Ω(n^2) lower bound under standard complexity-theoretic hypotheses, and hence our algorithm is optimal when ω=2+o(1).

READ FULL TEXT

page 1

page 2

page 3

page 4

06/02/2020

The Fine-Grained and Parallel Complexity of Andersen's Pointer Analysis

Pointer analysis is one of the fundamental problems in static program an...
07/10/2020

Conditional Lower Bound for Inclusion-Based Points-to Analysis

Inclusion-based (i.e., Andersen-style) points-to analysis is a fundament...
10/01/2019

Optimal Dyck Reachability for Data-Dependence and Alias Analysis

A fundamental algorithmic problem at the heart of static analysis is Dyc...
07/08/2021

Dynamic Data-Race Detection through the Fine-Grained Lens

Data races are among the most common bugs in concurrency. The standard a...
07/16/2018

Fast Witness Counting

We study the witness-counting problem: given a set of vectors V in the d...
10/01/2018

Polyline Simplification has Cubic Complexity

In the classic polyline simplification problem we want to replace a give...
01/19/2021

Translating Hausdorff is Hard: Fine-Grained Lower Bounds for Hausdorff Distance Under Translation

Computing the similarity of two point sets is a ubiquitous task in medic...