-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Regressions for conditional code gen from clang 10 to 11 #47217
Labels
Comments
I think this has something to do with a freeze instruction being inserted in CodeGenPrepare. |
Yes, it is due to CodeGenPrepare's select cond -> br freeze(cond):
After X86 DAG->DAG Instruction Selection, it becomes:
Without freeze:
I'm seeing whether it can be addressed at instruction selection level. |
Any progress? |
The patch link is here: https://reviews.llvm.org/D92015 |
Should be fixed now |
This issue was closed.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Extended Description
Small repro here: https://godbolt.org/z/xPPGMv
11.0 and trunk both produce the "cmp edx, ecx" / "seta cl" / "test cl, 1" / "jne label" construction that serves no purpose I can discern; 10.0.1 and earlier used the expected "cmp edx, ecx" / "ja label".
This function makes for a particularly simple reproducer but we're seeing instances of this in many places in our code base.
The text was updated successfully, but these errors were encountered: