-
-
Notifications
You must be signed in to change notification settings - Fork 669
minor improvements for pass pipeline #1424
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
Conversation
I worry a bit that we are adding so much passes to the pipeline (removing 4, adding 9, partly conditional) that optimization will become slower and slower while we keep doing this. I see that the additions reduce fixtures by about 330 lines, which is good in classical terms, and I'd lean towards merging, yet the relativistic concern remains that achieving the speed of light (zero lines of output) can only be achieved by supplying infinite energy (running passes forever) and is ultimately impossible because of diminishing returns unless becoming massless (optimizing no code at all). Or: Where do we draw the line? How much slowdown are we willing to accept for what gain? And how can we measure this as a function of time taken vs code optimized? |
Basically this attempts also speedup pipeline by doing some work earlier, before SSA and flattering. In my internal tests it's really little bit faster than previous scheme.
It will be great have some compiler benchmark with aggregate perf metrics and ideally with CI integration |
For |
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.
In this case, LGTM :)
Since this touches a lot of fixtures, can you merge master into this PR and regenerate the fixtures? Mostly just in case, i.e. if an export not present before #1422 would now be present and somehow introduce a fixture-only conflict. |
Sure, done! But it seems it hasn't any changes |
Thanks! |
🎉 This PR is included in version 0.14.8 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Add more pre-SSA passes like
simplify-locals-notee-nostructure
and moveredundant set elimination
before SSA.