Learning graph-based heuristics for pointer analysis without handcrafting application-specific features

Minseok Jeon, Myungho Lee, Hakjoo Oh

Research output: Contribution to journalArticlepeer-review

Abstract

We present Graphick, a new technique for automatically learning graph-based heuristics for pointer analysis. Striking a balance between precision and scalability of pointer analysis requires designing good analysis heuristics. For example, because applying context sensitivity to all methods in a real-world program is impractical, pointer analysis typically uses a heuristic to employ context sensitivity only when it is necessary. Past research has shown that exploiting the program's graph structure is a promising way of developing cost-effective analysis heuristics, promoting the recent trend of "graph-based heuristics"that work on the graph representations of programs obtained from a pre-analysis. Although promising, manually developing such heuristics remains challenging, requiring a great deal of expertise and laborious effort. In this paper, we aim to reduce this burden by learning graph-based heuristics automatically, in particular without hand-crafted application-specific features. To do so, we present a feature language to describe graph structures and an algorithm for learning analysis heuristics within the language. We implemented Graphick on top of Doop and used it to learn graph-based heuristics for object sensitivity and heap abstraction. The evaluation results show that our approach is general and can generate high-quality heuristics. For both instances, the learned heuristics are as competitive as the existing state-of-the-art heuristics designed manually by analysis experts.

Original languageEnglish
Article number179
JournalProceedings of the ACM on Programming Languages
Volume4
Issue numberOOPSLA
DOIs
Publication statusPublished - 2020 Nov 13

Keywords

  • Context sensitivity
  • Data-driven static analysis
  • Heap abstraction
  • Machine learning for program analysis
  • Pointer analysis

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality

Fingerprint

Dive into the research topics of 'Learning graph-based heuristics for pointer analysis without handcrafting application-specific features'. Together they form a unique fingerprint.

Cite this