-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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: Remove fgFirstColdBlock
checks in frontend phases
#110452
JIT: Remove fgFirstColdBlock
checks in frontend phases
#110452
Conversation
/azp run runtime-jit-experimental |
Azure Pipelines successfully started running 1 pipeline(s). |
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
@@ -1401,12 +1401,6 @@ bool Compiler::fgOptimizeEmptyBlock(BasicBlock* block) | |||
break; | |||
} | |||
|
|||
// can't allow fall through into cold code | |||
if (block->IsLastHotBlock(this)) |
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.
This check looks like it wouldn't pessimize anything if we aren't hot/cold splitting, but IsLastHotBlock
returns true if block == fgLastBB
too, so this check was blocking empty block removal for the last block in the worklist. Thus, the check's removal incurs some small diffs. PerfScore diffs look wonky due to churn in optSetBlockWeights
, but the actual layout diffs look like an improvement.
cc @dotnet/jit-contrib, @AndyAyersMS PTAL. |
Part of #107749. Now that hot/cold splitting runs after layout in the backend, where the flowgraph is expected to never change, we shouldn't need to check for the presence of a cold code section in the frontend.