Skip to content
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

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget #97664

Merged
merged 4 commits into from
Jan 31, 2024

Conversation

amanasifkhalid
Copy link
Member

In preparation for improving the proliferation of edge likelihoods (as part of #93020), we should use fgReplaceJumpTarget where possible, so that we modify predecessor edges in fewer places. I plan on updating fgReplaceJumpTarget to always copy the likelihood of the old edge to the new edge as a follow-up to this change. Once I've done that, we can probably use fgReplaceJumpTarget in more places without losing any edge likelihoods (for example, replace fgTailMergeThrowsJumpToHelper and its variants with it).

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 29, 2024
@ghost ghost assigned amanasifkhalid Jan 29, 2024
@ghost
Copy link

ghost commented Jan 29, 2024

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

In preparation for improving the proliferation of edge likelihoods (as part of #93020), we should use fgReplaceJumpTarget where possible, so that we modify predecessor edges in fewer places. I plan on updating fgReplaceJumpTarget to always copy the likelihood of the old edge to the new edge as a follow-up to this change. Once I've done that, we can probably use fgReplaceJumpTarget in more places without losing any edge likelihoods (for example, replace fgTailMergeThrowsJumpToHelper and its variants with it).

Author: amanasifkhalid
Assignees: amanasifkhalid
Labels:

area-CodeGen-coreclr

Milestone: -

@ryujit-bot
Copy link

Diff results for #97664

Assembly diffs

Assembly diffs for osx/arm64 ran on linux/x64

Diffs are based on 2,029,386 contexts (927,368 MinOpts, 1,102,018 FullOpts).

MISSED contexts: 109 (0.01%)

Overall (-264 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 34,533,064 -20
coreclr_tests.run.osx.arm64.checked.mch 483,586,020 +0
libraries_tests.run.osx.arm64.Release.mch 313,700,576 -244
FullOpts (-264 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 18,159,716 -20
coreclr_tests.run.osx.arm64.checked.mch 153,413,252 +0
libraries_tests.run.osx.arm64.Release.mch 111,962,988 -244

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.02% to -0.00%)
Collection PDIFF
libraries_tests.run.linux.arm64.Release.mch -0.02%
realworld.run.linux.arm64.checked.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
MinOpts (-0.08% to +0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries_tests.run.linux.arm64.Release.mch -0.08%
FullOpts (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
realworld.run.linux.arm64.checked.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.03% to -0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.02%
realworld.run.linux.x64.checked.mch -0.03%
smoke_tests.nativeaot.linux.x64.checked.mch -0.01%
MinOpts (-0.10% to +0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.x64.checked.mch -0.02%
libraries_tests.run.linux.x64.Release.mch -0.10%
FullOpts (-0.03% to -0.00%)
Collection PDIFF
benchmarks.run_tiered.linux.x64.checked.mch -0.01%
realworld.run.linux.x64.checked.mch -0.03%
smoke_tests.nativeaot.linux.x64.checked.mch -0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.03% to -0.00%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch -0.01%
benchmarks.run_pgo.osx.arm64.checked.mch -0.01%
libraries_tests.run.osx.arm64.Release.mch -0.03%
realworld.run.osx.arm64.checked.mch -0.01%
MinOpts (-0.09% to +0.01%)
Collection PDIFF
benchmarks.run_pgo.osx.arm64.checked.mch -0.03%
libraries.pmi.osx.arm64.checked.mch +0.01%
libraries_tests.run.osx.arm64.Release.mch -0.09%
FullOpts (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch -0.01%
benchmarks.run_tiered.osx.arm64.checked.mch -0.01%
realworld.run.osx.arm64.checked.mch -0.01%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch -0.01%
benchmarks.run_pgo.windows.arm64.checked.mch -0.01%
realworld.run.windows.arm64.checked.mch -0.01%
smoke_tests.nativeaot.windows.arm64.checked.mch -0.01%
MinOpts (-0.02% to +0.01%)
Collection PDIFF
benchmarks.run_pgo.windows.arm64.checked.mch -0.02%
libraries.pmi.windows.arm64.checked.mch +0.01%
libraries_tests.run.windows.arm64.Release.mch -0.01%
FullOpts (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch -0.01%
benchmarks.run_tiered.windows.arm64.checked.mch -0.01%
realworld.run.windows.arm64.checked.mch -0.01%
smoke_tests.nativeaot.windows.arm64.checked.mch -0.01%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch -0.01%
benchmarks.run_pgo.windows.x64.checked.mch -0.01%
libraries_tests.run.windows.x64.Release.mch -0.01%
realworld.run.windows.x64.checked.mch -0.01%
smoke_tests.nativeaot.windows.x64.checked.mch -0.01%
MinOpts (-0.03% to +0.00%)
Collection PDIFF
benchmarks.run_pgo.windows.x64.checked.mch -0.03%
libraries_tests.run.windows.x64.Release.mch -0.01%
FullOpts (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch -0.01%
benchmarks.run_tiered.windows.x64.checked.mch -0.01%
realworld.run.windows.x64.checked.mch -0.01%
smoke_tests.nativeaot.windows.x64.checked.mch -0.01%

Details here


@amanasifkhalid
Copy link
Member Author

cc @dotnet/jit-contrib, @AndyAyersMS PTAL. Small diffs due to changes in profile data. fgReplaceJumpTarget does not copy over edge likelihoods from the old edge for now to reduce churn; I plan to fix this in a future PR, which will likely incur much larger diffs.

@ryujit-bot
Copy link

Diff results for #97664

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,259,470 contexts (1,008,044 MinOpts, 1,251,426 FullOpts).

MISSED contexts: 159 (0.01%)

Overall (-624 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 79,903,244 -8
coreclr_tests.run.linux.arm64.checked.mch 509,740,232 +0
libraries_tests.run.linux.arm64.Release.mch 400,018,960 -616
FullOpts (-624 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 54,354,872 -8
coreclr_tests.run.linux.arm64.checked.mch 160,832,376 +0
libraries_tests.run.linux.arm64.Release.mch 183,280,056 -616

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,249,703 contexts (981,298 MinOpts, 1,268,405 FullOpts).

MISSED contexts: 134 (0.01%)

Overall (-904 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 69,144,788 +0
coreclr_tests.run.linux.x64.checked.mch 403,316,719 +0
libraries_tests.run.linux.x64.Release.mch 348,249,945 -904
FullOpts (-904 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 47,802,743 +0
coreclr_tests.run.linux.x64.checked.mch 123,825,558 +0
libraries_tests.run.linux.x64.Release.mch 164,494,781 -904

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,070,850 contexts (937,853 MinOpts, 1,132,997 FullOpts).

MISSED contexts: 139 (0.01%)

Overall (-672 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 46,609,220 -20
coreclr_tests.run.windows.arm64.checked.mch 496,298,628 +0
libraries_tests.run.windows.arm64.Release.mch 326,696,628 -652
FullOpts (-672 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 30,351,028 -20
coreclr_tests.run.windows.arm64.checked.mch 156,624,224 +0
libraries_tests.run.windows.arm64.Release.mch 123,222,780 -652

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,098,526 contexts (926,221 MinOpts, 1,172,305 FullOpts).

MISSED contexts: 138 (0.01%)

Overall (-366 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch 35,778,033 -23
coreclr_tests.run.windows.x64.checked.mch 392,964,649 +0
libraries_tests.run.windows.x64.Release.mch 278,843,071 -343
FullOpts (-366 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch 21,745,952 -23
coreclr_tests.run.windows.x64.checked.mch 120,242,671 +0
libraries_tests.run.windows.x64.Release.mch 106,668,455 -343

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,053,507 contexts (830,101 MinOpts, 1,223,406 FullOpts).

MISSED contexts: 71,368 (3.36%)

Overall (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch 244,097,424 +0
FullOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch 122,244,916 +0

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,290,755 contexts (838,165 MinOpts, 1,452,590 FullOpts).

MISSED contexts: 808 (0.04%)

Overall (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch 184,751,928 +0
FullOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch 87,451,888 +0

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (-0.04% to +0.00%)
Collection PDIFF
libraries_tests.run.linux.arm.Release.mch -0.04%
MinOpts (-0.20% to +0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.arm.checked.mch -0.02%
libraries_tests.run.linux.arm.Release.mch -0.20%

Throughput diffs for windows/x86 ran on windows/x86

Overall (-0.03% to -0.00%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch -0.01%
benchmarks.run_tiered.windows.x86.checked.mch -0.01%
libraries.crossgen2.windows.x86.checked.mch -0.01%
libraries.pmi.windows.x86.checked.mch -0.01%
libraries_tests.run.windows.x86.Release.mch -0.01%
realworld.run.windows.x86.checked.mch -0.03%
MinOpts (-0.02% to +0.00%)
Collection PDIFF
benchmarks.run_pgo.windows.x86.checked.mch -0.02%
libraries_tests.run.windows.x86.Release.mch -0.01%
FullOpts (-0.03% to -0.00%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch -0.01%
benchmarks.run_tiered.windows.x86.checked.mch -0.01%
libraries.crossgen2.windows.x86.checked.mch -0.01%
libraries.pmi.windows.x86.checked.mch -0.01%
libraries_tests.run.windows.x86.Release.mch -0.01%
realworld.run.windows.x86.checked.mch -0.03%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.02% to -0.00%)
Collection PDIFF
libraries_tests.run.linux.arm64.Release.mch -0.02%
MinOpts (-0.08% to +0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries_tests.run.linux.arm64.Release.mch -0.08%
FullOpts (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
Collection PDIFF
realworld.run.linux.x64.checked.mch -0.02%
libraries_tests.run.linux.x64.Release.mch -0.02%
smoke_tests.nativeaot.linux.x64.checked.mch -0.01%
MinOpts (-0.09% to 0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.x64.checked.mch -0.02%
libraries_tests.run.linux.x64.Release.mch -0.09%
FullOpts (-0.02% to -0.00%)
Collection PDIFF
realworld.run.linux.x64.checked.mch -0.02%
benchmarks.run_tiered.linux.x64.checked.mch -0.01%
smoke_tests.nativeaot.linux.x64.checked.mch -0.01%

Details here


Copy link
Member

@AndyAyersMS AndyAyersMS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: seems like for these "replace" and "change" APIs with we should be consistent in our ordering of old and new in the arg lists.

My preference would be (block, old, new) but it looks like you are favoring (block, new, old)?

@amanasifkhalid
Copy link
Member Author

My preference would be (block, old, new) but it looks like you are favoring (block, new, old)?

I changed the parameter ordering of fgReplaceEhfSuccessor to match that of fgReplaceJumpTarget, though looking at similar methods, the (block, oldSucc, newSucc) ordering seems more common. I'll update fgReplaceJumpTarget to match that.

@ryujit-bot
Copy link

Diff results for #97664

Throughput diffs

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
Collection PDIFF
libraries_tests.run.linux.x64.Release.mch -0.02%
realworld.run.linux.x64.checked.mch -0.02%
MinOpts (-0.09% to 0.00%)
Collection PDIFF
libraries_tests.run.linux.x64.Release.mch -0.09%
benchmarks.run_pgo.linux.x64.checked.mch -0.02%
FullOpts (-0.02% to -0.00%)
Collection PDIFF
realworld.run.linux.x64.checked.mch -0.02%
benchmarks.run_tiered.linux.x64.checked.mch -0.01%

Throughput diffs for osx/arm64 ran on linux/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.06% to -0.01%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch -0.02%
benchmarks.run_pgo.osx.arm64.checked.mch -0.02%
benchmarks.run_tiered.osx.arm64.checked.mch -0.01%
coreclr_tests.run.osx.arm64.checked.mch -0.02%
libraries.crossgen2.osx.arm64.checked.mch -0.02%
libraries.pmi.osx.arm64.checked.mch -0.02%
libraries_tests.run.osx.arm64.Release.mch -0.06%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch -0.02%
realworld.run.osx.arm64.checked.mch -0.02%
MinOpts (-0.17% to +0.00%)
Collection PDIFF
benchmarks.run_pgo.osx.arm64.checked.mch -0.03%
libraries_tests.run.osx.arm64.Release.mch -0.17%
FullOpts (-0.03% to -0.02%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch -0.02%
benchmarks.run_pgo.osx.arm64.checked.mch -0.02%
benchmarks.run_tiered.osx.arm64.checked.mch -0.02%
coreclr_tests.run.osx.arm64.checked.mch -0.03%
libraries.crossgen2.osx.arm64.checked.mch -0.02%
libraries.pmi.osx.arm64.checked.mch -0.02%
libraries_tests.run.osx.arm64.Release.mch -0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch -0.02%
realworld.run.osx.arm64.checked.mch -0.02%

Throughput diffs for windows/arm64 ran on linux/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.02% to -0.01%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch -0.02%
benchmarks.run_pgo.windows.arm64.checked.mch -0.02%
benchmarks.run_tiered.windows.arm64.checked.mch -0.01%
coreclr_tests.run.windows.arm64.checked.mch -0.02%
libraries.crossgen2.windows.arm64.checked.mch -0.02%
libraries.pmi.windows.arm64.checked.mch -0.02%
libraries_tests.run.windows.arm64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch -0.02%
realworld.run.windows.arm64.checked.mch -0.02%
smoke_tests.nativeaot.windows.arm64.checked.mch -0.02%
MinOpts (-0.03% to 0.00%)
Collection PDIFF
benchmarks.run_pgo.windows.arm64.checked.mch -0.03%
libraries_tests.run.windows.arm64.Release.mch -0.01%
FullOpts (-0.03% to -0.02%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch -0.02%
benchmarks.run_pgo.windows.arm64.checked.mch -0.02%
benchmarks.run_tiered.windows.arm64.checked.mch -0.02%
coreclr_tests.run.windows.arm64.checked.mch -0.03%
libraries.crossgen2.windows.arm64.checked.mch -0.02%
libraries.pmi.windows.arm64.checked.mch -0.02%
libraries_tests.run.windows.arm64.Release.mch -0.02%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch -0.02%
realworld.run.windows.arm64.checked.mch -0.02%
smoke_tests.nativeaot.windows.arm64.checked.mch -0.02%

Throughput diffs for windows/x64 ran on linux/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.01%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch -0.01%
benchmarks.run.windows.x64.checked.mch -0.01%
benchmarks.run_pgo.windows.x64.checked.mch -0.01%
benchmarks.run_tiered.windows.x64.checked.mch -0.01%
coreclr_tests.run.windows.x64.checked.mch -0.01%
libraries.crossgen2.windows.x64.checked.mch -0.01%
libraries.pmi.windows.x64.checked.mch -0.01%
libraries_tests.run.windows.x64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch -0.01%
realworld.run.windows.x64.checked.mch -0.01%
smoke_tests.nativeaot.windows.x64.checked.mch -0.01%
MinOpts (-0.03% to +0.00%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch -0.01%
benchmarks.run_pgo.windows.x64.checked.mch -0.03%
libraries_tests.run.windows.x64.Release.mch -0.01%
FullOpts (-0.01%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch -0.01%
benchmarks.run.windows.x64.checked.mch -0.01%
benchmarks.run_pgo.windows.x64.checked.mch -0.01%
benchmarks.run_tiered.windows.x64.checked.mch -0.01%
coreclr_tests.run.windows.x64.checked.mch -0.01%
libraries.crossgen2.windows.x64.checked.mch -0.01%
libraries.pmi.windows.x64.checked.mch -0.01%
libraries_tests.run.windows.x64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch -0.01%
realworld.run.windows.x64.checked.mch -0.01%
smoke_tests.nativeaot.windows.x64.checked.mch -0.01%

Details here


@amanasifkhalid
Copy link
Member Author

Failures are known, and last change was just updating a few method signatures.

@amanasifkhalid amanasifkhalid merged commit 5dd76d4 into dotnet:main Jan 31, 2024
120 of 127 checks passed
@amanasifkhalid amanasifkhalid deleted the replace-jump-target branch January 31, 2024 20:39
@ryujit-bot
Copy link

Diff results for #97664

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,507,317 contexts (1,007,092 MinOpts, 1,500,225 FullOpts).

MISSED contexts: 1 (0.00%)

Overall (-656 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 80,093,044 -8
coreclr_tests.run.linux.arm64.checked.mch 508,749,628 +0
libraries_tests.run.linux.arm64.Release.mch 395,710,340 -648
FullOpts (-656 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 54,158,260 -8
coreclr_tests.run.linux.arm64.checked.mch 160,601,476 +0
libraries_tests.run.linux.arm64.Release.mch 180,578,388 -648

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,517,908 contexts (991,070 MinOpts, 1,526,838 FullOpts).

MISSED contexts: 1 (0.00%)

Overall (-901 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 71,579,583 +30
coreclr_tests.run.linux.x64.checked.mch 403,725,618 +0
libraries_tests.run.linux.x64.Release.mch 337,126,106 -931
FullOpts (-901 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 47,779,594 +30
coreclr_tests.run.linux.x64.checked.mch 123,970,916 +0
libraries_tests.run.linux.x64.Release.mch 153,366,413 -931

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 2,270,868 contexts (932,669 MinOpts, 1,338,199 FullOpts).

MISSED contexts: 2 (0.00%)

Overall (-288 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 34,442,140 -20
coreclr_tests.run.osx.arm64.checked.mch 486,433,300 +0
libraries_tests.run.osx.arm64.Release.mch 324,596,964 -268
FullOpts (-288 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 18,140,840 -20
coreclr_tests.run.osx.arm64.checked.mch 153,820,376 +0
libraries_tests.run.osx.arm64.Release.mch 120,881,116 -268

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,341,108 contexts (938,449 MinOpts, 1,402,659 FullOpts).

MISSED contexts: 9 (0.00%)

Overall (-664 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 45,573,052 -20
coreclr_tests.run.windows.arm64.checked.mch 495,287,164 +0
libraries_tests.run.windows.arm64.Release.mch 330,811,772 -644
FullOpts (-664 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 29,561,656 -20
coreclr_tests.run.windows.arm64.checked.mch 156,598,060 +0
libraries_tests.run.windows.arm64.Release.mch 127,378,176 -644

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,512,209 contexts (997,391 MinOpts, 1,514,818 FullOpts).

MISSED contexts: 3 (0.00%)

Overall (-323 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 47,040,723 +24
benchmarks.run_pgo.windows.x64.checked.mch 36,232,799 +15
coreclr_tests.run.windows.x64.checked.mch 393,207,052 +0
libraries_tests.run.windows.x64.Release.mch 282,129,292 -362
FullOpts (-323 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 28,549,674 +24
benchmarks.run_pgo.windows.x64.checked.mch 22,062,143 +15
coreclr_tests.run.windows.x64.checked.mch 120,418,198 +0
libraries_tests.run.windows.x64.Release.mch 106,270,974 -362

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,239,390 contexts (829,328 MinOpts, 1,410,062 FullOpts).

MISSED contexts: 71,274 (3.08%)

Overall (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch 243,880,786 +0
FullOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch 122,911,654 +0

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,293,451 contexts (839,658 MinOpts, 1,453,793 FullOpts).

MISSED contexts: 45 (0.00%)

Overall (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch 186,683,551 +0
FullOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch 88,409,851 +0

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

MinOpts (-0.02% to 0.00%)
Collection PDIFF
libraries_tests.run.linux.arm64.Release.mch -0.01%
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
FullOpts (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%

Details here


Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.02% to -0.01%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch -0.02%
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.02%
libraries.crossgen2.linux.arm64.checked.mch -0.02%
libraries.pmi.linux.arm64.checked.mch -0.02%
libraries_tests.run.linux.arm64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.02%
realworld.run.linux.arm64.checked.mch -0.02%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.02%
MinOpts (-0.02% to +0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries.pmi.linux.arm64.checked.mch -0.01%
libraries_tests.run.linux.arm64.Release.mch -0.01%
FullOpts (-0.03% to -0.01%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch -0.02%
benchmarks.run_pgo.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.02%
coreclr_tests.run.linux.arm64.checked.mch -0.03%
libraries.crossgen2.linux.arm64.checked.mch -0.02%
libraries.pmi.linux.arm64.checked.mch -0.02%
libraries_tests.run.linux.arm64.Release.mch -0.02%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.02%
realworld.run.linux.arm64.checked.mch -0.02%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.03% to -0.01%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.01%
benchmarks.run_tiered.linux.x64.checked.mch -0.01%
coreclr_tests.run.linux.x64.checked.mch -0.01%
libraries.crossgen2.linux.x64.checked.mch -0.01%
libraries.pmi.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.01%
realworld.run.linux.x64.checked.mch -0.03%
smoke_tests.nativeaot.linux.x64.checked.mch -0.01%
MinOpts (-0.10% to -0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.x64.checked.mch -0.02%
coreclr_tests.run.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.10%
FullOpts (-0.03% to -0.01%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.01%
benchmarks.run_tiered.linux.x64.checked.mch -0.01%
coreclr_tests.run.linux.x64.checked.mch -0.01%
libraries.crossgen2.linux.x64.checked.mch -0.01%
libraries.pmi.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.01%
realworld.run.linux.x64.checked.mch -0.03%
smoke_tests.nativeaot.linux.x64.checked.mch -0.01%

Details here


Throughput diffs for linux/arm ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.03% to -0.00%)
Collection PDIFF
libraries_tests.run.linux.arm.Release.mch -0.03%
MinOpts (-0.11% to 0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.arm.checked.mch -0.02%
libraries_tests.run.linux.arm.Release.mch -0.11%

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.03% to -0.00%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch -0.01%
benchmarks.run_pgo.windows.x86.checked.mch -0.01%
benchmarks.run_tiered.windows.x86.checked.mch -0.01%
libraries.crossgen2.windows.x86.checked.mch -0.01%
libraries.pmi.windows.x86.checked.mch -0.01%
libraries_tests.run.windows.x86.Release.mch -0.01%
realworld.run.windows.x86.checked.mch -0.03%
MinOpts (-0.03% to +0.00%)
Collection PDIFF
benchmarks.run_pgo.windows.x86.checked.mch -0.03%
libraries_tests.run.windows.x86.Release.mch -0.01%
FullOpts (-0.03% to -0.00%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch -0.01%
benchmarks.run_tiered.windows.x86.checked.mch -0.01%
libraries.crossgen2.windows.x86.checked.mch -0.01%
libraries.pmi.windows.x86.checked.mch -0.01%
libraries_tests.run.windows.x86.Release.mch -0.01%
realworld.run.windows.x86.checked.mch -0.03%

Details here


@ryujit-bot
Copy link

Diff results for #97664

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,507,317 contexts (1,007,092 MinOpts, 1,500,225 FullOpts).

MISSED contexts: 1 (0.00%)

Overall (-656 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 80,093,044 -8
coreclr_tests.run.linux.arm64.checked.mch 508,749,628 +0
libraries_tests.run.linux.arm64.Release.mch 395,710,340 -648
FullOpts (-656 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 54,158,260 -8
coreclr_tests.run.linux.arm64.checked.mch 160,601,476 +0
libraries_tests.run.linux.arm64.Release.mch 180,578,388 -648

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,517,908 contexts (991,070 MinOpts, 1,526,838 FullOpts).

MISSED contexts: 1 (0.00%)

Overall (-901 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 71,579,583 +30
coreclr_tests.run.linux.x64.checked.mch 403,725,618 +0
libraries_tests.run.linux.x64.Release.mch 337,126,106 -931
FullOpts (-901 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 47,779,594 +30
coreclr_tests.run.linux.x64.checked.mch 123,970,916 +0
libraries_tests.run.linux.x64.Release.mch 153,366,413 -931

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 2,270,868 contexts (932,669 MinOpts, 1,338,199 FullOpts).

MISSED contexts: 2 (0.00%)

Overall (-288 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 34,442,140 -20
coreclr_tests.run.osx.arm64.checked.mch 486,433,300 +0
libraries_tests.run.osx.arm64.Release.mch 324,596,964 -268
FullOpts (-288 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 18,140,840 -20
coreclr_tests.run.osx.arm64.checked.mch 153,820,376 +0
libraries_tests.run.osx.arm64.Release.mch 120,881,116 -268

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,341,108 contexts (938,449 MinOpts, 1,402,659 FullOpts).

MISSED contexts: 9 (0.00%)

Overall (-664 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 45,573,052 -20
coreclr_tests.run.windows.arm64.checked.mch 495,287,164 +0
libraries_tests.run.windows.arm64.Release.mch 330,811,772 -644
FullOpts (-664 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 29,561,656 -20
coreclr_tests.run.windows.arm64.checked.mch 156,598,060 +0
libraries_tests.run.windows.arm64.Release.mch 127,378,176 -644

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,512,209 contexts (997,391 MinOpts, 1,514,818 FullOpts).

MISSED contexts: 3 (0.00%)

Overall (-323 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 47,040,723 +24
benchmarks.run_pgo.windows.x64.checked.mch 36,232,799 +15
coreclr_tests.run.windows.x64.checked.mch 393,207,052 +0
libraries_tests.run.windows.x64.Release.mch 282,129,292 -362
FullOpts (-323 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 28,549,674 +24
benchmarks.run_pgo.windows.x64.checked.mch 22,062,143 +15
coreclr_tests.run.windows.x64.checked.mch 120,418,198 +0
libraries_tests.run.windows.x64.Release.mch 106,270,974 -362

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,239,390 contexts (829,328 MinOpts, 1,410,062 FullOpts).

MISSED contexts: 71,274 (3.08%)

Overall (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch 243,880,786 +0
FullOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch 122,911,654 +0

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,293,451 contexts (839,658 MinOpts, 1,453,793 FullOpts).

MISSED contexts: 45 (0.00%)

Overall (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch 186,683,551 +0
FullOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch 88,409,851 +0

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.02% to -0.01%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch -0.02%
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.02%
libraries.crossgen2.linux.arm64.checked.mch -0.02%
libraries.pmi.linux.arm64.checked.mch -0.02%
libraries_tests.run.linux.arm64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.02%
realworld.run.linux.arm64.checked.mch -0.02%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.02%
MinOpts (-0.02% to +0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries.pmi.linux.arm64.checked.mch -0.01%
libraries_tests.run.linux.arm64.Release.mch -0.01%
FullOpts (-0.03% to -0.01%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch -0.02%
benchmarks.run_pgo.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.02%
coreclr_tests.run.linux.arm64.checked.mch -0.03%
libraries.crossgen2.linux.arm64.checked.mch -0.02%
libraries.pmi.linux.arm64.checked.mch -0.02%
libraries_tests.run.linux.arm64.Release.mch -0.02%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.02%
realworld.run.linux.arm64.checked.mch -0.02%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.02%

Details here


Throughput diffs for linux/arm ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.03% to -0.00%)
Collection PDIFF
libraries_tests.run.linux.arm.Release.mch -0.03%
MinOpts (-0.11% to 0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.arm.checked.mch -0.02%
libraries_tests.run.linux.arm.Release.mch -0.11%

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.03% to -0.00%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch -0.01%
benchmarks.run_pgo.windows.x86.checked.mch -0.01%
benchmarks.run_tiered.windows.x86.checked.mch -0.01%
libraries.crossgen2.windows.x86.checked.mch -0.01%
libraries.pmi.windows.x86.checked.mch -0.01%
libraries_tests.run.windows.x86.Release.mch -0.01%
realworld.run.windows.x86.checked.mch -0.03%
MinOpts (-0.03% to +0.00%)
Collection PDIFF
benchmarks.run_pgo.windows.x86.checked.mch -0.03%
libraries_tests.run.windows.x86.Release.mch -0.01%
FullOpts (-0.03% to -0.00%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch -0.01%
benchmarks.run_tiered.windows.x86.checked.mch -0.01%
libraries.crossgen2.windows.x86.checked.mch -0.01%
libraries.pmi.windows.x86.checked.mch -0.01%
libraries_tests.run.windows.x86.Release.mch -0.01%
realworld.run.windows.x86.checked.mch -0.03%

Details here


@github-actions github-actions bot locked and limited conversation to collaborators Mar 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants