[llvm-dev] RFC: Killing undef and spreading poison

Sanjoy Das via llvm-dev llvm-dev at lists.llvm.org
Thu Nov 10 22:54:54 PST 2016

On Thu, Nov 10, 2016 at 10:37 PM, Sanjoy Das
<sanjoy at playingwithpointers.com> wrote:
> I don't think we care about optimizing code that we've _proven_ has
> undefined behavior.  We care about optimizing code in ways that is
> correct in the face of *other* transforms that we ourselves want to
> do, where these "other transforms" pretend certain abnormal cases do
> not exist.  Poison is a "stand-in" for these transforms, which are
> sometimes non-local.

Clarification:  I meant to say "Poison is a "stand-in" for these
transforms, which sometimes have non-local *effects*".

That is, instead of being simple peephole transforms that manipulate
expressions trees while preserving their output, these actually can
change the output of the expressions they touch in ways they think
should not matter.

-- Sanjoy

More information about the llvm-dev mailing list