Boosting Compiler Testing via Compiler Optimization Exploration
Compilers are a kind of important software, and similar to the quality assurance of other software, compiler testing is one of the most widely-used ways of guaranteeing their quality. Compiler bugs tend to occur in compiler optimizations. Detecting optimization bugs needs to consider two main factors: 1) the optimization flags controlling the accessability of the compiler buggy code should be turned on; and 2) the test program should be able to trigger the buggy code. However, existing compiler testing approaches only consider the latter to generate effective test programs, but just run them under several pre-defined optimization levels (e.g., -O0, -O1, -O2, -O3, -Os in GCC).
To better understand the influence of compiler optimizations on compiler testing, we conduct the first empirical study, and find that 1) all the bugs detected under the widely-used optimization levels are also detected under the explored optimization settings (we call a combination of optimization flags turned on for compilation an optimization setting), while 83.54% of bugs are only detected under the latter; 2) there exist both inhibition effect and promotion effect among optimization flags for compiler testing, indicating the necessity and challenges of considering the factor of compiler optimizations in compiler testing.
We then propose the first approach, called COTest, by considering both factors to test compilers. Specifically, COTest first adopts machine learning (the XGBoost algorithm) to model the relationship between test programs and optimization settings, to predict the bug-triggering probability of a test program under an optimization setting. Then, it designs a diversity augmentation strategy to select a set of diverse candidate optimization settings for prediction for a test program. Finally, Top-K optimization settings are selected for compiler testing according to the predicted bug-triggering probabilities. The experiments on GCC and LLVM demonstrate its effectiveness, especially COTest detects 17 previously unknown bugs, 11 of which have been fixed or confirmed by developers.
Fri 19 MayDisplayed time zone: Hobart change
11:00 - 12:30 | Testing of database and low-level softwareTechnical Track / SEIP - Software Engineering in Practice / DEMO - Demonstrations / Journal-First Papers at Meeting Room 109 Chair(s): Michael Pradel University of Stuttgart | ||
11:00 15mTalk | Compiler Test-Program Generation via Memoized Configuration Search Technical Track Junjie Chen Tianjin University, Chenyao Suo College of Intelligence and Computing, Tianjin University, Jiajun Jiang Tianjin University, Peiqi Chen College of Intelligence and Computing, Tianjin University, Xingjian Li College of Intelligence and Computing, Tianjin University | ||
11:15 15mTalk | Generating Test Databases for Database-Backed Applications Technical Track | ||
11:30 15mTalk | Testing Database Engines via Query Plan Guidance Technical Track Pre-print | ||
11:45 15mTalk | Testing Database Systems via Differential Query Execution Technical Track Jiansen Song , Wensheng Dou Institute of Software Chinese Academy of Sciences, Ziyu Cui Institute of Software Chinese Academy of Sciences, Qianwang Dai Institute of Software Chinese Academy of Sciences, Wei Wang , Jun Wei Institute of Software at Chinese Academy of Sciences; University of Chinese Academy of Sciences; University of Chinese Academy of Sciences Chongqing School, Hua Zhong Institute of Software Chinese Academy of Sciences, Tao Huang Institute of Software Chinese Academy of Sciences Pre-print | ||
12:00 15mTalk | Achieving Last-Mile Functional Coverage in Testing Chip Design Software Implementations SEIP - Software Engineering in Practice Ming Yan College of Intelligence and Computing, Tianjin University, Junjie Chen Tianjin University, Hangyu Mao , Jiajun Jiang Tianjin University, Jianye Hao Tianjin University, Xingjian Li College of Intelligence and Computing, Tianjin University, Zhao Tian Tianjin University, Zhichao Chen , Dong Li , Dong Li , Yanwei Guo , Wulong Liu , Bin Wang , Yuefeng Sun , Yongshun Cui | ||
12:15 7mTalk | Randomized Differential Testing of RDF Stores DEMO - Demonstrations Rui Yang Institute of Software, Chinese Academy of Sciences, Yingying Zheng Institute of Software Chinese Academy of Sciences, Lei Tang Institute of Software Chinese Academy of Sciences, Wensheng Dou Institute of Software Chinese Academy of Sciences, Wei Wang , Jun Wei Institute of Software at Chinese Academy of Sciences; University of Chinese Academy of Sciences; University of Chinese Academy of Sciences Chongqing School Pre-print | ||
12:22 7mTalk | Boosting Compiler Testing via Compiler Optimization Exploration Journal-First Papers Junjie Chen Tianjin University, Chenyao Suo College of Intelligence and Computing, Tianjin University |