-
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: Merge fgRemoveConditionalJump and fgOptimizeBranchToNext #97456
JIT: Merge fgRemoveConditionalJump and fgOptimizeBranchToNext #97456
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsAdding this back in after #97407.
|
cc @dotnet/jit-contrib, @AndyAyersMS PTAL. Small improvements from slightly more aggressive statement removal. |
Diff results for #97456Assembly diffsAssembly diffs for linux/arm64 ran on windows/x64Diffs are based on 2,501,157 contexts (1,003,806 MinOpts, 1,497,351 FullOpts). MISSED contexts: 4,060 (0.16%) Overall (-60 bytes)
FullOpts (-60 bytes)
Assembly diffs for linux/x64 ran on windows/x64Diffs are based on 2,595,007 contexts (1,052,329 MinOpts, 1,542,678 FullOpts). MISSED contexts: 3,628 (0.14%) Overall (-1,818 bytes)
FullOpts (-1,818 bytes)
Assembly diffs for osx/arm64 ran on windows/x64Diffs are based on 2,262,709 contexts (930,876 MinOpts, 1,331,833 FullOpts). MISSED contexts: 3,256 (0.14%) Overall (-60 bytes)
FullOpts (-60 bytes)
Assembly diffs for windows/arm64 ran on windows/x64Diffs are based on 2,318,207 contexts (931,543 MinOpts, 1,386,664 FullOpts). MISSED contexts: 2,687 (0.12%) Overall (-100 bytes)
FullOpts (-100 bytes)
Assembly diffs for windows/x64 ran on windows/x64Diffs are based on 2,492,912 contexts (983,689 MinOpts, 1,509,223 FullOpts). MISSED contexts: 3,899 (0.16%) Overall (-1,531 bytes)
FullOpts (-1,531 bytes)
Details here Assembly diffs for linux/arm ran on windows/x86Diffs are based on 2,237,690 contexts (827,812 MinOpts, 1,409,878 FullOpts). MISSED contexts: 74,588 (3.23%) Overall (-1,314 bytes)
FullOpts (-1,314 bytes)
Assembly diffs for windows/x86 ran on windows/x86Diffs are based on 2,296,277 contexts (841,817 MinOpts, 1,454,460 FullOpts). MISSED contexts: 5,093 (0.22%) Overall (-1,067 bytes)
FullOpts (-1,067 bytes)
Details here Throughput diffsThroughput diffs for linux/arm ran on windows/x86Overall (-0.01% to -0.00%)
FullOpts (-0.01% to -0.00%)
Details here |
cc @dotnet/jit-contrib, bumping this since the diffs in #97488 are skewed without it. |
Thank you! |
Adding this back in after #97407.
fgRemoveConditionalJump
andfgOptimizeBranchToNext
do the same thing, except that the latter explicitly assumes the false target of theBBJ_COND
block being optimized is the next block. It makes sense to remove that assumption, and merge these methods before allowing the false target to diverge from the next block during flowgraph optimization phases.