-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
JIT: fix issue with unreachable blocks in redundant branch opt #76040
Conversation
Update `fgGetDomSpeculatively` to return nullptr if the idom of a block is unreachable, even if other preds have refs. Fixes dotnet#72767.
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsUpdate Fixes #72767.
|
@EgorBo PTAL |
@AndyAyersMS I assume a block may still have a valid real dominator since we didn't inspect other preds, but it means that current block->iDom is definitely compromised/stale, hoping it won't lead to terrible diffs 🙂 |
I didn't see any diffs locally but only based on a few SPMI collections as we're still rebuilding them. There is an odd divergence between dominators and the flow graph preds in some cases. I don't yet know if it is just unreachable blocks, some issue where we don't model flow out of finallys properly, cases where can't get rid of some EH regions even if unreachable, or something else. In this case RBO discovers that RBO then looks at My fix stops RBO from looking at the VNs in
|
Failures all seem to be from #76041 |
No diffs. |
Update
fgGetDomSpeculatively
to return nullptr if the idom of a block is unreachable, even if other preds have refs.Fixes #72767.