-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
codegen optimizations for unions #21279
Conversation
Instcombine is quite expensive. Can you get away with instsimplify for your purpose? |
Ah, I was assuming it was cheap since we call it very often. I don't actually need it. |
900c69b
to
42bcd70
Compare
Looks like this broke the |
SROA likes this form better Also, since many of these loop variables are loop-dependent, it helps to run the loop structure analysis passes twice
42bcd70
to
58dd828
Compare
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @jrevels |
Are the |
We can always run again to see if the results are the same. @nanosoldier |
They seem to be "quasi-real", but the reason is hilarious. With the extra passes, LLVM is able to notice that the loop is computing the number |
That is pretty amusing. Why would that cause a regression though? The system's |
Yes. It is entirely reliant on the glibc version supporting the max vector width for the machine. The bottleneck is waiting for memory, making the SIMD calculations essentially "free". |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @jrevels |
This seems to generate code that llvm is better at optimizing. Will definitely need to check nanosoldier though to see if this seems to trigger any regressions elsewhere.