ASE 2024 (series) / Research Papers /
Shoot Yourself in the Foot — Efficient Code Causes Inefficiency in Compiler Optimizations
Optimizations, a critical element within the compiler pipeline, is responsible for improving the efficiency of generated code. In this paper, we take a different angle to evaluate compiler optimizations than all existing works in compiler testing literature. In particular, we consider a specific scenario in software development, that is, when developers manually optimize a program to improve its performance, do compilers actually generate more efficient code with the help of developers’ optimizations?
To answer the above-mentioned question, we develop a simple approach which consists of (1) deoptimizing a program into a less efficient version of the original program, and then (2) comparing the size and performance of the generated code from each version of the source code. We realize this approach into a tool, called de3 (detect defects with deoptimizations), and use it to evaluate GCC and LLVM, two state-of-the-art, industry compilers. We observe that the extra optimizations presented in the original programs can be not only unhelpful, but more seriously counterproductive to both GCC and LLVM, resulting in the less efficient code generated overall. Out of our evaluation results, we summarized and reported 53 LLVM and 18 GCC defects, out of which 37 and 17 have been confirmed or fixed.
Our work pioneers a new pathway for evaluating compiler optimizations. More importantly, we expect our work to inspire new design principles for compiler development.
Tue 29 OctDisplayed time zone: Pacific Time (US & Canada) change
Tue 29 Oct
Displayed time zone: Pacific Time (US & Canada) change
10:30 - 12:00 | |||
10:30 15mTalk | Shoot Yourself in the Foot — Efficient Code Causes Inefficiency in Compiler Optimizations Research Papers Fengjuan Gao Nanjing University of Science and Technology, Hongyu Chen Nanjing University, Yuewei Zhou Rice University, Ke Wang Visa Research | ||
10:45 15mTalk | Rust-twins: Automatic Rust Compiler Testing through Program Mutation and Dual Macros Generation Research Papers Wenzhang Yang University of Science and Technology of China, Cuifeng Gao University of Science and Technology of China, Xiaoyuan Liu University of Science and Technology of China, Yuekang Li UNSW, Yinxing Xue University of Science and Technology of China | ||
11:00 15mTalk | Compiler Bug Isolation via Enhanced Test Program Mutation Research Papers Yujie Liu Peking University, Mingxuan Zhu Peking University, Jinhao Dong Peking University, Junzhe Yu Peking University, Dan Hao Peking University | ||
11:15 15mTalk | Incremental Context-free Grammar Inference in Black Box Settings Research Papers Feifei Li Tsinghua Shenzhen International Graduate School, Xiao Chen University of Newcastle, Xi Xiao Tsinghua Shenzhen International Graduate School, Tsinghua University, Xiaoyu Sun Australian National University, Australia, Chuan Chen Key Laboratory of Computing Power Network and Information Security, Ministry of Education, Shandong Computer Science Center (National Supercomputer Center in Jinan), Qilu University of Technology (Shandong Academy of Sciences), Jinan, China, Shaohua Wang Central University of Finance and Economics, Jitao Han Central University of Finance and Economics | ||
11:30 15mTalk | Typed and Confused: Studying the Unexpected Dangers of Gradual Typing Research Papers Dominic Troppmann CISPA Helmholtz Center for Information Security, Aurore Fass CISPA Helmholtz Center for Information Security, Cristian-Alexandru Staicu CISPA Helmholtz Center for Information Security | ||
11:45 15mTalk | Refinement Types for Visualization Research Papers Jingtao Xia University of California, Santa Barbara, Junrui Liu University of California, Santa Barbara, Nicholas Brown University of California, Santa Barbara, Yanju Chen University of California at Santa Barbara, Yu Feng University of California at Santa Barbara |