Skip to content

JIT: Improve BBJ_COND to BBJ_ALWAYS conversion in fgUpdateFlowGraph - #97681

Closed
amanasifkhalid wants to merge 4 commits into
dotnet:mainfrom
amanasifkhalid:opt-cond-to-uncond
Closed

JIT: Improve BBJ_COND to BBJ_ALWAYS conversion in fgUpdateFlowGraph#97681
amanasifkhalid wants to merge 4 commits into
dotnet:mainfrom
amanasifkhalid:opt-cond-to-uncond

Conversation

@amanasifkhalid

Copy link
Copy Markdown
Contributor

Follow-up to #97488. In fgUpdateFlowGraph, we already have a check for converting BBJ_COND blocks to BBJ_ALWAYS blocks when the true and false targets are the same. This PR marginally improves the number of cases we can optimize by checking if the true/false target is a BBJ_ALWAYS to the false/true target. This pattern can occur inadvertently if a block's false target is an empty BBJ_ALWAYS to the "real" false target (in other words, the BBJ_ALWAYS was inserted to maintain the implicit fallthrough invariant during block reordering), and other flowgraph optimizations (like compacting) cause the BBJ_ALWAYS block to point to the true target. In such cases, we can convert the BBJ_COND block to a BBJ_ALWAYS block, and potentially delete the empty BBJ_ALWAYS.

@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 30, 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

Follow-up to #97488. In fgUpdateFlowGraph, we already have a check for converting BBJ_COND blocks to BBJ_ALWAYS blocks when the true and false targets are the same. This PR marginally improves the number of cases we can optimize by checking if the true/false target is a BBJ_ALWAYS to the false/true target. This pattern can occur inadvertently if a block's false target is an empty BBJ_ALWAYS to the "real" false target (in other words, the BBJ_ALWAYS was inserted to maintain the implicit fallthrough invariant during block reordering), and other flowgraph optimizations (like compacting) cause the BBJ_ALWAYS block to point to the true target. In such cases, we can convert the BBJ_COND block to a BBJ_ALWAYS block, and potentially delete the empty BBJ_ALWAYS.

Author:amanasifkhalid
Assignees:amanasifkhalid
Labels:

area-CodeGen-coreclr

Milestone:-

@ryujit-bot

Copy link
Copy Markdown
Diff results for #97681

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.02% to +0.06%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.05%
benchmarks.run_pgo.linux.arm64.checked.mch+0.06%
benchmarks.run_tiered.linux.arm64.checked.mch+0.03%
coreclr_tests.run.linux.arm64.checked.mch+0.02%
libraries.crossgen2.linux.arm64.checked.mch+0.03%
libraries.pmi.linux.arm64.checked.mch+0.05%
libraries_tests.run.linux.arm64.Release.mch+0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch+0.06%
FullOpts (+0.03% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.05%
benchmarks.run_pgo.linux.arm64.checked.mch+0.07%
benchmarks.run_tiered.linux.arm64.checked.mch+0.06%
coreclr_tests.run.linux.arm64.checked.mch+0.03%
libraries.crossgen2.linux.arm64.checked.mch+0.03%
libraries.pmi.linux.arm64.checked.mch+0.05%
libraries_tests.run.linux.arm64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch+0.06%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.02% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
benchmarks.run_pgo.linux.x64.checked.mch+0.07%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
coreclr_tests.run.linux.x64.checked.mch+0.02%
libraries.crossgen2.linux.x64.checked.mch+0.04%
libraries.pmi.linux.x64.checked.mch+0.05%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.05%
realworld.run.linux.x64.checked.mch+0.04%
smoke_tests.nativeaot.linux.x64.checked.mch+0.06%
FullOpts (+0.04% to +0.08%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
benchmarks.run_tiered.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries.crossgen2.linux.x64.checked.mch+0.04%
libraries.pmi.linux.x64.checked.mch+0.05%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.05%
realworld.run.linux.x64.checked.mch+0.04%
smoke_tests.nativeaot.linux.x64.checked.mch+0.06%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.02% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch+0.06%
benchmarks.run_pgo.osx.arm64.checked.mch+0.04%
benchmarks.run_tiered.osx.arm64.checked.mch+0.03%
coreclr_tests.run.osx.arm64.checked.mch+0.02%
libraries.crossgen2.osx.arm64.checked.mch+0.03%
libraries.pmi.osx.arm64.checked.mch+0.05%
libraries_tests.run.osx.arm64.Release.mch+0.04%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.05%
realworld.run.osx.arm64.checked.mch+0.04%
FullOpts (+0.03% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch+0.06%
benchmarks.run_pgo.osx.arm64.checked.mch+0.04%
benchmarks.run_tiered.osx.arm64.checked.mch+0.06%
coreclr_tests.run.osx.arm64.checked.mch+0.03%
libraries.crossgen2.osx.arm64.checked.mch+0.03%
libraries.pmi.osx.arm64.checked.mch+0.05%
libraries_tests.run.osx.arm64.Release.mch+0.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.05%
realworld.run.osx.arm64.checked.mch+0.04%

Throughput diffs for windows/arm64 ran on windows/x64

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

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.02% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.x64.checked.mch+0.06%
benchmarks.run_pgo.windows.x64.checked.mch+0.06%
benchmarks.run_tiered.windows.x64.checked.mch+0.04%
coreclr_tests.run.windows.x64.checked.mch+0.02%
libraries.crossgen2.windows.x64.checked.mch+0.04%
libraries.pmi.windows.x64.checked.mch+0.05%
libraries_tests.run.windows.x64.Release.mch+0.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch+0.05%
realworld.run.windows.x64.checked.mch+0.04%
smoke_tests.nativeaot.windows.x64.checked.mch+0.04%
FullOpts (+0.04% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.x64.checked.mch+0.06%
benchmarks.run_pgo.windows.x64.checked.mch+0.06%
benchmarks.run_tiered.windows.x64.checked.mch+0.06%
coreclr_tests.run.windows.x64.checked.mch+0.04%
libraries.crossgen2.windows.x64.checked.mch+0.04%
libraries.pmi.windows.x64.checked.mch+0.05%
libraries_tests.run.windows.x64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch+0.05%
realworld.run.windows.x64.checked.mch+0.04%
smoke_tests.nativeaot.windows.x64.checked.mch+0.04%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97681

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 (-42,568 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch14,972,964-444
benchmarks.run_pgo.linux.arm64.checked.mch79,903,244-3,824
benchmarks.run_tiered.linux.arm64.checked.mch22,276,872-168
coreclr_tests.run.linux.arm64.checked.mch509,740,232-5,976
libraries.pmi.linux.arm64.checked.mch76,281,012-3,560
libraries_tests.run.linux.arm64.Release.mch400,018,960-23,420
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch165,110,104-3,836
realworld.run.linux.arm64.checked.mch15,918,288-1,340
FullOpts (-42,568 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch14,713,212-444
benchmarks.run_pgo.linux.arm64.checked.mch54,354,872-3,824
benchmarks.run_tiered.linux.arm64.checked.mch4,937,908-168
coreclr_tests.run.linux.arm64.checked.mch160,832,376-5,976
libraries.pmi.linux.arm64.checked.mch76,161,028-3,560
libraries_tests.run.linux.arm64.Release.mch183,280,056-23,420
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch151,612,828-3,836
realworld.run.linux.arm64.checked.mch15,336,748-1,340

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 (-47,589 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch13,723,744-452
benchmarks.run_pgo.linux.x64.checked.mch69,144,788-4,980
benchmarks.run_tiered.linux.x64.checked.mch15,897,809-261
coreclr_tests.run.linux.x64.checked.mch403,316,719-6,336
libraries.pmi.linux.x64.checked.mch60,405,907-3,269
libraries_tests.run.linux.x64.Release.mch348,249,945-27,535
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch132,684,063-3,700
realworld.run.linux.x64.checked.mch13,212,110-1,056
FullOpts (-47,589 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch13,459,811-452
benchmarks.run_pgo.linux.x64.checked.mch47,802,743-4,980
benchmarks.run_tiered.linux.x64.checked.mch3,639,425-261
coreclr_tests.run.linux.x64.checked.mch123,825,558-6,336
libraries.pmi.linux.x64.checked.mch60,293,050-3,269
libraries_tests.run.linux.x64.Release.mch164,494,781-27,535
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch122,066,277-3,700
realworld.run.linux.x64.checked.mch12,823,228-1,056

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 (-41,586 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x64.checked.mch8,737,750-405
benchmarks.run_pgo.windows.x64.checked.mch35,778,033-4,419
benchmarks.run_tiered.windows.x64.checked.mch12,549,088-220
coreclr_tests.run.windows.x64.checked.mch392,964,649-5,843
libraries.pmi.windows.x64.checked.mch61,646,281-3,447
libraries_tests.run.windows.x64.Release.mch278,843,071-22,248
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch137,561,184-3,874
realworld.run.windows.x64.checked.mch14,184,922-1,130
FullOpts (-41,586 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x64.checked.mch8,737,387-405
benchmarks.run_pgo.windows.x64.checked.mch21,745,952-4,419
benchmarks.run_tiered.windows.x64.checked.mch3,453,351-220
coreclr_tests.run.windows.x64.checked.mch120,242,671-5,843
libraries.pmi.windows.x64.checked.mch61,532,760-3,447
libraries_tests.run.windows.x64.Release.mch106,668,455-22,248
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch126,635,118-3,874
realworld.run.windows.x64.checked.mch13,798,313-1,130

Details here


Assembly diffs for windows/x86 ran on windows/x86

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

MISSED contexts: base: 808 (0.04%), diff: 842 (0.04%)

Overall (-20,881 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch7,120,835-250
benchmarks.run_pgo.windows.x86.checked.mch45,138,363-1,049
benchmarks.run_tiered.windows.x86.checked.mch9,473,048-197
coreclr_tests.run.windows.x86.checked.mch309,362,652-3,659
libraries.crossgen2.windows.x86.checked.mch31,674,641-1,340
libraries.pmi.windows.x86.checked.mch49,151,190-2,398
libraries_tests.run.windows.x86.Release.mch184,732,225-7,338
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch103,708,178-3,719
realworld.run.windows.x86.checked.mch11,283,258-931
FullOpts (-20,881 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch7,120,554-250
benchmarks.run_pgo.windows.x86.checked.mch38,525,997-1,049
benchmarks.run_tiered.windows.x86.checked.mch5,203,456-197
coreclr_tests.run.windows.x86.checked.mch107,567,075-3,659
libraries.crossgen2.windows.x86.checked.mch31,673,581-1,340
libraries.pmi.windows.x86.checked.mch49,055,957-2,398
libraries_tests.run.windows.x86.Release.mch87,432,185-7,338
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch95,028,117-3,719
realworld.run.windows.x86.checked.mch10,987,544-931

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (+0.01% to +0.03%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.02%
benchmarks.run_pgo.linux.arm.checked.mch+0.03%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.crossgen2.linux.arm.checked.mch+0.02%
libraries.pmi.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.02%
realworld.run.linux.arm.checked.mch+0.02%
FullOpts (+0.01% to +0.04%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.02%
benchmarks.run_pgo.linux.arm.checked.mch+0.04%
benchmarks.run_tiered.linux.arm.checked.mch+0.03%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.crossgen2.linux.arm.checked.mch+0.02%
libraries.pmi.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.02%
realworld.run.linux.arm.checked.mch+0.02%

Throughput diffs for windows/x86 ran on windows/x86

Overall (+0.02% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch+0.04%
benchmarks.run_pgo.windows.x86.checked.mch+0.06%
benchmarks.run_tiered.windows.x86.checked.mch+0.04%
coreclr_tests.run.windows.x86.checked.mch+0.02%
libraries.crossgen2.windows.x86.checked.mch+0.03%
libraries.pmi.windows.x86.checked.mch+0.04%
libraries_tests.run.windows.x86.Release.mch+0.03%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.04%
realworld.run.windows.x86.checked.mch+0.03%
FullOpts (+0.03% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch+0.04%
benchmarks.run_pgo.windows.x86.checked.mch+0.06%
benchmarks.run_tiered.windows.x86.checked.mch+0.05%
coreclr_tests.run.windows.x86.checked.mch+0.03%
libraries.crossgen2.windows.x86.checked.mch+0.03%
libraries.pmi.windows.x86.checked.mch+0.04%
libraries_tests.run.windows.x86.Release.mch+0.04%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.04%
realworld.run.windows.x86.checked.mch+0.03%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (+0.02% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.06%
smoke_tests.nativeaot.linux.arm64.checked.mch+0.05%
benchmarks.run_pgo.linux.arm64.checked.mch+0.07%
libraries.crossgen2.linux.arm64.checked.mch+0.03%
benchmarks.run_tiered.linux.arm64.checked.mch+0.03%
realworld.run.linux.arm64.checked.mch+0.04%
coreclr_tests.run.linux.arm64.checked.mch+0.02%
libraries.pmi.linux.arm64.checked.mch+0.05%
libraries_tests.run.linux.arm64.Release.mch+0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
FullOpts (+0.03% to +0.08%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.06%
smoke_tests.nativeaot.linux.arm64.checked.mch+0.05%
benchmarks.run_pgo.linux.arm64.checked.mch+0.08%
libraries.crossgen2.linux.arm64.checked.mch+0.03%
benchmarks.run_tiered.linux.arm64.checked.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.04%
coreclr_tests.run.linux.arm64.checked.mch+0.04%
libraries.pmi.linux.arm64.checked.mch+0.05%
libraries_tests.run.linux.arm64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%

Throughput diffs for linux/x64 ran on linux/x64

Overall (+0.02% to +0.08%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.06%
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.02%
libraries.crossgen2.linux.x64.checked.mch+0.04%
realworld.run.linux.x64.checked.mch+0.04%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
smoke_tests.nativeaot.linux.x64.checked.mch+0.05%
libraries.pmi.linux.x64.checked.mch+0.05%
FullOpts (+0.04% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.06%
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries.crossgen2.linux.x64.checked.mch+0.04%
realworld.run.linux.x64.checked.mch+0.04%
benchmarks.run_tiered.linux.x64.checked.mch+0.07%
smoke_tests.nativeaot.linux.x64.checked.mch+0.05%
libraries.pmi.linux.x64.checked.mch+0.05%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97681

Assembly diffs

Assembly diffs for windows/x64 ran on linux/x64

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

MISSED contexts: 8 (0.00%)

Overall (-52,115 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,101-7,282
benchmarks.run.windows.x64.checked.mch8,742,530-412
benchmarks.run_pgo.windows.x64.checked.mch36,230,062-5,079
benchmarks.run_tiered.windows.x64.checked.mch12,416,181-217
coreclr_tests.run.windows.x64.checked.mch393,193,298-5,849
libraries.crossgen2.windows.x64.checked.mch39,486,354-1,631
libraries.pmi.windows.x64.checked.mch61,663,311-3,447
libraries_tests.run.windows.x64.Release.mch282,109,609-22,885
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch137,066,325-3,891
realworld.run.windows.x64.checked.mch14,130,936-1,130
smoke_tests.nativeaot.windows.x64.checked.mch5,083,247-292
FullOpts (-52,115 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,052-7,282
benchmarks.run.windows.x64.checked.mch8,742,167-412
benchmarks.run_pgo.windows.x64.checked.mch22,059,406-5,079
benchmarks.run_tiered.windows.x64.checked.mch3,316,942-217
coreclr_tests.run.windows.x64.checked.mch120,404,444-5,849
libraries.crossgen2.windows.x64.checked.mch39,485,167-1,631
libraries.pmi.windows.x64.checked.mch61,549,790-3,447
libraries_tests.run.windows.x64.Release.mch106,251,291-22,885
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch126,447,219-3,891
realworld.run.windows.x64.checked.mch13,744,327-1,130
smoke_tests.nativeaot.windows.x64.checked.mch5,082,300-292

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.02% to +0.06%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.05%
benchmarks.run_pgo.linux.arm64.checked.mch+0.06%
benchmarks.run_tiered.linux.arm64.checked.mch+0.03%
coreclr_tests.run.linux.arm64.checked.mch+0.02%
libraries.crossgen2.linux.arm64.checked.mch+0.03%
libraries.pmi.linux.arm64.checked.mch+0.05%
libraries_tests.run.linux.arm64.Release.mch+0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch+0.06%
FullOpts (+0.03% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.05%
benchmarks.run_pgo.linux.arm64.checked.mch+0.07%
benchmarks.run_tiered.linux.arm64.checked.mch+0.06%
coreclr_tests.run.linux.arm64.checked.mch+0.03%
libraries.crossgen2.linux.arm64.checked.mch+0.03%
libraries.pmi.linux.arm64.checked.mch+0.05%
libraries_tests.run.linux.arm64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch+0.06%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.02% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
benchmarks.run_pgo.linux.x64.checked.mch+0.07%
benchmarks.run_tiered.linux.x64.checked.mch+0.03%
coreclr_tests.run.linux.x64.checked.mch+0.02%
libraries.crossgen2.linux.x64.checked.mch+0.04%
libraries.pmi.linux.x64.checked.mch+0.05%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.05%
realworld.run.linux.x64.checked.mch+0.04%
smoke_tests.nativeaot.linux.x64.checked.mch+0.07%
FullOpts (+0.04% to +0.08%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
benchmarks.run_tiered.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries.crossgen2.linux.x64.checked.mch+0.04%
libraries.pmi.linux.x64.checked.mch+0.05%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.05%
realworld.run.linux.x64.checked.mch+0.04%
smoke_tests.nativeaot.linux.x64.checked.mch+0.07%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.02% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch+0.06%
benchmarks.run_pgo.osx.arm64.checked.mch+0.04%
benchmarks.run_tiered.osx.arm64.checked.mch+0.03%
coreclr_tests.run.osx.arm64.checked.mch+0.02%
libraries.crossgen2.osx.arm64.checked.mch+0.03%
libraries.pmi.osx.arm64.checked.mch+0.05%
libraries_tests.run.osx.arm64.Release.mch+0.04%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.05%
realworld.run.osx.arm64.checked.mch+0.04%
FullOpts (+0.03% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch+0.06%
benchmarks.run_pgo.osx.arm64.checked.mch+0.04%
benchmarks.run_tiered.osx.arm64.checked.mch+0.06%
coreclr_tests.run.osx.arm64.checked.mch+0.03%
libraries.crossgen2.osx.arm64.checked.mch+0.03%
libraries.pmi.osx.arm64.checked.mch+0.05%
libraries_tests.run.osx.arm64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.05%
realworld.run.osx.arm64.checked.mch+0.04%

Throughput diffs for windows/arm64 ran on windows/x64

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

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.02% to +0.07%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch+0.03%
benchmarks.run.windows.x64.checked.mch+0.06%
benchmarks.run_pgo.windows.x64.checked.mch+0.06%
benchmarks.run_tiered.windows.x64.checked.mch+0.04%
coreclr_tests.run.windows.x64.checked.mch+0.02%
libraries.crossgen2.windows.x64.checked.mch+0.04%
libraries.pmi.windows.x64.checked.mch+0.05%
libraries_tests.run.windows.x64.Release.mch+0.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch+0.05%
realworld.run.windows.x64.checked.mch+0.04%
smoke_tests.nativeaot.windows.x64.checked.mch+0.07%
FullOpts (+0.03% to +0.07%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch+0.03%
benchmarks.run.windows.x64.checked.mch+0.06%
benchmarks.run_pgo.windows.x64.checked.mch+0.06%
benchmarks.run_tiered.windows.x64.checked.mch+0.06%
coreclr_tests.run.windows.x64.checked.mch+0.04%
libraries.crossgen2.windows.x64.checked.mch+0.04%
libraries.pmi.windows.x64.checked.mch+0.05%
libraries_tests.run.windows.x64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch+0.05%
realworld.run.windows.x64.checked.mch+0.04%
smoke_tests.nativeaot.windows.x64.checked.mch+0.07%

Details here


Throughput diffs for windows/x86 ran on linux/x86

Overall (+0.02% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch+0.04%
benchmarks.run_pgo.windows.x86.checked.mch+0.06%
benchmarks.run_tiered.windows.x86.checked.mch+0.04%
coreclr_tests.run.windows.x86.checked.mch+0.02%
libraries.crossgen2.windows.x86.checked.mch+0.03%
libraries.pmi.windows.x86.checked.mch+0.04%
libraries_tests.run.windows.x86.Release.mch+0.03%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.04%
realworld.run.windows.x86.checked.mch+0.03%
FullOpts (+0.03% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch+0.04%
benchmarks.run_pgo.windows.x86.checked.mch+0.06%
benchmarks.run_tiered.windows.x86.checked.mch+0.05%
coreclr_tests.run.windows.x86.checked.mch+0.03%
libraries.crossgen2.windows.x86.checked.mch+0.03%
libraries.pmi.windows.x86.checked.mch+0.04%
libraries_tests.run.windows.x86.Release.mch+0.04%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.04%
realworld.run.windows.x86.checked.mch+0.03%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97681

Assembly diffs

Assembly diffs for linux/x64 ran on windows/x64

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

MISSED contexts: 8 (0.00%)

Overall (-50,401 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch14,336,870-452
benchmarks.run_pgo.linux.x64.checked.mch71,576,886-5,152
benchmarks.run_tiered.linux.x64.checked.mch21,435,874-261
coreclr_tests.run.linux.x64.checked.mch403,711,765-6,251
libraries.crossgen2.linux.x64.checked.mch38,727,287-1,610
libraries.pmi.linux.x64.checked.mch60,419,954-3,269
libraries_tests.run.linux.x64.Release.mch337,103,194-28,438
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch132,558,776-3,717
realworld.run.linux.x64.checked.mch13,175,161-1,056
smoke_tests.nativeaot.linux.x64.checked.mch4,234,681-195
FullOpts (-50,401 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch14,037,567-452
benchmarks.run_pgo.linux.x64.checked.mch47,776,897-5,152
benchmarks.run_tiered.linux.x64.checked.mch3,695,094-261
coreclr_tests.run.linux.x64.checked.mch123,957,063-6,251
libraries.crossgen2.linux.x64.checked.mch38,726,089-1,610
libraries.pmi.linux.x64.checked.mch60,307,097-3,269
libraries_tests.run.linux.x64.Release.mch153,343,501-28,438
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch121,941,008-3,717
realworld.run.linux.x64.checked.mch12,789,277-1,056
smoke_tests.nativeaot.linux.x64.checked.mch4,233,732-195

Assembly diffs for windows/x64 ran on windows/x64

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

MISSED contexts: 8 (0.00%)

Overall (-52,115 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,101-7,282
benchmarks.run.windows.x64.checked.mch8,742,530-412
benchmarks.run_pgo.windows.x64.checked.mch36,230,062-5,079
benchmarks.run_tiered.windows.x64.checked.mch12,416,181-217
coreclr_tests.run.windows.x64.checked.mch393,193,298-5,849
libraries.crossgen2.windows.x64.checked.mch39,486,354-1,631
libraries.pmi.windows.x64.checked.mch61,663,311-3,447
libraries_tests.run.windows.x64.Release.mch282,109,609-22,885
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch137,066,325-3,891
realworld.run.windows.x64.checked.mch14,130,936-1,130
smoke_tests.nativeaot.windows.x64.checked.mch5,083,247-292
FullOpts (-52,115 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,052-7,282
benchmarks.run.windows.x64.checked.mch8,742,167-412
benchmarks.run_pgo.windows.x64.checked.mch22,059,406-5,079
benchmarks.run_tiered.windows.x64.checked.mch3,316,942-217
coreclr_tests.run.windows.x64.checked.mch120,404,444-5,849
libraries.crossgen2.windows.x64.checked.mch39,485,167-1,631
libraries.pmi.windows.x64.checked.mch61,549,790-3,447
libraries_tests.run.windows.x64.Release.mch106,251,291-22,885
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch126,447,219-3,891
realworld.run.windows.x64.checked.mch13,744,327-1,130
smoke_tests.nativeaot.windows.x64.checked.mch5,082,300-292

Details here


Assembly diffs for windows/x86 ran on windows/x86

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

MISSED contexts: base: 38 (0.00%), diff: 73 (0.00%)

Overall (-22,900 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch7,122,447-258
benchmarks.run_pgo.windows.x86.checked.mch44,974,277-1,135
benchmarks.run_tiered.windows.x86.checked.mch9,469,950-180
coreclr_tests.run.windows.x86.checked.mch309,369,241-3,767
libraries.crossgen2.windows.x86.checked.mch31,716,544-1,340
libraries.pmi.windows.x86.checked.mch49,268,131-2,473
libraries_tests.run.windows.x86.Release.mch186,645,391-9,027
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch103,801,389-3,789
realworld.run.windows.x86.checked.mch11,353,700-931
FullOpts (-22,900 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch7,122,166-258
benchmarks.run_pgo.windows.x86.checked.mch38,385,646-1,135
benchmarks.run_tiered.windows.x86.checked.mch5,200,129-180
coreclr_tests.run.windows.x86.checked.mch107,581,107-3,767
libraries.crossgen2.windows.x86.checked.mch31,715,484-1,340
libraries.pmi.windows.x86.checked.mch49,172,898-2,473
libraries_tests.run.windows.x86.Release.mch88,371,691-9,027
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch95,121,325-3,789
realworld.run.windows.x86.checked.mch11,057,986-931

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.02% to +0.06%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.05%
benchmarks.run_pgo.linux.arm64.checked.mch+0.06%
benchmarks.run_tiered.linux.arm64.checked.mch+0.03%
coreclr_tests.run.linux.arm64.checked.mch+0.02%
libraries.crossgen2.linux.arm64.checked.mch+0.03%
libraries.pmi.linux.arm64.checked.mch+0.05%
libraries_tests.run.linux.arm64.Release.mch+0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch+0.06%
FullOpts (+0.03% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.05%
benchmarks.run_pgo.linux.arm64.checked.mch+0.07%
benchmarks.run_tiered.linux.arm64.checked.mch+0.06%
coreclr_tests.run.linux.arm64.checked.mch+0.03%
libraries.crossgen2.linux.arm64.checked.mch+0.03%
libraries.pmi.linux.arm64.checked.mch+0.05%
libraries_tests.run.linux.arm64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch+0.06%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.02% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
benchmarks.run_pgo.linux.x64.checked.mch+0.07%
benchmarks.run_tiered.linux.x64.checked.mch+0.03%
coreclr_tests.run.linux.x64.checked.mch+0.02%
libraries.crossgen2.linux.x64.checked.mch+0.04%
libraries.pmi.linux.x64.checked.mch+0.05%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.05%
realworld.run.linux.x64.checked.mch+0.04%
smoke_tests.nativeaot.linux.x64.checked.mch+0.07%
FullOpts (+0.04% to +0.08%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
benchmarks.run_tiered.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries.crossgen2.linux.x64.checked.mch+0.04%
libraries.pmi.linux.x64.checked.mch+0.05%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.05%
realworld.run.linux.x64.checked.mch+0.04%
smoke_tests.nativeaot.linux.x64.checked.mch+0.07%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.02% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch+0.06%
benchmarks.run_pgo.osx.arm64.checked.mch+0.04%
benchmarks.run_tiered.osx.arm64.checked.mch+0.03%
coreclr_tests.run.osx.arm64.checked.mch+0.02%
libraries.crossgen2.osx.arm64.checked.mch+0.03%
libraries.pmi.osx.arm64.checked.mch+0.05%
libraries_tests.run.osx.arm64.Release.mch+0.04%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.05%
realworld.run.osx.arm64.checked.mch+0.04%
FullOpts (+0.03% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch+0.06%
benchmarks.run_pgo.osx.arm64.checked.mch+0.04%
benchmarks.run_tiered.osx.arm64.checked.mch+0.06%
coreclr_tests.run.osx.arm64.checked.mch+0.03%
libraries.crossgen2.osx.arm64.checked.mch+0.03%
libraries.pmi.osx.arm64.checked.mch+0.05%
libraries_tests.run.osx.arm64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.05%
realworld.run.osx.arm64.checked.mch+0.04%

Throughput diffs for windows/arm64 ran on windows/x64

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

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.02% to +0.07%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch+0.03%
benchmarks.run.windows.x64.checked.mch+0.06%
benchmarks.run_pgo.windows.x64.checked.mch+0.06%
benchmarks.run_tiered.windows.x64.checked.mch+0.04%
coreclr_tests.run.windows.x64.checked.mch+0.02%
libraries.crossgen2.windows.x64.checked.mch+0.04%
libraries.pmi.windows.x64.checked.mch+0.05%
libraries_tests.run.windows.x64.Release.mch+0.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch+0.05%
realworld.run.windows.x64.checked.mch+0.04%
smoke_tests.nativeaot.windows.x64.checked.mch+0.07%
FullOpts (+0.03% to +0.07%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch+0.03%
benchmarks.run.windows.x64.checked.mch+0.06%
benchmarks.run_pgo.windows.x64.checked.mch+0.06%
benchmarks.run_tiered.windows.x64.checked.mch+0.06%
coreclr_tests.run.windows.x64.checked.mch+0.04%
libraries.crossgen2.windows.x64.checked.mch+0.04%
libraries.pmi.windows.x64.checked.mch+0.05%
libraries_tests.run.windows.x64.Release.mch+0.06%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch+0.05%
realworld.run.windows.x64.checked.mch+0.04%
smoke_tests.nativeaot.windows.x64.checked.mch+0.07%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (+0.01% to +0.04%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.02%
benchmarks.run_pgo.linux.arm.checked.mch+0.04%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.crossgen2.linux.arm.checked.mch+0.02%
libraries.pmi.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.02%
realworld.run.linux.arm.checked.mch+0.02%
FullOpts (+0.01% to +0.04%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.02%
benchmarks.run_pgo.linux.arm.checked.mch+0.04%
benchmarks.run_tiered.linux.arm.checked.mch+0.03%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.crossgen2.linux.arm.checked.mch+0.02%
libraries.pmi.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.02%
realworld.run.linux.arm.checked.mch+0.02%

Throughput diffs for windows/x86 ran on windows/x86

Overall (+0.02% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch+0.04%
benchmarks.run_pgo.windows.x86.checked.mch+0.06%
benchmarks.run_tiered.windows.x86.checked.mch+0.04%
coreclr_tests.run.windows.x86.checked.mch+0.02%
libraries.crossgen2.windows.x86.checked.mch+0.03%
libraries.pmi.windows.x86.checked.mch+0.04%
libraries_tests.run.windows.x86.Release.mch+0.03%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.04%
realworld.run.windows.x86.checked.mch+0.03%
FullOpts (+0.03% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch+0.04%
benchmarks.run_pgo.windows.x86.checked.mch+0.06%
benchmarks.run_tiered.windows.x86.checked.mch+0.05%
coreclr_tests.run.windows.x86.checked.mch+0.03%
libraries.crossgen2.windows.x86.checked.mch+0.03%
libraries.pmi.windows.x86.checked.mch+0.04%
libraries_tests.run.windows.x86.Release.mch+0.04%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.04%
realworld.run.windows.x86.checked.mch+0.03%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.14% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-0.01%
libraries_tests.run.linux.arm64.Release.mch-0.10%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-0.04%
benchmarks.run_pgo.linux.arm64.checked.mch-0.14%
libraries.pmi.linux.arm64.checked.mch-0.03%
realworld.run.linux.arm64.checked.mch-0.06%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
FullOpts (-0.16% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-0.01%
libraries_tests.run.linux.arm64.Release.mch-0.12%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-0.04%
benchmarks.run_pgo.linux.arm64.checked.mch-0.16%
libraries.pmi.linux.arm64.checked.mch-0.03%
realworld.run.linux.arm64.checked.mch-0.06%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
libraries.crossgen2.linux.arm64.checked.mch-0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.12% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.10%
libraries.pmi.linux.x64.checked.mch-0.03%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.01%
realworld.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.12%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
benchmarks.run.linux.x64.checked.mch-0.04%
FullOpts (-0.13% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.13%
libraries.pmi.linux.x64.checked.mch-0.03%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.01%
realworld.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.13%
benchmarks.run_tiered.linux.x64.checked.mch-0.11%
benchmarks.run.linux.x64.checked.mch-0.04%

Details here


@amanasifkhalid

Copy link
Copy Markdown
ContributorAuthor

cc @dotnet/jit-contrib, @AndyAyersMS PTAL.

@ryujit-bot

Copy link
Copy Markdown
Diff results for #97681

Assembly diffs

Assembly diffs for linux/x64 ran on windows/x64

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

MISSED contexts: 8 (0.00%)

Overall (-50,401 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch14,336,870-452
benchmarks.run_pgo.linux.x64.checked.mch71,576,886-5,152
benchmarks.run_tiered.linux.x64.checked.mch21,435,874-261
coreclr_tests.run.linux.x64.checked.mch403,711,765-6,251
libraries.crossgen2.linux.x64.checked.mch38,727,287-1,610
libraries.pmi.linux.x64.checked.mch60,419,954-3,269
libraries_tests.run.linux.x64.Release.mch337,103,194-28,438
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch132,558,776-3,717
realworld.run.linux.x64.checked.mch13,175,161-1,056
smoke_tests.nativeaot.linux.x64.checked.mch4,234,681-195
FullOpts (-50,401 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch14,037,567-452
benchmarks.run_pgo.linux.x64.checked.mch47,776,897-5,152
benchmarks.run_tiered.linux.x64.checked.mch3,695,094-261
coreclr_tests.run.linux.x64.checked.mch123,957,063-6,251
libraries.crossgen2.linux.x64.checked.mch38,726,089-1,610
libraries.pmi.linux.x64.checked.mch60,307,097-3,269
libraries_tests.run.linux.x64.Release.mch153,343,501-28,438
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch121,941,008-3,717
realworld.run.linux.x64.checked.mch12,789,277-1,056
smoke_tests.nativeaot.linux.x64.checked.mch4,233,732-195

Assembly diffs for windows/x64 ran on windows/x64

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

MISSED contexts: 8 (0.00%)

Overall (-52,115 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch47,040,101-7,282
benchmarks.run.windows.x64.checked.mch8,742,530-412
benchmarks.run_pgo.windows.x64.checked.mch36,230,062-5,079
benchmarks.run_tiered.windows.x64.checked.mch12,416,181-217
coreclr_tests.run.windows.x64.checked.mch393,193,298-5,849
libraries.crossgen2.windows.x64.checked.mch39,486,354-1,631
libraries.pmi.windows.x64.checked.mch61,663,311-3,447
libraries_tests.run.windows.x64.Release.mch282,109,609-22,885
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch137,066,325-3,891
realworld.run.windows.x64.checked.mch14,130,936-1,130
smoke_tests.nativeaot.windows.x64.checked.mch5,083,247-292
FullOpts (-52,115 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch28,549,052-7,282
benchmarks.run.windows.x64.checked.mch8,742,167-412
benchmarks.run_pgo.windows.x64.checked.mch22,059,406-5,079
benchmarks.run_tiered.windows.x64.checked.mch3,316,942-217
coreclr_tests.run.windows.x64.checked.mch120,404,444-5,849
libraries.crossgen2.windows.x64.checked.mch39,485,167-1,631
libraries.pmi.windows.x64.checked.mch61,549,790-3,447
libraries_tests.run.windows.x64.Release.mch106,251,291-22,885
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch126,447,219-3,891
realworld.run.windows.x64.checked.mch13,744,327-1,130
smoke_tests.nativeaot.windows.x64.checked.mch5,082,300-292

Details here


Assembly diffs for windows/x86 ran on windows/x86

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

MISSED contexts: base: 38 (0.00%), diff: 73 (0.00%)

Overall (-22,900 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch7,122,447-258
benchmarks.run_pgo.windows.x86.checked.mch44,974,277-1,135
benchmarks.run_tiered.windows.x86.checked.mch9,469,950-180
coreclr_tests.run.windows.x86.checked.mch309,369,241-3,767
libraries.crossgen2.windows.x86.checked.mch31,716,544-1,340
libraries.pmi.windows.x86.checked.mch49,268,131-2,473
libraries_tests.run.windows.x86.Release.mch186,645,391-9,027
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch103,801,389-3,789
realworld.run.windows.x86.checked.mch11,353,700-931
FullOpts (-22,900 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch7,122,166-258
benchmarks.run_pgo.windows.x86.checked.mch38,385,646-1,135
benchmarks.run_tiered.windows.x86.checked.mch5,200,129-180
coreclr_tests.run.windows.x86.checked.mch107,581,107-3,767
libraries.crossgen2.windows.x86.checked.mch31,715,484-1,340
libraries.pmi.windows.x86.checked.mch49,172,898-2,473
libraries_tests.run.windows.x86.Release.mch88,371,691-9,027
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch95,121,325-3,789
realworld.run.windows.x86.checked.mch11,057,986-931

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (+0.01% to +0.04%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.02%
benchmarks.run_pgo.linux.arm.checked.mch+0.04%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.crossgen2.linux.arm.checked.mch+0.02%
libraries.pmi.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.02%
realworld.run.linux.arm.checked.mch+0.02%
FullOpts (+0.01% to +0.04%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.02%
benchmarks.run_pgo.linux.arm.checked.mch+0.04%
benchmarks.run_tiered.linux.arm.checked.mch+0.03%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.crossgen2.linux.arm.checked.mch+0.02%
libraries.pmi.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.02%
realworld.run.linux.arm.checked.mch+0.02%

Throughput diffs for windows/x86 ran on windows/x86

Overall (+0.02% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch+0.04%
benchmarks.run_pgo.windows.x86.checked.mch+0.06%
benchmarks.run_tiered.windows.x86.checked.mch+0.04%
coreclr_tests.run.windows.x86.checked.mch+0.02%
libraries.crossgen2.windows.x86.checked.mch+0.03%
libraries.pmi.windows.x86.checked.mch+0.04%
libraries_tests.run.windows.x86.Release.mch+0.03%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.04%
realworld.run.windows.x86.checked.mch+0.03%
FullOpts (+0.03% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch+0.04%
benchmarks.run_pgo.windows.x86.checked.mch+0.06%
benchmarks.run_tiered.windows.x86.checked.mch+0.05%
coreclr_tests.run.windows.x86.checked.mch+0.03%
libraries.crossgen2.windows.x86.checked.mch+0.03%
libraries.pmi.windows.x86.checked.mch+0.04%
libraries_tests.run.windows.x86.Release.mch+0.04%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.04%
realworld.run.windows.x86.checked.mch+0.03%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.14% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-0.01%
libraries_tests.run.linux.arm64.Release.mch-0.10%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-0.04%
benchmarks.run_pgo.linux.arm64.checked.mch-0.14%
libraries.pmi.linux.arm64.checked.mch-0.03%
realworld.run.linux.arm64.checked.mch-0.06%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
FullOpts (-0.16% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-0.01%
libraries_tests.run.linux.arm64.Release.mch-0.12%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-0.04%
benchmarks.run_pgo.linux.arm64.checked.mch-0.16%
libraries.pmi.linux.arm64.checked.mch-0.03%
realworld.run.linux.arm64.checked.mch-0.06%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
libraries.crossgen2.linux.arm64.checked.mch-0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.12% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.10%
libraries.pmi.linux.x64.checked.mch-0.03%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.01%
realworld.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.12%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
benchmarks.run.linux.x64.checked.mch-0.04%
FullOpts (-0.13% to +0.00%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch-0.13%
libraries.pmi.linux.x64.checked.mch-0.03%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.01%
realworld.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.13%
benchmarks.run_tiered.linux.x64.checked.mch-0.11%
benchmarks.run.linux.x64.checked.mch-0.04%

Details here


@amanasifkhalid

Copy link
Copy Markdown
ContributorAuthor

I've put this work on hold in favor of the successor edge items in #93020. I'll come back to this.

@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 28, 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.

2 participants

@amanasifkhalid@ryujit-bot