-
-
Notifications
You must be signed in to change notification settings - Fork 810
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
fix: optimizer regression #2868
fix: optimizer regression #2868
Conversation
the optimizer passes introduced in efe1dbe were too aggressive, and would optimize out expressions that had side effects.
Codecov Report
@@ Coverage Diff @@
## master #2868 +/- ##
==========================================
+ Coverage 87.67% 87.70% +0.02%
==========================================
Files 94 94
Lines 10183 10214 +31
Branches 2501 2509 +8
==========================================
+ Hits 8928 8958 +30
Misses 790 790
- Partials 465 466 +1
Continue to review full report at Codecov.
|
The reason I am leaving this as a draft is because if we really want to fix the optimizer here, we need to get a bit more principled. Basically, we need an effects graph and machinery to ensure we don't break the effects graph. So, if we have other priorities besides the optimizer, an alternative is to rollback #2647 and leave this optimizer project for later. |
What I did
fix overly aggressive optimizations introduced in #2647
How I did it
roll back the optimization if a side-effecting operation is not found in the optimized result. the heuristic is overly conservative, which i am ok with.
How to verify it
see code, tests
Commit message
Description for the changelog
Cute Animal Picture