-
Notifications
You must be signed in to change notification settings - Fork 97
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
Formatting an i8
takes a long time after nightly-2023-06-20 upgrade
#2576
Comments
Comparing Kani before and after the upgrade. I noticed the following:
MIR Reachability Results: Before Upgrade
MIR Reachability Results: After Upgrade
CBMC Stats: Before Upgrade
CBMC Stats: After Upgrade
|
Looking at the generated goto-program for the function
|
Could we replace the "division-by-zero" checks we currently emit (from CBMC) by these ones? It may be worth considering if the ones coming from Rust include locations (missing from many CBMC checks), but I'm also not sure how they look like.
Bad news. |
Yes. We can definitely get rid of CBMC ones.
Yeah, my guess is that this is the root cause of the performance issue. On the bright side, if that is the issue, we can create our own ordering algorithm and make CBMC happy again. |
Unfortunately, fixing the basic block order and removing all the new overflow checks were not enough to fix this regression. :( |
I tried this code:
using the following command line invocation:
with Kani version: #2551
I expected to see this happen: Verification succeeds in a matter of seconds (before upgrade this harness used to take 6s)
Instead, this happened: Verification took about 10 minutes.
The text was updated successfully, but these errors were encountered: