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). |
AndyAyersMS
left a comment
There was a problem hiding this comment.
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
bbFalseTargetto diverge frombbNextinCompiler::optOptimizeLayoutand 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), asfgReorderBlocksandfgUpdateFlowGraphPhaseare also called in a few earlier phases.