[PATCH] D71799: [Attributor] AAUndefinedBehavior: Check for branches on undef value.

Hideto Ueno via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 23 06:02:51 PST 2019


uenoku added a comment.

In D71799#1794782 <https://reviews.llvm.org/D71799#1794782>, @baziotis wrote:

> In D71799#1794768 <https://reviews.llvm.org/D71799#1794768>, @uenoku wrote:
>
> > Sorry for my lack of words. I thought you were talking about in `updateImpl`. It can't happen **in updates** but can happen once reaches to a fix point.
>
>
> I //am// talking about `updateImpl()`, the code above is inside `updateImpl()`. It seems true though that if it happens, then a fixpoint has been reached.
>  Essentially was assumption is that `AAValueSimplify` seems to return behave weirdly when the value `undef` (i.e. it returns `None` while an `undef` value might be known). So with that,
>  if it happens, we can deduce that the instruction is UB in `updateImpl()` and that pretty much solves the previous problems.


Sorry for confusing you. I have missed that the shortcut was introduced(https://github.com/llvm/llvm-project/commit/2dad729f0c7b8665d362baecd8ff52449b26051d). I agree that `None` and `isKnown()` means `undef`.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71799/new/

https://reviews.llvm.org/D71799





More information about the llvm-commits mailing list