-
Notifications
You must be signed in to change notification settings - Fork 100
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
Investigate assess performance regression with MIR linker #1828
Comments
May be related to #1818 |
So far I believe I've found two issues:
So:
|
Interesting, here are few thoughts:
|
Current status: The addition of the test reachability mode back in Nov cut the performance problem by 50%, but we still see many goto binaries "blow up" in size. Probable course of action:
There are a lot of alternative options here: for instance, we could try to optimize the memory consumption of |
I think we stopped building in parallel before that. We did that so we could use |
My mistake, I checked the history this time:
|
This trivial harness: use anyhow::*;
#[kani::proof]
fn proof_using_anyhow() {
let _ = Ok(()).context("words");
} Produces 286MB of symtab.json. With a few different hacky experiments in
So there's a pretty significant reduction in bloat there (220+MB eliminated). Unfortunately, I have not yet been able to identify any single or few functions that, if stubbed, would accomplish the same effect. I think because the backtrace gets passed around and potentially printed that a lot of this code looks potentially reachable. I tried applying the latter hack to an assess run, but I still saw pretty significant
|
From #1816:
This is a tracking issue for investigating these behavior changes.
The text was updated successfully, but these errors were encountered: