-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Don't copy bytecode files into the incr. comp. cache. #71754
Conversation
It's no longer necessary now that bitcode is embedded into object files. This change meant that `WorkProductFileKind::Bytecode` is no longer necessary, which means that type is no longer necessary, which allowed several places in the code to become simpler.
r? @cramertj (rust_highfive has picked a reviewer for you, use r? to override) |
r? @nnethercote |
Looks fine, but I'd like to see a perf run first, just to know if it has much effect. @bors try @rust-timer queue |
Awaiting bors try build completion |
⌛ Trying commit d4e5e1b with merge 032fb238cef1c57960742f33db0829b5f52a23a1... |
☀️ Try build successful - checks-azure |
Queued 032fb238cef1c57960742f33db0829b5f52a23a1 with parent 7f65393, future comparison URL. |
Finished benchmarking try commit 032fb238cef1c57960742f33db0829b5f52a23a1, comparison URL. |
Performance looks essentially neutral, at least by instruction counts - which is what we would expect, I think, as copying into the incr comp cache isn't heavy on instructions presumably. @bors r=nnethercote |
📌 Commit d4e5e1b has been approved by |
The wall time results are noisy as always, but look like a slight improvement. |
☀️ Test successful - checks-azure |
pub enum WorkProductFileKind { | ||
Object, | ||
Bytecode, | ||
pub saved_files: Vec<String>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This could become Option<String>
as only a single object file will ever be saved for a codegen unit.
It's no longer necessary now that bitcode is embedded into object files.
This change meant that
WorkProductFileKind::Bytecode
is no longernecessary, which means that type is no longer necessary, which allowed
several places in the code to become simpler.
This commit was written by @nnethercote in #70458 but that didn't land. In the meantime though we managed to land it in #71528 and that doesn't seem to be causing too many fires, so I'm re-sending this patch!