Java JIT Testing with Template Extraction

2024年03月17日
  • 简介
    我们提出了LeJit,一个基于模板的框架,用于测试Java即时编译器(JIT)。像最近的基于模板的框架一样,LeJit执行一个模板——一个带有空缺的程序——以生成具体的程序,作为输入提供给Java JIT编译器。LeJit通过将表达式转换为空缺来自动生成模板程序,同时生成必要的粘合代码(即生成非原始类型实例的代码),以使生成的模板可执行。我们已经成功地使用LeJit测试了一系列流行的Java JIT编译器,在HotSpot中发现了5个错误,在OpenJ9中发现了9个错误,在GraalVM中发现了1个错误。所有这些错误都已被Oracle和IBM的开发人员确认,其中11个错误以前是未知的,包括两个CVE(公共漏洞和曝光)。我们与几种现有方法的比较表明,LeJit是它们的补充,是确保Java JIT编译器正确性的强大技术。
  • 图表
  • 解决问题
    LeJit: 一个用于测试Java JIT编译器的模板框架
  • 关键思路
    使用模板程序自动生成具体程序,测试Java JIT编译器的正确性
  • 其它亮点
    LeJit成功测试了多个流行的Java JIT编译器,并发现了多个未知的漏洞,包括两个CVE;LeJit是一种强大的Java JIT编译器测试技术,与现有方法互补
  • 相关研究
    与LeJit相关的研究包括:Template-based JIT Compiler Testing with Synthesized Benchmarks,JitFinder:Identifying Performance Problems in Modern Java Applications,Automated Testing of Just-In-Time Compilers
许愿开讲
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论