BE-514: HashQL: implement iterative adjustment passes in placement solver#8635
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
2 Skipped Deployments
|
|
remind me to add a test case for the reason this fails before merging: |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #8635 +/- ##
==========================================
+ Coverage 59.04% 59.10% +0.05%
==========================================
Files 1341 1342 +1
Lines 129387 129587 +200
Branches 5837 5851 +14
==========================================
+ Hits 76398 76587 +189
- Misses 52088 52096 +8
- Partials 901 904 +3
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:
|
Merging this PR will not alter performance
Comparing Footnotes
|
PR SummaryMedium Risk Overview Adds Reviewed by Cursor Bugbot for commit 798b079. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 211c141. Configure here.
93fba40 to
ffe8840
Compare
211c141 to
080f3e8
Compare
🤖 Augment PR SummarySummary: Enhances the HashQL MIR placement solver by iterating adjustment passes (alternating direction) until assignments stop improving, instead of doing a single backward refinement. Changes:
Technical Notes: Adjustment solving for cyclic regions now evaluates candidates with full boundary weighting (via 🤖 Was this summary useful? React with 👍 or 👎 |
ffe8840 to
f3d71ce
Compare
080f3e8 to
0ca8770
Compare
0ca8770 to
b02766e
Compare
f3d71ce to
b0024c0
Compare
b0024c0 to
ff39943
Compare
b02766e to
f2b4e96
Compare


🌟 What is the purpose of this PR?
This PR enhances the placement solver in the MIR dataflow analysis framework by implementing iterative adjustment passes that alternate direction until convergence. Instead of a simple two-pass approach (forward then backward), the solver now continues refining assignments in alternating directions until no further improvements are found, converging to a better local minimum.
🔍 What does this change?
reverse()method to theDirectionenum to toggle between Forward and Backward directionsadjust_trivial()andadjust_cyclic()methods to return boolean flags indicating whether assignments changedrun_adjustment()method that processes regions in the specified direction and tracks changesPre-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?
backward_pass_keeps_assignment_when_csp_fails()to handle the new return signature❓ How to test this?