Tue 5 Dec 2023 14:45 - 15:00 at Golden Gate C3 - Program Analysis I Chair(s): Michael Pradel

Program reduction is a practical technique widely used for debugging compilers. To report a compiler bug with a bug-triggering program, one needs to minimize the program by removing bugirrelevant program elements first. Though existing program reduction techniques, such as C-Reduce and Perses, can automatically reduce a bug-triggering program as a whole, they overlook the fact that the degree of relevance of each remaining program element to the bug varies. To this end, we propose Pairwise Program Reduction (PPR), a new program reduction technique for minimizing a pair of programs w.r.t. certain properties. Given a seed program Ps , a variant Pv derived from Ps , and the properties Ps and Pv exhibit separately (e.g., Pv crashes a compiler whereas Ps does not), PPR not only reduces the sizes of Ps and Pv , but also minimizes the differences between Ps and Pv . The final result of PPR is a pair of minimized programs that still preserve the properties, but the minimized differences between the pair highlight the critical program elements that are highly related to the bug. To thoroughly evaluate PPR, we manually constructed the first pairwise benchmark from real-world compiler bugs (20 bugs in GCC and LLVM, 9 bugs in Rustc and 9 bugs in JerryScript). The evaluation results show that PPR significantly outperforms the baseline: DD, a variant of Delta Debugging. Specifically, on large and complex programs, PPR’s reduction results are only 0.6% of those by DD w.r.t. program size. The sizes of the minimized variants (i.e., Pv ) by PPR are also comparable to those by Perses and C-Reduce; but PPR offers more for debugging by highlighting the critical, bug-inducing changes via the minimized differences. Evaluation on Rust and JavaScript demonstrates PPR’s strong generality to other languages.

Tue 5 Dec

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

14:00 - 15:30
Program Analysis IResearch Papers / Demonstrations / Industry Papers at Golden Gate C3
Chair(s): Michael Pradel University of Stuttgart
14:00
15m
Talk
An Automated Approach to Extracting Local Variables
Research Papers
Xiaye Chi Beijing Institute of Technology, Hui Liu Beijing Institute of Technology, Guangjie Li National Innovation Institute of Defense Technology, Weixiao Wang Beijing Institute of Technology, Yunni Xia Chongqing University, Yanjie Jiang Peking University, Yuxia Zhang Beijing Institute of Technology, Weixing Ji Beijing Institute of Technology
Media Attached
14:15
15m
Talk
Incrementalizing Production CodeQL Analyses
Industry Papers
Tamás Szabó GitHub Next
DOI Media Attached
14:30
15m
Talk
Statistical Reachability Analysis
Research Papers
Seongmin Lee Max Planck Institute for Security and Privacy (MPI-SP), Marcel Böhme Max Planck Institute for Security and Privacy
Media Attached
14:45
15m
Talk
PPR: Pairwise Program Reduction
Research Papers
Mengxiao Zhang University of Waterloo, Zhenyang Xu University of Waterloo, Yongqiang Tian The Hong Kong University of Science and Technology; University of Waterloo, Yu Jiang Tsinghua University, Chengnian Sun University of Waterloo
Media Attached
15:00
15m
Talk
When Function Inlining Meets WebAssembly: Counterintuitive Impacts on Runtime Performance
Research Papers
Alan Romano University of Southern California, Weihang Wang University of Southern California
Pre-print Media Attached
15:15
7m
Talk
Ad Hoc Syntax-Guided Program Reduction
Demonstrations
Jia Le Tian University of Waterloo, Mengxiao Zhang University of Waterloo, Zhenyang Xu University of Waterloo, Yongqiang Tian The Hong Kong University of Science and Technology; University of Waterloo, Yiwen Dong , Chengnian Sun University of Waterloo
Media Attached