arrow
Return

IFDS-based Context Debloating for Object-Sensitive Pointer Analysis

delete2023-05-27
delete4
PRE
AI
D
Dongjie He *
J
Jingbo Lu
J
Jingling Xue
DOI:10.1145/3579641delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Object-sensitive pointer analysis, which separates the calling contexts of a method by its receiver objects, is known to achieve highly useful precision for object-oriented languages such as Java. Despite recent advances, all object-sensitive pointer analysis algorithms still suffer from the scalability problem due to the combinatorial explosion of contexts in large programs. In this article, we introduce a new approach, Conch, that can be applied to debloat contexts for all object-sensitive pointer analysis algorithms, thereby improving significantly their efficiency while incurring a negligible loss of precision. Our key insight is to approximate a recently proposed set of two necessary conditions for an object in a program to be context-sensitive, i.e., context-dependent (whose precise verification is undecidable) with a set of three linearly verifiable conditions in terms of the number of edges in the pointer assignment graph (PAG) representation of the program. These three linearly verifiable conditions, which turn out to be almost always necessary in practice, are synthesized from three key observations regarding context-dependability for the objects created and used in real-world object-oriented programs. To develop a practical implementation for Conch, we introduce an IFDS-based algorithm for reasoning about object reachability in the PAG of a program, which runs linearly in terms of the number of edges in the PAG. By debloating contexts for three representative object-sensitive pointer analysis algorithms, which are applied to a set of representative Java programs, Conch can speed up these three baseline algorithms substantially at only a negligible loss of precision (less than 0.1%) with respect to several commonly used precision metrics. In addition, Conch also improves their scalability by enabling them to analyze substantially more programs to completion than before (under a time budget of 12 hours). Conch has been open-sourced (http://www.cse.unsw.edu.au/similar to corg/tools/conch), opening up new opportunities for other researchers and practitioners to further improve this research. To demonstrate this, we introduce one extension of Conch to accelerate further the three baselines without losing any precision, providing further insights on extending Conch to make precision-efficiency tradeoffs in future research.
Keywords:
Pointer analysis
object sensitivity
context debloating
IFDS

Journal

A
ACM Transactions on Software Engineering and Methodology
IF:
6.2
Papers:
1.2K
Citations:
3.4K

Organization

No organization information available
Cited Papers

Cited Papers

An Elective Research Year in Orthopaedic Residency
err2006-08-01
err0
PREAI
errLee S Segal; Kevin P Black; Edwards P Schwentker; Vincent D Pellegrini
errShare
errSave
Magnetic domain wall creep in the presence of an effective interlayer coupling field
err2008-11-01
err0
PREAI
errP.J. Metaxas; J.P. Jamet; J. Ferré; B. Rodmacq; B. Dieny; R.L. Stamps
errShare
errSave
Simplifying the Jargon of Community Ecology: A Conceptual Approach
err1996-02-01
err0
PREAI
errJ. E. Fauth; J. Bernardo; M. Camara; W. J. Resetarits,; J. Van Buskirk; S. A. McCollum
errShare
errSave
researcher View more