Isolating Compiler Bugs through Compilation Steps Analysis
By: Yujie Liu , Mingxuan Zhu , Shengyu Cheng and more
Potential Business Impact:
Finds computer code errors faster.
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.
Similar Papers
Using a Sledgehammer to Crack a Nut? Revisiting Automated Compiler Fault Isolation
Software Engineering
Finds computer code mistakes faster than old ways.
Targeted Testing of Compiler Optimizations via Grammar-Level Composition Styles
Software Engineering
Finds hidden computer code errors by testing one part at a time.
Compiler Optimization Testing Based on Optimization-Guided Equivalence Transformations
Software Engineering
Finds mistakes in computer code translation.