由 ACM SIGOPS 和 USENIX 共同主办的 The 29th ACM Symposium on Operating Systems Principles (SOSP 2023) 于 10 月 23-26 日在德国科布伦茨召开,南京大学计算机软件所团队论文 “Validating JIT Compilers via Compilation Space Exploration” 获得大会最佳论文奖 (Best Paper Award)。
Just-in-Time 编译器由于存在层次化编译,使得其编译优化相关逻辑成为极难覆盖的深层次逻辑,因此也是现代编译器中可靠性最薄弱的部件之一。本文创新地引入了 “编译空间” 这一概念和 “编译空间探索” 方法,旨在为现代编程语言虚拟机 (LVMs) 中的 Just-in-Time (JIT) 编译器提供一个系统全面的验证框架。对于单个程序而言,编译空间表达了一 LVM 对其所有可能的 JIT 编译策略,这些策略可以相互验证,确保JIT编译的正确性;为了在不依赖特定 LVM 的前提下,以轻量化且系统化的方式快速探索编译空间,本文创造性地对测试程序进行变异处理,引入了与 JIT 紧密相关而语义保持不变的代码结构,从而生成能产生多样化 JIT 编译策略的变异程序,实现对编译空间的间接探索。
基于此,我们开发了适用于 Java 虚拟机 (JVM) 的工具,并在三个广泛使用的生产级JVM——HotSpot、OpenJ9 和 Android Runtime 上共发现并上报了 85 个缺陷,其中 53 个已被确认或修复,而且许多被认定为严重级别。特别值得一提的是,所有发现的缺陷均涉及 JIT 编译器,我们甚至收到了来自 HotSpot 和 OpenJ9 开发者的感谢信。这些实验结果不仅印证了我们方法的有效性,也彰显了其实用价值。我们期待这一方法凭借其通用性和实用性,能够广泛应用于理解和验证更多编程语言虚拟机中的 JIT 编译器。
SOSP 是操作系统领域历史最悠久、声誉最高的国际会议之一,也是中国计算机学会推荐 A 类国际学术会议,1967 年设立以来,迄今已举办 29 届。今年,SOSP 从 43 篇录用论文中仅选择了 3 篇授予最佳论文奖。该论文工作由南京大学软件所团队和苏黎世联邦理工学院合作完成,论文作者为李聪博士、蒋炎岩副教授、许畅教授和苏振东教授。