[llvm-dev] A bug related with undef value when bootstrap MemorySSA.cpp

Sanjoy Das via llvm-dev llvm-dev at lists.llvm.org
Sat Jul 15 18:46:43 PDT 2017


Hi Wei,

[+CC the other undef folks]

This is the same bug as https://bugs.llvm.org/show_bug.cgi?id=31652.
The short answer here is that the loop unswitch transform and the GVN
transform are justified via conflicting specifications of undef (that
is, LoopUnswitch and GVN don't agree on the definition of undef).  The
long(er) answer is in the bug.

Unfortunately, there is no real way to fix this in the IR today
(beyond hacking GVN / LoopUnswitch to back off on these transforms
enough to not trigger this case).  We will need to specify and
implement a consistent definition of undef / poison to truly fix this,
one of which we've already proposed.

Thanks!
-- Sanjoy


More information about the llvm-dev mailing list