类型保持流分析和过程间拆箱(扩展版)
Type-Preserving Flow Analysis and Interprocedural Unboxing (Extended Version)
摘要:
过程间流分析可以用来消除不必要的堆分配对象(拆箱),在以前的工作中,我们已经展示了如何在保持垃圾收集器正确性的同时做到这一点。在本文中,我们扩展了流分析的概念,将类型,使类型化程序的分析和优化。我们应用这种类型化的分析,指定一个类型保持过程间拆箱优化,并证明优化保持类型和GC安全以及程序语义。我们还表明,拆箱优化可以独立地适用于单独编译的程序模块,并证明通过上下文等价的结果,拆箱隔离模块保留程序语义。
英文摘要:
Interprocedural flow analysis can be used to eliminate otherwise unnecessary heap allocated objects (unboxing), and in previous work we have shown how to do so while maintaining correctness with respect to the garbage collector. In this paper, we extend the notion of flow analysis to incorporate types, enabling analysis and optimization of typed programs. We apply this typed analysis to specify a type preserving interprocedural unboxing optimization, and prove that the optimization preserves both type and GC safety along with program semantics. We also show that the unboxing optimization can be applied independently to separately compiled program modules, and prove via a contextual equivalence result that unboxing a module in isolation preserves program semantics.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。