-
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
[InstCombine] Taking an order of magnitude longer in 12.0.0 than in 10.0.0 for some examples. #49499
Comments
Looks like most of the time is spent in isGuaranteedNotToBeUndefOrPoison() -> programUndefinedIfUndefOrPoison(). |
llvm-project/llvm/lib/Analysis/ValueTracking.cpp Lines 5392 to 5401 in 74d9a76
|
Fixed on main by 2cd7868. This should probably be backported to LLVM 12.0.1. I don't believe there is any way you can work around this. |
Was there a pre-commit review for this patch? |
I couldn't find a phabricator review for this, so I would like to have someone else review it before it is backported. |
I'm the main author of the function programUndefinedIfUndefOrPoison and the change looks good to me. |
Thank you. |
The fix does not apply cleanly, could someone backport this and push a branch to their local github fork? |
Would aqjune@89d5009 be okay? |
Merged: ce77909 |
Extended Description
For some functions, the --instcombine optimization takes excessively longer with llvm 12.0.0 than it does with llvm 10.0.0.
In the attached example, a run of "opt -o=out.o --instcombine test_instcomb.ir" takes 53 seconds, where it used to take around 2 seconds when version 10.0.0 was used (albeit version 12.0.0 combines more instructions).
Is there a way to mitigate this speed performance degradation when using the library interface (i.e. from C++ library API, not from the opt tool)?
The text was updated successfully, but these errors were encountered: