AI 中文总结
该研究提出在指针分析前对中间表示应用语义保持的编译器优化的模块化方法,经实证验证可使指针分析最高加速3.14倍、内存减少1.94倍且精度基本不变,为相关领域提供了新方向。
AI 中文摘要
指针分析是编译器优化、切片、漏洞检测与验证等众多静态分析应用的核心基础。离线简化是提升性能的常用手段,但现有方法常与特定分析算法紧密耦合,且受限于一组简化规则。本文提出新视角:在指针分析前,将保持语义的编译器优化直接应用于中间表示(IR)。该策略具有模块化、与分析无关的特点,可轻松集成至现有工具。我们采用多样程序及三种指针分析开展实证研究,结果显示性能提升显著——加速最高达3.14倍,内存减少1.94倍,精度基本未变。我们还分析了优化开销与分析加速间的权衡,量化了IR结构变化,评估了优化配置的特征,并确定了未来研究的有前景方向。
英文摘要
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.