Header menu link for other important links
X
Compare less, defer more: Scaling value-contexts based whole-program heap analyses
Manas Thakur,
Published in Association for Computing Machinery
2019
Pages: 135 - 146
Abstract
The precision of heap analyses determines the precision of several associated optimizations, and has been a prominent area in compiler research. It has been shown that context-sensitive heap analyses are more precise than the insensitive ones, but their scalability continues to be a cause of concern. Though the value-contexts approach improves the scalability of classical call-string based context-sensitive analyses, it still does not scale well for several popular whole-program heap analyses. In this paper, we propose a three-stage analysis approach that lets us scale complex whole-program value-contexts based heap analyses for large programs, without losing their precision. Our approach is based on a novel idea of level-summarized relevant value-contexts (LSRV-contexts), which take into account an important observation that we do not need to compare the complete value-contexts at each call-site. Our overall approach consists of three stages: (i) a fast pre-analysis stage that finds the portion of the caller-context which is actually needed in the callee; (ii) a main-analysis stage which uses LSRV-contexts to defer the analysis of methods that do not impact the callers’ heap and analyze the rest efficiently; and (iii) a post-analysis stage that analyzes the deferred methods separately. We demonstrate the usefulness of our approach by using it to perform whole-program context-, flow- and field-sensitive thread-escape analysis and control-flow analysis of Java programs. Our evaluation of the two analyses against their traditional value-contexts based versions shows that we not only reduce the analysis time and memory consumption significantly, but also succeed in analyzing otherwise unanalyzable programs in less than 40 minutes. © 2019 Association for Computing Machinery.
About the journal
JournalData powered by TypesetACM International Conference Proceeding Series
PublisherData powered by TypesetAssociation for Computing Machinery
Open AccessNo
Concepts (10)
  •  related image
    Scalability
  •  related image
    Context sensitive
  •  related image
    Context sensitivity
  •  related image
    Context-sensitive analysis
  •  related image
    LSRV-CONTEXTS
  •  related image
    MEMORY CONSUMPTION
  •  related image
    Static program analysis
  •  related image
    Traditional values
  •  related image
    VALUE-CONTEXTS
  •  related image
    Program compilers