BE-512: HashQL: Allow cross-backend transitions for SwitchInt terminators#8696
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
PR SummaryMedium Risk Overview Tests were updated to reflect the new reachable Reviewed by Cursor Bugbot for commit 026ce7b. Bugbot is set up for automated code reviews on this repo. Configure here. |
🤖 Augment PR SummarySummary: Enables cross-backend transitions for blocks ending in 🤖 Was this summary useful? React with 👍 or 👎 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## bm/be-524-hashql-remove-island-dag #8696 +/- ##
======================================================================
- Coverage 63.43% 63.43% -0.01%
======================================================================
Files 1382 1382
Lines 144756 144753 -3
Branches 5902 5902
======================================================================
- Hits 91823 91820 -3
Misses 51974 51974
Partials 959 959
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:
|
5eeec53 to
91d9bc3
Compare
6e14a48 to
55f11e3
Compare
91d9bc3 to
f2fc415
Compare
2ae4ba3 to
6fef8b9
Compare
f2fc415 to
43c449a
Compare
6fef8b9 to
94f20af
Compare
43c449a to
59b8c62
Compare
94f20af to
94254d8
Compare
59b8c62 to
55e6316
Compare
94254d8 to
78f76e2
Compare
55e6316 to
2a95250
Compare
2a95250 to
5203abe
Compare
11715f8 to
bb97a73
Compare
5203abe to
026ce7b
Compare

🌟 What is the purpose of this PR?
SwitchIntterminators were previously blocked from generating cross-backend transitions during terminator placement, based on an assumption that coordinating branches across backends would be too complex. This restriction has been lifted, allowingSwitchIntto behave the same asGotoand permit cross-backend transitions. This enables more flexible execution placement for conditional branching logic.🔍 What does this change?
SwitchIntnow callsadd_goto_transitionsinstead of being a no-op, enabling cross-backend edge costs to be populated for blocks ending with aSwitchIntterminator.switchint_blocks_cross_backendhas been renamed toswitchint_allows_cross_backendand updated to assert that theInterpreter -> Embeddingtransition is now reachable with the expected cost.switchint_edge_targets_are_branch_specifictest has been updated to assert that cross-backend transitions are present rather than absent.I->EandP->Etransitions onedge[1].Pre-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?
terminator_placement/tests.rscoveringSwitchIntcross-backend transition behaviour.❓ How to test this?
cargo testinlibs/@local/hashql/mir.switchint_allows_cross_backendtest.