Department of Computer Science
Termination-Checking for LLVM Peephole Optimizations
- Publication Type: Conference Publications
- Publication Date: 2016-05-01
- Journal Volume: 38th International Conference on Software Engineering 2016
- Conference Location: Austin, TX, USA
- Link to Content 1: Termination-Checking for LLVM Peephole Optimizations
- Abstract:
Mainstream compilers contain a large number of peephole optimizations, which perform algebraic simplification of the input program with local rewriting of the code. These optimizations are a persistent source of bugs. Our recent research on Alive, a domainspecific language for expressing peephole optimizations in LLVM, addresses a part of the problem by automatically verifying the correctness of these optimizations and generating C++ code for use with LLVM.
This paper identifies a class of non-termination bugs that arise when a suite of peephole optimizations is executed until a fixed point. An optimization can undo the effect of another optimization in the suite, which results in non-terminating compilation. This paper (1) proposes a methodology to detect non-termination bugs with a suite of peephole optimizations, (2) identifies the necessary condition to ensure termination while composing peephole optimizations, and (3) provides debugging support by generating concrete input programs that cause non-terminating compilation. We have discovered 184 optimization sequences, involving 38 optimizations, that cause non-terminating compilation in LLVM with Alive-generated C++ code.
Upcoming Events
| 05 May 2026; - 11:00AM - 12:00PM Advances in Watermarking Large Language Models |
| 05 May 2026; - 11:20AM - 12:20PM Trustworthy AI for Structured Reasoning: Conformal Guarantees in Knowledge Graph Question Answering |
| 06 May 2026; - 03:30PM - 04:30PM Towards Universal and Interactive Medical Image Segmentation |







