Search papers, labs, and topics across Lattice.
This paper introduces a novel approach to pointer analysis by applying semantic-preserving compiler optimizations directly to the intermediate representation (IR) prior to analysis, which enhances performance without being tied to specific algorithms. The empirical study demonstrates significant improvements, achieving up to 3.14x speedup and 1.94x memory reduction across diverse programs while maintaining precision. Additionally, the authors analyze the trade-offs between optimization overhead and analysis speedup, providing insights into IR structure changes and future research directions.
Achieving up to 3.14x speedup in pointer analysis by leveraging compiler optimizations could revolutionize static analysis performance benchmarks.
Pointer analysis is a cornerstone of numerous static analysis applications, including compiler optimizations, slicing, bug detection, and verification. While offline simplification is a common approach to boosting performance, existing methods are often tightly coupled to specific analysis algorithms and limited to a set of simplification rules. This paper explores a new perspective: applying semantic-preserving compiler optimizations directly to intermediate representation (IR) before pointer analysis. This strategy is modular, analysis-agnostic, and easily integrates with existing tools. We conduct an empirical study using diverse programs and three pointer analyses. The results show substantial performance gains---up to 3.14x speedup and 1.94x memory reduction---while precision remains largely unchanged. We also analyze the trade-offs between optimization overhead and analysis speedup, quantify changes in IR structure, assess the characteristics of optimization configurations, and identify promising directions for future research.