Precision-guided context sensitivity for pointer analysis

Scientific publication - Journal Article uoadl:2916887 208 Read counter

Unit:
Department of Informatics and Telecommunications
Title:
Precision-guided context sensitivity for pointer analysis
Languages of Item:
English
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).
Publication year:
2018
Authors:
Yue Li
Tian Tan
Anders Møller
Yannis Smaragdakis
Journal:
PACM/PL
Publisher:
Association for Computing Machinery (ACM)
Volume:
2
Number:
OOPSLA
Pages:
141:1-141:29
Keywords:
static analysis, points-to analysis, Java
Main subject category:
Technology - Computer science
Official URL (Publisher):
Project information:
ERC
3276511.pdf (834 KB) Open in new window