Department of Computer Science
slider.jpeg
previous arrow
next arrow
PlayPause

Department of Computer Science

  • Publication Type: Conference Publications
  • Author Name:

    David Menendez and Santosh Nagarakatte

  • 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.

We are committed to fostering a safe environment while upholding the principles of academic freedom and free expression of our community.

We're Hiring

Hiring CompSci

Undergraduate

Undergrad CompSci

Graduate

Grad CompSci 2016 06 17 0136 Rutgers SAS SQ

Research

Research CompSci 2018 08 29 0224 RU SAS SQ