Precision-Guided Context Sensitivity for Pointer Analysis

Yue Li, Tian Tan, Anders Møller, Yannis Smaragdakis

Research output: Contribution to journal/Conference contribution in journal/Contribution to newspaperJournal articleResearchpeer-review

57 Citations (Scopus)
250 Downloads (Pure)

Abstract

Context sensitivity is an essential technique for ensuring high precision in Java pointer analyses. It has been observed that applying context sensitivity partially, only on a select subset of the methods, can improve the balance between analysis precision and speed. However, existing techniques are based on heuristics that do not provide much insight into what characterizes this method subset. In this work, we present a more principled approach for identifying precision-critical methods, based on general patterns of value flows that explain where most of the imprecision arises in context-insensitive pointer analysis. Accordingly, we provide an efficient algorithm to recognize these flow patterns in a given program and exploit them to yield good tradeoffs between analysis precision and speed. Our experimental results on standard benchmark and real-world programs show that a pointer analysis that applies context sensitivity partially, only on the identified precision-critical methods, preserves effectively all (98.8%) of the precision of a highly-precise conventional context-sensitive pointer analysis (2-object-sensitive with a context-sensitive heap), with a substantial speedup (on average 3.4X, and up to 9.2X).

Original languageEnglish
Article number141
JournalProceedings of the ACM on Programming Languages
Volume2
IssueOOPSLA
Pages (from-to)141:1-141:29
Number of pages29
ISSN2475-1421
DOIs
Publication statusPublished - 24 Oct 2018
EventThe ACM SIGPLAN conference on Systems, Programming, Languages and Applications: Software for Humanity - Boston, United States
Duration: 4 Nov 20189 Nov 2018
Conference number: 2018
https://2018.splashcon.org/home

Conference

ConferenceThe ACM SIGPLAN conference on Systems, Programming, Languages and Applications: Software for Humanity
Number2018
Country/TerritoryUnited States
CityBoston
Period04/11/201809/11/2018
Internet address

Keywords

  • Java
  • Points-to analysis
  • Static analysis

Fingerprint

Dive into the research topics of 'Precision-Guided Context Sensitivity for Pointer Analysis'. Together they form a unique fingerprint.

Cite this