Isolating Compiler Bugs through Compilation Steps Analysis
Yujie Liu, Mingxuan Zhu, Shengyu Cheng, Dan Hao
TL;DR
This paper tackles the challenge of isolating compiler bugs by moving beyond black-box input mutations to a causal analysis of the internal compilation steps. It introduces CompSCAN, a three-stage framework that constructs an Initial Failing Sequence, identifies bug-causing steps, collects associated code, and computes suspiciousness via a step-aware scoring mechanism with tail pruning. Across 125 LLVM and 60 GCC bugs, CompSCAN consistently outperforms state-of-the-art baselines (ETEM and ODFL) in both accuracy (Top-n/ranks) and runtime, with statistical significance and large effect sizes. The approach demonstrates strong generalizability and practical impact for rapid and precise compiler debugging, leveraging step-level insights to directly localize root-cause code inside complex compiler pipelines.
Abstract
Compilers are essential to software systems, and their bugs can propagate to dependent software. Ensuring compiler correctness is critical. However, isolating compiler bugs remains challenging due to the internal complexity of compiler execution. Existing techniques primarily mutate compilation inputs to generate passing and failing tests, but often lack causal analysis of internal steps, limiting their effectiveness. To address this limitation, we propose CompSCAN, a novel compiler bug isolation technique that applies analysis over the sequence of compilation steps. CompSCAN follows a three-stage process: (1) extracting the array of compilation steps that leads to the original failure, (2) identifying bug-causing steps and collecting corresponding compiler code elements, and (3) calculating suspicious scores for each code element and outputting a suspicious ranking list as the bug isolation result. We evaluate CompSCAN on 185 real-world LLVM and GCC bugs. Results show that CompSCAN outperforms state-of-the-art techniques in both effectiveness and efficiency. CompSCAN successfully isolates 50, 85, 100, and 123 bugs within the Top-1/3/5/10 ranks, respectively. Compared with ETEM and ODFL, two state-of-the-art compiler bug isolation techniques, CompSCAN achieves relative improvements of 44.51% / 50.18% / 36.24% / 24.49% over ETEM, and 31.58% / 49.12% / 44.93% / 21.78% over ODFL on those metrics. Moreover, CompSCAN runs faster on average per bug than both baselines.
