Sign up or log in to save this to your schedule and see who's attending!

The current concept of poison in LLVM is known to be broken, leaving LLVM in a state where certain miscompilation bugs are hard or even impossible to fix. Moreover, the concepts of poison and undef values in LLVM are hard to reason about and are often misunderstood by developers.

However, we need concepts similar to poison and undef to enable certain important optimizations.

In this talk, we will present the motivation behind poison and undef and why they are broken. We'll also present a proposal to kill undef and extend poison, while retaining their performance benefits.

This talk is meant to increase awareness of the issues and motivations behind poison/undef and discuss how to fix it.