-
Notifications
You must be signed in to change notification settings - Fork 12.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[KnownBits] Remove hasConflict() assertions #94436
Comments
Hi! This issue may be a good introductory issue for people new to working on LLVM. If you would like to work on this issue, your first steps are:
If you have any further questions about this issue, don't hesitate to ask via a comment in the thread below. |
@llvm/issue-subscribers-good-first-issue Author: Nikita Popov (nikic)
The KnownBits infrastructure currently has pervasive !hasConflict() assertions, which ensure that KnownBits don't claim that a bit is both zero *and* one at the same time. However, these kinds of conflicts can naturally arise whenever the value is known to be poison. At this point, these assertions no longer provide value and just result in a steady stream of compiler crashes.
We should remove these assertions. Once that is done, we may also make use of conflicting KnownBits to fold values to poison. |
I would like to tackle this issue |
An obvious next step would be to remove all instances of this from
That will result in KnownBits returning conflict more often, so callers may need to be fixed to handle it correctly. |
Ok I'm building it right now with the changes of #94568 and the change to KnownBits.cpp is there something I should check about testing it? |
Allow KnownBits to represent "always poison" values via conflict. close: #94436
The KnownBits infrastructure currently has pervasive !hasConflict() assertions, which ensure that KnownBits don't claim that a bit is both zero and one at the same time. However, these kinds of conflicts can naturally arise whenever the value is known to be poison. At this point, these assertions no longer provide value and just result in a steady stream of compiler crashes.
We should remove these assertions. Once that is done, we may also make use of conflicting KnownBits to fold values to poison.
The text was updated successfully, but these errors were encountered: