-
Notifications
You must be signed in to change notification settings - Fork 73
Description
Summary
Most of rustc's optimizations are currently found in LLVM. However, there is a significant amount optimization code in rust-lang/rust as well, in the form of mir opts. To the extent that I can tell, there was never any overarching technical design for mir opts. The conversation that I would really like to have is this: If we were to redesign rust-lang/rust optimizations from scratch today, what would they look like? Does the path we are on lead to a point that reasonably approximates that ideal?
Unfortunately, having that conversation today would be extremely difficult, because we cannot answer the "how would we design..." question without knowing what we are designing for. So the goal of this meeting is instead to have a discussion to inform the drafting of a policy on this last question. Specifically, I would like to come up with a list of "guardrails" - limitations on what kind of optimizations we are interested in having in rust-lang/rust - in addition to some guidelines on the cost/benefit analysis against which optimizations are evaluated. The hope is that this will suffice to be able to meaningfully have the "what would optimizations look like if they were designed from scratch today" conversation mentioned above.
I'm happy to prepare a document to drive the meeting. I'm also aware that this topic runs the risk of being too broad/vague to be productive. If people have a concrete idea as to how to achieve the stated goal in a better way, I would more than welcome feedback.
About this issue
This issue corresponds to a meeting proposal for the compiler team
steering meeting. It corresponds to a possible topic of
discussion. You can read more about the steering meeting procedure
here.
Comment policy
These issues are meant to be used as an "announcements channel"
regarding the proposal, and not as a place to discuss the technical
details. Feel free to subscribe to updates. We'll post comments when
reviewing the proposal in meetings or making a scheduling decision.
In the meantime, if you have questions or ideas, ping the proposers
on Zulip (or elsewhere).