Scalable pointer analysis of data structures using semantic models

9Citations
Citations of this article
8Readers
Mendeley users who have this article in their library.

Abstract

Pointer analysis is widely used as a base for different kinds of static analyses and compiler optimizations. Designing a scalable pointer analysis with acceptable precision for use in production compilers is still an open question. Modern object oriented languages like Java and Scala promote abstractions and code reuse, both of which make it difficult to achieve precision. Collection data structures are an example of a pervasively used component in such languages. But analyzing collection implementations with full context sensitivity leads to prohibitively long analysis times. We use semantic models to reduce the complex internal implementation of, e.g., a collection to a small and concise model. Analyzing the model with context sensitivity leads to precise results with only a modest increase in analysis time. The models must be written manually, which is feasible because a model method usually consists of only a few statements. Our implementation in GraalVM Native Image shows a rise in useful precision (1.35X rise in the number of checkcast statements that can be elided over the default analysis configuration) with a manageable performance cost (19% rise in analysis time).

Cite

CITATION STYLE

APA

Fegade, P., & Wimmer, C. (2020). Scalable pointer analysis of data structures using semantic models. In CC 2020 - Proceedings of the 29th International Conference on Compiler Construction (pp. 39–50). Association for Computing Machinery, Inc. https://doi.org/10.1145/3377555.3377885

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free