-
Notifications
You must be signed in to change notification settings - Fork 110
BE-255: HashQL: Implement Copy Propagation (CP) pass for MIR #8207
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
PR SummaryIntroduces a new MIR transform to replace uses of locals known to hold constants and to propagate constants through block parameters.
Written by Cursor Bugbot for commit 82e5742. This will update automatically on new commits. Configure here. |
Merging this PR will not alter performance
Comparing Footnotes
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #8207 +/- ##
==========================================
+ Coverage 59.01% 59.26% +0.24%
==========================================
Files 1187 1191 +4
Lines 112497 113442 +945
Branches 4939 4982 +43
==========================================
+ Hits 66394 67232 +838
- Misses 45345 45434 +89
- Partials 758 776 +18
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
894a7e2 to
08246f0
Compare
0c57079 to
049e36c
Compare
049e36c to
09dc1b6
Compare
08246f0 to
7b8639a
Compare
7b8639a to
ee58159
Compare
09dc1b6 to
9b1c7bc
Compare
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
9b1c7bc to
82e5742
Compare

🌟 What is the purpose of this PR?
This PR adds a new Copy Propagation optimization pass to the MIR compiler. The pass identifies when local variables hold constant values and replaces uses of those locals with the constants directly, this is used after InstSimplify, to enable efficient fix point iteration.
🔍 What does this change?
CopyPropagationtransform pass that propagates constant values through the MIRas_place()andas_constant()onOperandfor easier pattern matchingPre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
🛡 What tests cover this?
cp/tests.rscovering various scenarios: