Write a Blog >>
Wed 12 Oct 2022 14:10 - 14:30 at Banquet B - Technical Session 15 - Compilers and Languages Chair(s): Lingming Zhang

We present JAttack, a framework that enables template-based testing for compilers. Using JAttack, a developer writes a template program that describes a set of programs to be generated and given as test inputs to a compiler. Such a framework enables developers to incorporate their domain knowledge on testing compilers, giving a basic program structure that allows for exploring complex programs that can trigger sophisticated compiler optimizations. A developer writes a template program in the host language (Java) that contains holes to be filled by JAttack. Each hole, written using a domain-specific language, constructs a node within an extended abstract syntax tree (eAST). An eAST node defines the search space for the hole, i.e., a set of expressions and values. JAttack generates programs by executing templates and filling each hole by randomly choosing expressions and values (available within the search space defined by the hole). Additionally, we introduce several optimizations to reduce JAttack’s generation cost. While JAttack could be used to test various compiler features, we demonstrate its capabilities in helping test just-in-time (JIT) Java compilers, whose optimizations occur at runtime after a sufficient number of executions. Using JAttack, we have found six critical bugs that were confirmed by Oracle developers. Four of them were previously unknown, including two unknown CVEs (Common Vulnerabilities and Exposures). JAttack shows the power of combining developers’ domain knowledge (via templates) with random testing to detect bugs in JIT compilers.

Wed 12 Oct

Displayed time zone: Eastern Time (US & Canada) change

13:30 - 15:30
Technical Session 15 - Compilers and LanguagesJournal-first Papers / Research Papers / Industry Showcase at Banquet B
Chair(s): Lingming Zhang University of Illinois at Urbana-Champaign
13:30
20m
Research paper
Cornucopia: A Framework for Feedback Guided Generation of Binaries
Research Papers
Vidush Singhal Purdue University, Akul Abhilash Pillai Purdue University, Charitha Saumya Purdue University, Milind Kulkarni Purdue University, Aravind Machiry Purdue University
13:50
20m
Paper
CSMITHEDGE: More Effective Compiler Testing by Handling Undefined Behaviour Less Conservatively
Journal-first Papers
Karine Even-Mendoza Imperial College London, Cristian Cadar Imperial College London, UK, Alastair F. Donaldson Imperial College London
14:10
20m
Research paper
Compiler Testing using Template Java ProgramsACM SIGSOFT Distinguished Paper Award
Research Papers
Zhiqiang Zang University of Texas at Austin, Nathan Wiatrek The University of Texas at Austin, Milos Gligoric University of Texas at Austin, August Shi University of Texas at Austin
DOI Pre-print
14:30
20m
Industry talk
Towards Understanding the Performance of Rust
Industry Showcase
Yuchen Zhang Stevens Institute of Technology, Yunhang Zhang The University of Utah, Georgios Portokalidis Stevens Institute of Technology, Jun Xu The University of Utah
14:50
20m
Research paper
TransRepair: Context-aware Program Repair for Compilation ErrorsVirtual
Research Papers
Xueyang Li SKLOIS, Institute of Information Engineering, Chinese Academy of Sciences, China, Shangqing Liu Nanyang Technological University, Ruitao Feng Nanyang Technological University, Guozhu Meng Institute of Information Engineering, Chinese Academy of Sciences, Xiaofei Xie Singapore Management University, Singapore, Kai Chen SKLOIS, Institute of Information Engineering, Chinese Academy of Sciences, China, Yang Liu Nanyang Technological University
15:10
20m
Research paper
Enriching Compiler Testing with Real Program from Bug ReportVirtual
Research Papers
Hao Zhong Shanghai Jiao Tong University