-
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: Allow BBJ_COND false target to diverge from bbNext in layout optimization phase #96609
JIT: Allow BBJ_COND false target to diverge from bbNext in layout optimization phase #96609
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsNext step for #93020. Working backwards through the JIT flowgraph phases, this change allows
|
/azp run runtime-coreclr jitstress |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-coreclr jitstress |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-coreclr jitstress |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-coreclr jitstress |
Azure Pipelines successfully started running 1 pipeline(s). |
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.
Looks like TP is now a non-issue... glad it worked out that way.
…imization phase (dotnet#96609) Next step for dotnet#93020. Working backwards through the JIT flowgraph phases, this change allows bbFalseTarget to diverge from bbNext in Compiler::optOptimizeLayout and onwards.
…yout optimization phase (dotnet#96609)" This reverts commit 5598dac.
Part of #93020. This change adds back in most of #97191 and #96609, except for any significant changes to the flowgraph optimization passes to reduce churn. With this change, the false target of a BBJ_COND can diverge from the next block until Compiler::optOptimizeLayout, in which we reestablish implicit fall-through with fgConnectFallThrough to preserve the existing block reordering behavior. Note that the deferral of these fall-through fixups causes diffs in the edge weights, which can alter the behavior of fgReorderBlocks, hence some of the size regressions
Next step for #93020. Working backwards through the JIT flowgraph phases, this change allows
bbFalseTarget
to diverge frombbNext
inCompiler::optOptimizeLayout
and onwards. This requires some awkward quirking (most of which should be short-lived, while some quirks may stay until we change our block reordering approach), asfgReorderBlocks
andfgUpdateFlowGraphPhase
are also called in a few earlier phases.