Scalable Pointer Analysis of Data Structures Using Semantic Models
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. Collections 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 are written manually, which is feasible because a model method usually consists of only a few statements. In addition to the context sensitive analysis of the model methods, the original methods are analyzed without context to ensure soundness. Our implementation in the static analysis of 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).
Sun 23 FebDisplayed time zone: Pacific Time (US & Canada) change
08:30 - 10:00
Session 4 OptimizationsMain Conference
Chair(s): Michel Steuwer University of Glasgow
|Mix Your Contexts Well: Opportunities Unleashed by Recent Advances in Scaling Context-Sensitivity|
Manas Thakur IIT Mandi, V Krishna Nandivada IIT Madras
|Secure Delivery of Program Properties Through Optimizing Compilation|
Son Tuan Vu Sorbonne Université, CNRS, Laboratoire d'Informatique de Paris 6, LIP6, Karine Heydemann Sorbonne Université, CNRS, Laboratoire d'Informatique de Paris 6, LIP6, Albert Cohen Google, Arnaud de Grandmaison Arm
|Scalable Pointer Analysis of Data Structures Using Semantic Models|
Pratik Fegade Carnegie Mellon University, Oracle Labs, Christian Wimmer Oracle Labs
|Vectorization-Aware Loop Unrolling with Seed Forwarding|
Rodrigo C. O. Rocha University of Edinburgh, Vasileios Porpodas Intel Corporation, Pavlos Petoumenos University of Edinburgh, Luís Góes PUC Minas, Zheng Wang University of Leeds, Murray Cole University of Edinburgh, Hugh Leather University of Edinburgh