-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
50-110% compilation time regressions due to miri #48846
Comments
I'm going to start with |
It would be good to dig into those use cases -- in particular, if you open them, we can see which of them are incremental use cases and which are not. |
I just updated the tracking issue with that information. Most of them are incremental cases. |
OK, for |
We might simply be encoding more constants now (that were previously encoded as HIR). I'll have to look at the exact logs (rustc_mir::interpret::const_eval=debug to just get the entry points). I'll check tomorrow morning |
Ok. I found the issue. We don't seem to be loading constants from the cache. So the enormous regressions are from recomputing all constants, even if nothing changed in the code at all. That should be easy enough to fix |
Cache const eval queries fixes #48846 (I think, still running more perf tests, but tuple-stress stops recomputing any constants) r? @michaelwoerister
Cache const eval queries fixes #48846 (I think, still running more perf tests, but tuple-stress stops recomputing any constants) r? @michaelwoerister
Only the incremental regressions were fixed. I'll investigate the others, too New perf data: https://perf.rust-lang.org/compare.html?start=2018-03-08&end=02094271f28e88e64b66014726f1d996bf7acae3&stat=instructions%3Au |
…er,eddyb Remove slow HashSet during miri stack frame creation fixes rust-lang#49237 probably has a major impact on rust-lang#48846 r? @michaelwoerister cc @eddyb I know you kept telling me to use vectors instead of hash containers... Now I know why.
…er,eddyb Remove slow HashSet during miri stack frame creation fixes rust-lang#49237 probably has a major impact on rust-lang#48846 r? @michaelwoerister cc @eddyb I know you kept telling me to use vectors instead of hash containers... Now I know why.
…er,eddyb Remove slow HashSet during miri stack frame creation fixes rust-lang#49237 probably has a major impact on rust-lang#48846 r? @michaelwoerister cc @eddyb I know you kept telling me to use vectors instead of hash containers... Now I know why.
There have been a lot of perf optimizations for const eval over the last year. I think we're good now |
It's not clear yet whether mir interpretation is the culprit or some changes that crept into the same PR.
Perf data: http://perf.rust-lang.org/compare.html?start=cdcca786468a71375584bb48e3093790c91084f7&end=c90f68224b069f5bb2a80e30e2737e4bb17c1466&stat=instructions:u
cc @nikomatsakis @michaelwoerister
Important regressions to investigate
The text was updated successfully, but these errors were encountered: