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 In Note: The module-level transition table in Reviewed by Cursor Bugbot for commit 77c29af. 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 59.09% 59.08% -0.02%
======================================================================
Files 1344 1343 -1
Lines 129787 129730 -57
Branches 5869 5866 -3
======================================================================
- Hits 76704 76653 -51
+ Misses 52180 52174 -6
Partials 903 903
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
|
7c2c99f to
fed3275
Compare
b7cf577 to
db1e44d
Compare
fed3275 to
2ffc3ed
Compare
db1e44d to
0a4f75a
Compare
2ffc3ed to
5aa1fb4
Compare
0a4f75a to
40c3c68
Compare
40c3c68 to
f9a8499
Compare
f9a8499 to
c883c9e
Compare
2fc2314 to
c62ac8e
Compare
c883c9e to
7323f1e
Compare
c62ac8e to
3dfb99e
Compare
7323f1e to
77c29af
Compare
3dfb99e to
02b718a
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.