[PATCH] D29404: [ValueTracking] emit a warning when we detect a conflicting assumption (PR31809)

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 2 10:47:25 PST 2017


spatel added a comment.

In https://reviews.llvm.org/D29404#664955, @efriedma wrote:

> > When we hit this case, we're headed for disaster: either we have a bug in LLVM or the program has UB.
>
> "the program has UB" is a bit ambiguous.  It's possible the "llvm.assume" call is dynamically unreachable, and therefore the undefined behavior doesn't matter.  The dynamically unreachable codepath might not even exist in the original source code; for example, loop unswitching could duplicate a loop, and then one of "llvm.assume" calls becomes unreachable due to a correlated condition.  This is one of the reasons LLVM doesn't emit warnings when the optimizer discovers code with undefined behavior.


Ah, I didn't think of that possibility. In that case, abandon patch?


https://reviews.llvm.org/D29404





More information about the llvm-commits mailing list