Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget - #97664

Merged
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target
Jan 31, 2024
Merged

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget#97664
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target

Conversation

@amanasifkhalid

Copy link
Copy Markdown
Contributor

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).

@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 29, 2024
@ghost

Copy link
Copy Markdown

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,533,064-20
coreclr_tests.run.osx.arm64.checked.mch483,586,020+0
libraries_tests.run.osx.arm64.Release.mch313,700,576-244
FullOpts (-264 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,159,716-20
coreclr_tests.run.osx.arm64.checked.mch153,413,252+0
libraries_tests.run.osx.arm64.Release.mch111,962,988-244

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.10%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x64.checked.mch-0.03%
libraries_tests.run.windows.x64.Release.mch-0.01%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch79,903,244-8
coreclr_tests.run.linux.arm64.checked.mch509,740,232+0
libraries_tests.run.linux.arm64.Release.mch400,018,960-616
FullOpts (-624 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,354,872-8
coreclr_tests.run.linux.arm64.checked.mch160,832,376+0
libraries_tests.run.linux.arm64.Release.mch183,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch69,144,788+0
coreclr_tests.run.linux.x64.checked.mch403,316,719+0
libraries_tests.run.linux.x64.Release.mch348,249,945-904
FullOpts (-904 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,802,743+0
coreclr_tests.run.linux.x64.checked.mch123,825,558+0
libraries_tests.run.linux.x64.Release.mch164,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch46,609,220-20
coreclr_tests.run.windows.arm64.checked.mch496,298,628+0
libraries_tests.run.windows.arm64.Release.mch326,696,628-652
FullOpts (-672 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch30,351,028-20
coreclr_tests.run.windows.arm64.checked.mch156,624,224+0
libraries_tests.run.windows.arm64.Release.mch123,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch35,778,033-23
coreclr_tests.run.windows.x64.checked.mch392,964,649+0
libraries_tests.run.windows.x64.Release.mch278,843,071-343
FullOpts (-366 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch21,745,952-23
coreclr_tests.run.windows.x64.checked.mch120,242,671+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch244,097,424+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch184,751,928+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch87,451,888+0

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (-0.04% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.04%
MinOpts (-0.20% to +0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.02%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.02%
MinOpts (-0.08% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.09%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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


@AndyAyersMSAndyAyersMS left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Diff results for #97664

Throughput diffs

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.02%
realworld.run.linux.x64.checked.mch-0.02%
MinOpts (-0.09% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.01%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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

@amanasifkhalid
amanasifkhalid merged commit 5dd76d4 into dotnet:mainJan 31, 2024
@amanasifkhalid
amanasifkhalid deleted the replace-jump-target branch January 31, 2024 20:39
@ryujit-bot

Copy link
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,409,851+0

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

MinOpts (-0.02% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 2, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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

@amanasifkhalid@ryujit-bot@AndyAyersMS
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget - #97664

Merged
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target
Jan 31, 2024
Merged

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget#97664
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target

Conversation

@amanasifkhalid

Copy link
Copy Markdown
Contributor

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).

@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 29, 2024
@ghost

Copy link
Copy Markdown

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,533,064-20
coreclr_tests.run.osx.arm64.checked.mch483,586,020+0
libraries_tests.run.osx.arm64.Release.mch313,700,576-244
FullOpts (-264 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,159,716-20
coreclr_tests.run.osx.arm64.checked.mch153,413,252+0
libraries_tests.run.osx.arm64.Release.mch111,962,988-244

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.10%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x64.checked.mch-0.03%
libraries_tests.run.windows.x64.Release.mch-0.01%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch79,903,244-8
coreclr_tests.run.linux.arm64.checked.mch509,740,232+0
libraries_tests.run.linux.arm64.Release.mch400,018,960-616
FullOpts (-624 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,354,872-8
coreclr_tests.run.linux.arm64.checked.mch160,832,376+0
libraries_tests.run.linux.arm64.Release.mch183,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch69,144,788+0
coreclr_tests.run.linux.x64.checked.mch403,316,719+0
libraries_tests.run.linux.x64.Release.mch348,249,945-904
FullOpts (-904 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,802,743+0
coreclr_tests.run.linux.x64.checked.mch123,825,558+0
libraries_tests.run.linux.x64.Release.mch164,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch46,609,220-20
coreclr_tests.run.windows.arm64.checked.mch496,298,628+0
libraries_tests.run.windows.arm64.Release.mch326,696,628-652
FullOpts (-672 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch30,351,028-20
coreclr_tests.run.windows.arm64.checked.mch156,624,224+0
libraries_tests.run.windows.arm64.Release.mch123,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch35,778,033-23
coreclr_tests.run.windows.x64.checked.mch392,964,649+0
libraries_tests.run.windows.x64.Release.mch278,843,071-343
FullOpts (-366 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch21,745,952-23
coreclr_tests.run.windows.x64.checked.mch120,242,671+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch244,097,424+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch184,751,928+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch87,451,888+0

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (-0.04% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.04%
MinOpts (-0.20% to +0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.02%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.02%
MinOpts (-0.08% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.09%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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


@AndyAyersMSAndyAyersMS left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Diff results for #97664

Throughput diffs

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.02%
realworld.run.linux.x64.checked.mch-0.02%
MinOpts (-0.09% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.01%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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

@amanasifkhalid
amanasifkhalid merged commit 5dd76d4 into dotnet:mainJan 31, 2024
@amanasifkhalid
amanasifkhalid deleted the replace-jump-target branch January 31, 2024 20:39
@ryujit-bot

Copy link
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,409,851+0

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

MinOpts (-0.02% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 2, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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

@amanasifkhalid@ryujit-bot@AndyAyersMS
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget - #97664

Merged
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target
Jan 31, 2024
Merged

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget#97664
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target

Conversation

@amanasifkhalid

Copy link
Copy Markdown
Contributor

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).

@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 29, 2024
@ghost

Copy link
Copy Markdown

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,533,064-20
coreclr_tests.run.osx.arm64.checked.mch483,586,020+0
libraries_tests.run.osx.arm64.Release.mch313,700,576-244
FullOpts (-264 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,159,716-20
coreclr_tests.run.osx.arm64.checked.mch153,413,252+0
libraries_tests.run.osx.arm64.Release.mch111,962,988-244

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.10%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x64.checked.mch-0.03%
libraries_tests.run.windows.x64.Release.mch-0.01%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch79,903,244-8
coreclr_tests.run.linux.arm64.checked.mch509,740,232+0
libraries_tests.run.linux.arm64.Release.mch400,018,960-616
FullOpts (-624 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,354,872-8
coreclr_tests.run.linux.arm64.checked.mch160,832,376+0
libraries_tests.run.linux.arm64.Release.mch183,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch69,144,788+0
coreclr_tests.run.linux.x64.checked.mch403,316,719+0
libraries_tests.run.linux.x64.Release.mch348,249,945-904
FullOpts (-904 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,802,743+0
coreclr_tests.run.linux.x64.checked.mch123,825,558+0
libraries_tests.run.linux.x64.Release.mch164,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch46,609,220-20
coreclr_tests.run.windows.arm64.checked.mch496,298,628+0
libraries_tests.run.windows.arm64.Release.mch326,696,628-652
FullOpts (-672 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch30,351,028-20
coreclr_tests.run.windows.arm64.checked.mch156,624,224+0
libraries_tests.run.windows.arm64.Release.mch123,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch35,778,033-23
coreclr_tests.run.windows.x64.checked.mch392,964,649+0
libraries_tests.run.windows.x64.Release.mch278,843,071-343
FullOpts (-366 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch21,745,952-23
coreclr_tests.run.windows.x64.checked.mch120,242,671+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch244,097,424+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch184,751,928+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch87,451,888+0

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (-0.04% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.04%
MinOpts (-0.20% to +0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.02%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.02%
MinOpts (-0.08% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.09%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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


@AndyAyersMSAndyAyersMS left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Diff results for #97664

Throughput diffs

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.02%
realworld.run.linux.x64.checked.mch-0.02%
MinOpts (-0.09% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.01%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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

@amanasifkhalid
amanasifkhalid merged commit 5dd76d4 into dotnet:mainJan 31, 2024
@amanasifkhalid
amanasifkhalid deleted the replace-jump-target branch January 31, 2024 20:39
@ryujit-bot

Copy link
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,409,851+0

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

MinOpts (-0.02% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 2, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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

@amanasifkhalid@ryujit-bot@AndyAyersMS
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget - #97664

Merged
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target
Jan 31, 2024
Merged

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget#97664
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target

Conversation

@amanasifkhalid

Copy link
Copy Markdown
Contributor

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).

@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 29, 2024
@ghost

Copy link
Copy Markdown

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,533,064-20
coreclr_tests.run.osx.arm64.checked.mch483,586,020+0
libraries_tests.run.osx.arm64.Release.mch313,700,576-244
FullOpts (-264 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,159,716-20
coreclr_tests.run.osx.arm64.checked.mch153,413,252+0
libraries_tests.run.osx.arm64.Release.mch111,962,988-244

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.10%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x64.checked.mch-0.03%
libraries_tests.run.windows.x64.Release.mch-0.01%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch79,903,244-8
coreclr_tests.run.linux.arm64.checked.mch509,740,232+0
libraries_tests.run.linux.arm64.Release.mch400,018,960-616
FullOpts (-624 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,354,872-8
coreclr_tests.run.linux.arm64.checked.mch160,832,376+0
libraries_tests.run.linux.arm64.Release.mch183,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch69,144,788+0
coreclr_tests.run.linux.x64.checked.mch403,316,719+0
libraries_tests.run.linux.x64.Release.mch348,249,945-904
FullOpts (-904 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,802,743+0
coreclr_tests.run.linux.x64.checked.mch123,825,558+0
libraries_tests.run.linux.x64.Release.mch164,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch46,609,220-20
coreclr_tests.run.windows.arm64.checked.mch496,298,628+0
libraries_tests.run.windows.arm64.Release.mch326,696,628-652
FullOpts (-672 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch30,351,028-20
coreclr_tests.run.windows.arm64.checked.mch156,624,224+0
libraries_tests.run.windows.arm64.Release.mch123,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch35,778,033-23
coreclr_tests.run.windows.x64.checked.mch392,964,649+0
libraries_tests.run.windows.x64.Release.mch278,843,071-343
FullOpts (-366 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch21,745,952-23
coreclr_tests.run.windows.x64.checked.mch120,242,671+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch244,097,424+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch184,751,928+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch87,451,888+0

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (-0.04% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.04%
MinOpts (-0.20% to +0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.02%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.02%
MinOpts (-0.08% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.09%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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


@AndyAyersMSAndyAyersMS left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Diff results for #97664

Throughput diffs

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.02%
realworld.run.linux.x64.checked.mch-0.02%
MinOpts (-0.09% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.01%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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

@amanasifkhalid
amanasifkhalid merged commit 5dd76d4 into dotnet:mainJan 31, 2024
@amanasifkhalid
amanasifkhalid deleted the replace-jump-target branch January 31, 2024 20:39
@ryujit-bot

Copy link
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,409,851+0

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

MinOpts (-0.02% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 2, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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

@amanasifkhalid@ryujit-bot@AndyAyersMS
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget - #97664

Merged
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target
Jan 31, 2024
Merged

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget#97664
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target

Conversation

@amanasifkhalid

Copy link
Copy Markdown
Contributor

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).

@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 29, 2024
@ghost

Copy link
Copy Markdown

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,533,064-20
coreclr_tests.run.osx.arm64.checked.mch483,586,020+0
libraries_tests.run.osx.arm64.Release.mch313,700,576-244
FullOpts (-264 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,159,716-20
coreclr_tests.run.osx.arm64.checked.mch153,413,252+0
libraries_tests.run.osx.arm64.Release.mch111,962,988-244

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.10%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x64.checked.mch-0.03%
libraries_tests.run.windows.x64.Release.mch-0.01%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch79,903,244-8
coreclr_tests.run.linux.arm64.checked.mch509,740,232+0
libraries_tests.run.linux.arm64.Release.mch400,018,960-616
FullOpts (-624 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,354,872-8
coreclr_tests.run.linux.arm64.checked.mch160,832,376+0
libraries_tests.run.linux.arm64.Release.mch183,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch69,144,788+0
coreclr_tests.run.linux.x64.checked.mch403,316,719+0
libraries_tests.run.linux.x64.Release.mch348,249,945-904
FullOpts (-904 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,802,743+0
coreclr_tests.run.linux.x64.checked.mch123,825,558+0
libraries_tests.run.linux.x64.Release.mch164,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch46,609,220-20
coreclr_tests.run.windows.arm64.checked.mch496,298,628+0
libraries_tests.run.windows.arm64.Release.mch326,696,628-652
FullOpts (-672 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch30,351,028-20
coreclr_tests.run.windows.arm64.checked.mch156,624,224+0
libraries_tests.run.windows.arm64.Release.mch123,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch35,778,033-23
coreclr_tests.run.windows.x64.checked.mch392,964,649+0
libraries_tests.run.windows.x64.Release.mch278,843,071-343
FullOpts (-366 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch21,745,952-23
coreclr_tests.run.windows.x64.checked.mch120,242,671+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch244,097,424+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch184,751,928+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch87,451,888+0

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (-0.04% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.04%
MinOpts (-0.20% to +0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.02%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.02%
MinOpts (-0.08% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.09%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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


@AndyAyersMSAndyAyersMS left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Diff results for #97664

Throughput diffs

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.02%
realworld.run.linux.x64.checked.mch-0.02%
MinOpts (-0.09% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.01%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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

@amanasifkhalid
amanasifkhalid merged commit 5dd76d4 into dotnet:mainJan 31, 2024
@amanasifkhalid
amanasifkhalid deleted the replace-jump-target branch January 31, 2024 20:39
@ryujit-bot

Copy link
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,409,851+0

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

MinOpts (-0.02% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 2, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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

@amanasifkhalid@ryujit-bot@AndyAyersMS
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget - #97664

Merged
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target
Jan 31, 2024
Merged

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget#97664
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target

Conversation

@amanasifkhalid

Copy link
Copy Markdown
Contributor

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).

@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 29, 2024
@ghost

Copy link
Copy Markdown

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,533,064-20
coreclr_tests.run.osx.arm64.checked.mch483,586,020+0
libraries_tests.run.osx.arm64.Release.mch313,700,576-244
FullOpts (-264 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,159,716-20
coreclr_tests.run.osx.arm64.checked.mch153,413,252+0
libraries_tests.run.osx.arm64.Release.mch111,962,988-244

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.10%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x64.checked.mch-0.03%
libraries_tests.run.windows.x64.Release.mch-0.01%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch79,903,244-8
coreclr_tests.run.linux.arm64.checked.mch509,740,232+0
libraries_tests.run.linux.arm64.Release.mch400,018,960-616
FullOpts (-624 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,354,872-8
coreclr_tests.run.linux.arm64.checked.mch160,832,376+0
libraries_tests.run.linux.arm64.Release.mch183,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch69,144,788+0
coreclr_tests.run.linux.x64.checked.mch403,316,719+0
libraries_tests.run.linux.x64.Release.mch348,249,945-904
FullOpts (-904 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,802,743+0
coreclr_tests.run.linux.x64.checked.mch123,825,558+0
libraries_tests.run.linux.x64.Release.mch164,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch46,609,220-20
coreclr_tests.run.windows.arm64.checked.mch496,298,628+0
libraries_tests.run.windows.arm64.Release.mch326,696,628-652
FullOpts (-672 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch30,351,028-20
coreclr_tests.run.windows.arm64.checked.mch156,624,224+0
libraries_tests.run.windows.arm64.Release.mch123,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch35,778,033-23
coreclr_tests.run.windows.x64.checked.mch392,964,649+0
libraries_tests.run.windows.x64.Release.mch278,843,071-343
FullOpts (-366 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch21,745,952-23
coreclr_tests.run.windows.x64.checked.mch120,242,671+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch244,097,424+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch184,751,928+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch87,451,888+0

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (-0.04% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.04%
MinOpts (-0.20% to +0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.02%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.02%
MinOpts (-0.08% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.09%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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


@AndyAyersMSAndyAyersMS left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Diff results for #97664

Throughput diffs

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.02%
realworld.run.linux.x64.checked.mch-0.02%
MinOpts (-0.09% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.01%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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

@amanasifkhalid
amanasifkhalid merged commit 5dd76d4 into dotnet:mainJan 31, 2024
@amanasifkhalid
amanasifkhalid deleted the replace-jump-target branch January 31, 2024 20:39
@ryujit-bot

Copy link
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,409,851+0

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

MinOpts (-0.02% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 2, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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

@amanasifkhalid@ryujit-bot@AndyAyersMS
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget - #97664

Merged
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target
Jan 31, 2024
Merged

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget#97664
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target

Conversation

@amanasifkhalid

Copy link
Copy Markdown
Contributor

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).

@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 29, 2024
@ghost

Copy link
Copy Markdown

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,533,064-20
coreclr_tests.run.osx.arm64.checked.mch483,586,020+0
libraries_tests.run.osx.arm64.Release.mch313,700,576-244
FullOpts (-264 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,159,716-20
coreclr_tests.run.osx.arm64.checked.mch153,413,252+0
libraries_tests.run.osx.arm64.Release.mch111,962,988-244

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.10%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x64.checked.mch-0.03%
libraries_tests.run.windows.x64.Release.mch-0.01%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch79,903,244-8
coreclr_tests.run.linux.arm64.checked.mch509,740,232+0
libraries_tests.run.linux.arm64.Release.mch400,018,960-616
FullOpts (-624 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,354,872-8
coreclr_tests.run.linux.arm64.checked.mch160,832,376+0
libraries_tests.run.linux.arm64.Release.mch183,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch69,144,788+0
coreclr_tests.run.linux.x64.checked.mch403,316,719+0
libraries_tests.run.linux.x64.Release.mch348,249,945-904
FullOpts (-904 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,802,743+0
coreclr_tests.run.linux.x64.checked.mch123,825,558+0
libraries_tests.run.linux.x64.Release.mch164,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch46,609,220-20
coreclr_tests.run.windows.arm64.checked.mch496,298,628+0
libraries_tests.run.windows.arm64.Release.mch326,696,628-652
FullOpts (-672 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch30,351,028-20
coreclr_tests.run.windows.arm64.checked.mch156,624,224+0
libraries_tests.run.windows.arm64.Release.mch123,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch35,778,033-23
coreclr_tests.run.windows.x64.checked.mch392,964,649+0
libraries_tests.run.windows.x64.Release.mch278,843,071-343
FullOpts (-366 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch21,745,952-23
coreclr_tests.run.windows.x64.checked.mch120,242,671+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch244,097,424+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch184,751,928+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch87,451,888+0

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (-0.04% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.04%
MinOpts (-0.20% to +0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.02%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.02%
MinOpts (-0.08% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.09%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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


@AndyAyersMSAndyAyersMS left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Diff results for #97664

Throughput diffs

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.02%
realworld.run.linux.x64.checked.mch-0.02%
MinOpts (-0.09% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.01%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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

@amanasifkhalid
amanasifkhalid merged commit 5dd76d4 into dotnet:mainJan 31, 2024
@amanasifkhalid
amanasifkhalid deleted the replace-jump-target branch January 31, 2024 20:39
@ryujit-bot

Copy link
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,409,851+0

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

MinOpts (-0.02% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 2, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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

@amanasifkhalid@ryujit-bot@AndyAyersMS
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget - #97664

Merged
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target
Jan 31, 2024
Merged

Remove fgReplaceSwitchJumpTarget; increase usage of fgReplaceJumpTarget#97664
amanasifkhalid merged 4 commits into
dotnet:mainfrom
amanasifkhalid:replace-jump-target

Conversation

@amanasifkhalid

Copy link
Copy Markdown
Contributor

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).

@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 29, 2024
@ghost

Copy link
Copy Markdown

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,533,064-20
coreclr_tests.run.osx.arm64.checked.mch483,586,020+0
libraries_tests.run.osx.arm64.Release.mch313,700,576-244
FullOpts (-264 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,159,716-20
coreclr_tests.run.osx.arm64.checked.mch153,413,252+0
libraries_tests.run.osx.arm64.Release.mch111,962,988-244

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.10%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x64.checked.mch-0.03%
libraries_tests.run.windows.x64.Release.mch-0.01%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch79,903,244-8
coreclr_tests.run.linux.arm64.checked.mch509,740,232+0
libraries_tests.run.linux.arm64.Release.mch400,018,960-616
FullOpts (-624 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,354,872-8
coreclr_tests.run.linux.arm64.checked.mch160,832,376+0
libraries_tests.run.linux.arm64.Release.mch183,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch69,144,788+0
coreclr_tests.run.linux.x64.checked.mch403,316,719+0
libraries_tests.run.linux.x64.Release.mch348,249,945-904
FullOpts (-904 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,802,743+0
coreclr_tests.run.linux.x64.checked.mch123,825,558+0
libraries_tests.run.linux.x64.Release.mch164,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch46,609,220-20
coreclr_tests.run.windows.arm64.checked.mch496,298,628+0
libraries_tests.run.windows.arm64.Release.mch326,696,628-652
FullOpts (-672 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch30,351,028-20
coreclr_tests.run.windows.arm64.checked.mch156,624,224+0
libraries_tests.run.windows.arm64.Release.mch123,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch35,778,033-23
coreclr_tests.run.windows.x64.checked.mch392,964,649+0
libraries_tests.run.windows.x64.Release.mch278,843,071-343
FullOpts (-366 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch21,745,952-23
coreclr_tests.run.windows.x64.checked.mch120,242,671+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch244,097,424+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch184,751,928+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch87,451,888+0

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (-0.04% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.04%
MinOpts (-0.20% to +0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.02%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.02%
MinOpts (-0.08% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
libraries_tests.run.linux.arm64.Release.mch-0.08%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
libraries_tests.run.linux.x64.Release.mch-0.09%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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


@AndyAyersMSAndyAyersMS left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Diff results for #97664

Throughput diffs

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.02%
realworld.run.linux.x64.checked.mch-0.02%
MinOpts (-0.09% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.02%
FullOpts (-0.02% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.01%
FullOpts (-0.03% to -0.02%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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
Copy Markdown
ContributorAuthor

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

@amanasifkhalid
amanasifkhalid merged commit 5dd76d4 into dotnet:mainJan 31, 2024
@amanasifkhalid
amanasifkhalid deleted the replace-jump-target branch January 31, 2024 20:39
@ryujit-bot

Copy link
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,409,851+0

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

MinOpts (-0.02% to 0.00%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.02%
FullOpts (-0.01% to -0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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
Copy Markdown
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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,093,044-8
coreclr_tests.run.linux.arm64.checked.mch508,749,628+0
libraries_tests.run.linux.arm64.Release.mch395,710,340-648
FullOpts (-656 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch54,158,260-8
coreclr_tests.run.linux.arm64.checked.mch160,601,476+0
libraries_tests.run.linux.arm64.Release.mch180,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch71,579,583+30
coreclr_tests.run.linux.x64.checked.mch403,725,618+0
libraries_tests.run.linux.x64.Release.mch337,126,106-931
FullOpts (-901 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch47,779,594+30
coreclr_tests.run.linux.x64.checked.mch123,970,916+0
libraries_tests.run.linux.x64.Release.mch153,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,442,140-20
coreclr_tests.run.osx.arm64.checked.mch486,433,300+0
libraries_tests.run.osx.arm64.Release.mch324,596,964-268
FullOpts (-288 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch18,140,840-20
coreclr_tests.run.osx.arm64.checked.mch153,820,376+0
libraries_tests.run.osx.arm64.Release.mch120,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)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch45,573,052-20
coreclr_tests.run.windows.arm64.checked.mch495,287,164+0
libraries_tests.run.windows.arm64.Release.mch330,811,772-644
FullOpts (-664 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch29,561,656-20
coreclr_tests.run.windows.arm64.checked.mch156,598,060+0
libraries_tests.run.windows.arm64.Release.mch127,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)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,723+24
benchmarks.run_pgo.windows.x64.checked.mch36,232,799+15
coreclr_tests.run.windows.x64.checked.mch393,207,052+0
libraries_tests.run.windows.x64.Release.mch282,129,292-362
FullOpts (-323 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,674+24
benchmarks.run_pgo.windows.x64.checked.mch22,062,143+15
coreclr_tests.run.windows.x64.checked.mch120,418,198+0
libraries_tests.run.windows.x64.Release.mch106,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch243,880,786+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch122,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)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch186,683,551+0
FullOpts (+0 bytes)
CollectionBase size (bytes)Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch88,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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
libraries_tests.run.linux.arm.Release.mch-0.03%
MinOpts (-0.11% to 0.00%)
CollectionPDIFF
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%)
CollectionPDIFF
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%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-0.03%
libraries_tests.run.windows.x86.Release.mch-0.01%
FullOpts (-0.03% to -0.00%)
CollectionPDIFF
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-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 2, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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

@amanasifkhalid@ryujit-bot@AndyAyersMS