[PATCH] D26432: [SCCP] Force unknown branches to overdefined

Daniel Berlin via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 8 16:50:33 PST 2016


So, it looks like what happens here is you expect undef to be a
constrainable value.

That is, for "or true, undef", you expect it to be true, despite the undef
being there.

Adding an undef expert to say whether this expectation is reasonable.

(IE whether undef is allowed to have super-magical possibilities, such that
the compiler can pick a value that the or returns false).

Otherwise, FWIW, it seems simple to fix "right" (just constant fold it
using the symbolic operands and if it returns true/false, use that)




On Tue, Nov 8, 2016 at 4:39 PM, Davide Italiano via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> davide added a comment.
>
> This fixes the miscompile reported in PR30448. I tried  on many internal
> tests and bootstrapping clang, and it works without problems. We lose some
> optimization power, but it seems that the pattern is rare enough so we
> shouldn't really worry.
>
>
> https://reviews.llvm.org/D26432
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161108/8610e882/attachment.html>


More information about the llvm-commits mailing list