-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
Experiment with sharing monomorphized code between crates #47317
Copy link
Copy link
Closed
Labels
A-codegenArea: Code generationArea: Code generationC-feature-requestCategory: A feature request, i.e: not implemented / a PR.Category: A feature request, i.e: not implemented / a PR.I-compilememIssue: Problems and improvements with respect to memory usage during compilation.Issue: Problems and improvements with respect to memory usage during compilation.I-compiletimeIssue: Problems and improvements with respect to compile times.Issue: Problems and improvements with respect to compile times.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.WG-compiler-performanceWorking group: Compiler PerformanceWorking group: Compiler Performance
Metadata
Metadata
Assignees
Labels
A-codegenArea: Code generationArea: Code generationC-feature-requestCategory: A feature request, i.e: not implemented / a PR.Category: A feature request, i.e: not implemented / a PR.I-compilememIssue: Problems and improvements with respect to memory usage during compilation.Issue: Problems and improvements with respect to memory usage during compilation.I-compiletimeIssue: Problems and improvements with respect to compile times.Issue: Problems and improvements with respect to compile times.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.WG-compiler-performanceWorking group: Compiler PerformanceWorking group: Compiler Performance
Type
Fields
Give feedbackNo fields configured for issues without a type.
At the moment the compiler will re-instantiate generic code in every crate that uses it. That sounds like a lot of duplicated work. However, we don't have any actual numbers on how much duplicated work. There are a few things we could do:
This could potentially be a big win for compile times but we won't know until we've collected some data.
Side node: Sharing monomorphized instances could negatively affect runtime performance when compiling without any form of LTO or when compiling with ThinLTO just for the current crate (as opposed to doing ThinLTO over the whole crate graph).