John Regehr 7/31/2020

Alive2 Part 3: Things You Can and Can’t Do with Undef in LLVM

Read Original

This technical article, part of a series on Alive2, analyzes the LLVM intermediate representation, focusing on the 'undef' value. It explains why certain function transformations (like replacing 'add' with 'shift') are safe while others are not, due to the refinement principle. The post details what operations are allowed with 'undef' and the common compiler bugs that arise from incorrect reasoning about it.

Alive2 Part 3: Things You Can and Can’t Do with Undef in LLVM

Comments

No comments yet

Be the first to share your thoughts!

Browser Extension

Get instant access to AllDevBlogs from your browser

Top of the Week