-
Notifications
You must be signed in to change notification settings - Fork 5k
[mono][sgen] Fix initialization of can_reduce_color #114637
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
Mark it as true also in the case when the SCC contains bridge objects. Code populating other_colors for this SCC depends on it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 1 out of 1 changed files in this pull request and generated no comments.
Comments suppressed due to low confidence (1)
src/mono/mono/metadata/sgen-tarjan-bridge.c:749
- Ensure that there are unit tests covering both cases: when SCCs contain xrefs and when they contain bridge objects without xrefs, to verify that can_reduce_color is set correctly.
if (dyn_array_ptr_size (&other->xrefs) > 0 || found_bridge) {
@filipnavara Vitek said that MAUI encountered this assertion after backport of #114391
It looks like this could happen if the initial iteration over the loop stack encounters a bridge object early (so it doesn't set can_reduce_color to FALSE). Then, in the second iteration (after the node heaviness fix), we would assert when encountering a node with |
The test is meant to be run only on desktop.
Right, this is the correct fix, or changing the assert to Thanks! |
Added a new commit to disable running the test on wasm and mobile. Seems like on 9.0 runs it was failing, although no failures were spotted on main. |
* [mono][sgen] Fix initialization of can_reduce_color Mark it as true also in the case when the SCC contains bridge objects. Code populating other_colors for this SCC depends on it. * Disable test on wasm and mobile The test is meant to be run only on desktop.
Mark it as true also in the case when the SCC contains bridge objects. Code populating other_colors for this SCC depends on it.