Skip to content

Prevent incorrect constant folding #98561

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Feb 19, 2024
Merged

Conversation

filipnavara
Copy link
Member

@filipnavara filipnavara commented Feb 16, 2024

Prevent incorrect constant folding of arithmetic operations involving handle in relocatable code.

Fixes #98493

@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Feb 16, 2024
@ghost
Copy link

ghost commented Feb 16, 2024

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

Issue Details

Fixes #98493

Author: filipnavara
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

case GT_GT:
case GT_GE:
case GT_LT:
case GT_LE:
if (IsVNHandle(arg0VN) || IsVNHandle(arg1VN))
Copy link
Member

Choose a reason for hiding this comment

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

Is this going to miss comparisons against 0/null

Copy link
Member Author

Choose a reason for hiding this comment

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

Ah, that's a valid point. Do we need to handle it for GT/GE/LT/LE or only EQ/NE?

Copy link
Member

Choose a reason for hiding this comment

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

@EgorBo may have a better idea. I'd expect we see it for all cases from time to time

Copy link
Member Author

Choose a reason for hiding this comment

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

It should be easy enough to fix. I'll push it once I verify it doesn't break on the simple tests.

Copy link
Member Author

Choose a reason for hiding this comment

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

It's a bit ugly to read... perhaps a helper IsVNHandleOrNull would be in order?

Copy link
Member

Choose a reason for hiding this comment

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

Can we just conservatively put these checks into the beginning of VNEvalCanFoldBinaryFunc ? to only allow handles in pair with nullptr. Then we can check the diffs and decide whether it's worth it to relax it.

Copy link
Member

@EgorBo EgorBo Feb 16, 2024

Choose a reason for hiding this comment

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

Although, Comparisons are fine when both args are handles. E.g. when we compare two frozen objects. So we probably want to avoid only OperIsArithmetic

@@ -4421,13 +4421,30 @@ bool ValueNumStore::VNEvalCanFoldBinaryFunc(var_types type, VNFunc func, ValueNu
case GT_RSZ:
case GT_ROL:
case GT_ROR:
if (IsVNHandle(arg0VN) || IsVNHandle(arg1VN))
Copy link
Contributor

Choose a reason for hiding this comment

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

It's unnecessarily conservative to give up on folding handles in the Jit case. I think this should rather refactor GenTreeIntConCommon::ImmedValCanBeFolded a little so that it is callable from VN.

Copy link
Member Author

Choose a reason for hiding this comment

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

Sounds reasonable but I am not comfortable enough with the code to do it myself.

@filipnavara filipnavara marked this pull request as draft February 16, 2024 15:16
@ryujit-bot
Copy link

Diff results for #98561

Assembly diffs

Assembly diffs for osx/arm64 ran on linux/x64

Diffs are based on 2,293,437 contexts (933,876 MinOpts, 1,359,561 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 6 (0.00%)

Overall (-193,772 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,256,032 -884
benchmarks.run_pgo.osx.arm64.checked.mch 34,290,048 -880
benchmarks.run_tiered.osx.arm64.checked.mch 15,676,392 -136
coreclr_tests.run.osx.arm64.checked.mch 491,746,024 -161,096
libraries.pmi.osx.arm64.checked.mch 81,113,832 -7,696
libraries_tests.run.osx.arm64.Release.mch 313,602,060 -10,064
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 161,383,428 -9,660
realworld.run.osx.arm64.checked.mch 15,058,504 -3,356
FullOpts (-193,772 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,255,496 -884
benchmarks.run_pgo.osx.arm64.checked.mch 17,918,744 -880
benchmarks.run_tiered.osx.arm64.checked.mch 4,041,912 -136
coreclr_tests.run.osx.arm64.checked.mch 153,251,180 -161,096
libraries.pmi.osx.arm64.checked.mch 80,992,704 -7,696
libraries_tests.run.osx.arm64.Release.mch 110,669,088 -10,064
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 148,335,340 -9,660
realworld.run.osx.arm64.checked.mch 14,501,608 -3,356

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

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

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.05%
benchmarks.run_pgo.linux.x64.checked.mch +0.05%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.05%
libraries.crossgen2.linux.x64.checked.mch +0.04%
libraries.pmi.linux.x64.checked.mch +0.05%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.04%
realworld.run.linux.x64.checked.mch +0.05%
smoke_tests.nativeaot.linux.x64.checked.mch +0.05%
FullOpts (+0.04% to +0.08%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.05%
benchmarks.run_pgo.linux.x64.checked.mch +0.06%
benchmarks.run_tiered.linux.x64.checked.mch +0.06%
coreclr_tests.run.linux.x64.checked.mch +0.08%
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.04%
realworld.run.linux.x64.checked.mch +0.05%
smoke_tests.nativeaot.linux.x64.checked.mch +0.05%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.05%
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.03%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
libraries.pmi.osx.arm64.checked.mch +0.05%
libraries_tests.run.osx.arm64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.04%
realworld.run.osx.arm64.checked.mch +0.04%
MinOpts (-0.01% to +0.00%)
Collection PDIFF
realworld.run.osx.arm64.checked.mch -0.01%
FullOpts (+0.04% to +0.06%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.05%
benchmarks.run_pgo.osx.arm64.checked.mch +0.05%
benchmarks.run_tiered.osx.arm64.checked.mch +0.06%
coreclr_tests.run.osx.arm64.checked.mch +0.05%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
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.04%
realworld.run.osx.arm64.checked.mch +0.04%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.05%
benchmarks.run_pgo.windows.arm64.checked.mch +0.05%
benchmarks.run_tiered.windows.arm64.checked.mch +0.03%
coreclr_tests.run.windows.arm64.checked.mch +0.03%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.05%
libraries_tests.run.windows.arm64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.05%
FullOpts (+0.04% to +0.06%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.05%
benchmarks.run_pgo.windows.arm64.checked.mch +0.05%
benchmarks.run_tiered.windows.arm64.checked.mch +0.06%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
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.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.05%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch +0.05%
benchmarks.run_pgo.windows.x64.checked.mch +0.05%
benchmarks.run_tiered.windows.x64.checked.mch +0.04%
coreclr_tests.run.windows.x64.checked.mch +0.05%
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.04%
realworld.run.windows.x64.checked.mch +0.05%
smoke_tests.nativeaot.windows.x64.checked.mch +0.05%
FullOpts (+0.04% to +0.08%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch +0.05%
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.08%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.05%
libraries_tests.run.windows.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.05%
smoke_tests.nativeaot.windows.x64.checked.mch +0.05%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

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

Throughput diffs for linux/x64 ran on linux/x64

Overall (+0.01% to +0.03%)
Collection PDIFF
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.crossgen2.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%
coreclr_tests.run.linux.x64.checked.mch +0.03%
realworld.run.linux.x64.checked.mch +0.02%
benchmarks.run.linux.x64.checked.mch +0.01%
benchmarks.run_tiered.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.01%
benchmarks.run_pgo.linux.x64.checked.mch +0.02%
FullOpts (+0.01% to +0.05%)
Collection PDIFF
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries_tests.run.linux.x64.Release.mch +0.02%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.01%
coreclr_tests.run.linux.x64.checked.mch +0.05%
realworld.run.linux.x64.checked.mch +0.02%
benchmarks.run.linux.x64.checked.mch +0.01%
benchmarks.run_tiered.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.01%
benchmarks.run_pgo.linux.x64.checked.mch +0.02%

Details here


@ryujit-bot
Copy link

Diff results for #98561

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,544,344 contexts (1,012,496 MinOpts, 1,531,848 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 6 (0.00%)

Overall (-209,660 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 17,218,812 -816
benchmarks.run_pgo.linux.arm64.checked.mch 77,518,372 -7,776
benchmarks.run_tiered.linux.arm64.checked.mch 25,054,876 -144
coreclr_tests.run.linux.arm64.checked.mch 518,928,388 -162,924
libraries.pmi.linux.arm64.checked.mch 76,557,636 -7,608
libraries_tests.run.linux.arm64.Release.mch 383,432,472 -17,332
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 165,120,196 -9,556
realworld.run.linux.arm64.checked.mch 15,876,964 -3,504
smoke_tests.nativeaot.linux.arm64.checked.mch 2,980,396 +0
FullOpts (-209,660 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 16,814,432 -816
benchmarks.run_pgo.linux.arm64.checked.mch 55,144,000 -7,776
benchmarks.run_tiered.linux.arm64.checked.mch 4,868,776 -144
coreclr_tests.run.linux.arm64.checked.mch 167,326,844 -162,924
libraries.pmi.linux.arm64.checked.mch 76,437,652 -7,608
libraries_tests.run.linux.arm64.Release.mch 167,615,256 -17,332
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 151,717,392 -9,556
realworld.run.linux.arm64.checked.mch 15,303,512 -3,504
smoke_tests.nativeaot.linux.arm64.checked.mch 2,979,408 +0

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,535,365 contexts (984,668 MinOpts, 1,550,697 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 6 (0.00%)

Overall (+49,121 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 12,166,543 +504
benchmarks.run_pgo.linux.x64.checked.mch 67,166,891 +85
benchmarks.run_tiered.linux.x64.checked.mch 16,810,899 +14
coreclr_tests.run.linux.x64.checked.mch 418,408,742 +6,852
libraries.pmi.linux.x64.checked.mch 60,685,927 +2,372
libraries_tests.run.linux.x64.Release.mch 331,729,851 +19,870
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 132,523,929 +18,929
realworld.run.linux.x64.checked.mch 13,233,730 +395
smoke_tests.nativeaot.linux.x64.checked.mch 4,251,108 +100
FullOpts (+49,121 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 11,994,952 +504
benchmarks.run_pgo.linux.x64.checked.mch 48,174,268 +85
benchmarks.run_tiered.linux.x64.checked.mch 3,654,870 +14
coreclr_tests.run.linux.x64.checked.mch 130,639,266 +6,852
libraries.pmi.linux.x64.checked.mch 60,573,097 +2,372
libraries_tests.run.linux.x64.Release.mch 147,894,207 +19,870
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 121,951,747 +18,929
realworld.run.linux.x64.checked.mch 12,845,635 +395
smoke_tests.nativeaot.linux.x64.checked.mch 4,250,159 +100

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,376,925 contexts (945,150 MinOpts, 1,431,775 FullOpts).

MISSED contexts: base: 5 (0.00%), diff: 11 (0.00%)

Overall (-199,184 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 11,037,884 -828
benchmarks.run_pgo.windows.arm64.checked.mch 46,555,288 -5,932
benchmarks.run_tiered.windows.arm64.checked.mch 15,575,692 -140
coreclr_tests.run.windows.arm64.checked.mch 505,264,988 -162,312
libraries.pmi.windows.arm64.checked.mch 80,134,348 -8,620
libraries_tests.run.windows.arm64.Release.mch 321,619,196 -6,436
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 171,358,052 -11,492
realworld.run.windows.arm64.checked.mch 15,876,128 -3,424
smoke_tests.nativeaot.windows.arm64.checked.mch 3,995,200 +0
FullOpts (-199,184 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 11,037,348 -828
benchmarks.run_pgo.windows.arm64.checked.mch 30,069,536 -5,932
benchmarks.run_tiered.windows.arm64.checked.mch 4,281,392 -140
coreclr_tests.run.windows.arm64.checked.mch 163,807,864 -162,312
libraries.pmi.windows.arm64.checked.mch 80,014,364 -8,620
libraries_tests.run.windows.arm64.Release.mch 117,557,144 -6,436
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 158,298,856 -11,492
realworld.run.windows.arm64.checked.mch 15,319,204 -3,424
smoke_tests.nativeaot.windows.arm64.checked.mch 3,994,188 +0

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,416,970 contexts (937,071 MinOpts, 1,479,899 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 6 (0.00%)

Overall (+43,548 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 8,800,450 +472
benchmarks.run_pgo.windows.x64.checked.mch 34,024,626 +8
benchmarks.run_tiered.windows.x64.checked.mch 12,549,220 +12
coreclr_tests.run.windows.x64.checked.mch 407,341,561 +6,134
libraries.pmi.windows.x64.checked.mch 61,945,756 +2,354
libraries_tests.run.windows.x64.Release.mch 281,668,253 +11,081
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 136,469,148 +23,058
realworld.run.windows.x64.checked.mch 14,196,497 +414
smoke_tests.nativeaot.windows.x64.checked.mch 5,148,895 +15
FullOpts (+43,548 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 8,800,090 +472
benchmarks.run_pgo.windows.x64.checked.mch 20,368,333 +8
benchmarks.run_tiered.windows.x64.checked.mch 3,319,446 +12
coreclr_tests.run.windows.x64.checked.mch 126,875,197 +6,134
libraries.pmi.windows.x64.checked.mch 61,832,262 +2,354
libraries_tests.run.windows.x64.Release.mch 106,974,869 +11,081
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 126,176,351 +23,058
realworld.run.windows.x64.checked.mch 13,810,329 +414
smoke_tests.nativeaot.windows.x64.checked.mch 5,147,948 +15

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,250,511 contexts (832,197 MinOpts, 1,418,314 FullOpts).

MISSED contexts: base: 73,582 (3.17%), diff: 73,583 (3.17%)

Overall (-109,592 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 17,295,604 -544
benchmarks.run_pgo.linux.arm.checked.mch 67,071,704 +7,746
benchmarks.run_tiered.linux.arm.checked.mch 20,251,824 -388
coreclr_tests.run.linux.arm.checked.mch 325,365,536 -105,696
libraries.pmi.linux.arm.checked.mch 50,242,096 -4,558
libraries_tests.run.linux.arm.Release.mch 239,569,132 -680
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 94,235,488 -3,206
realworld.run.linux.arm.checked.mch 13,483,316 -2,266
FullOpts (-109,592 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 16,808,432 -544
benchmarks.run_pgo.linux.arm.checked.mch 55,292,992 +7,746
benchmarks.run_tiered.linux.arm.checked.mch 12,101,278 -388
coreclr_tests.run.linux.arm.checked.mch 112,937,508 -105,696
libraries.pmi.linux.arm.checked.mch 50,135,872 -4,558
libraries_tests.run.linux.arm.Release.mch 117,215,170 -680
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 84,205,624 -3,206
realworld.run.linux.arm.checked.mch 13,055,792 -2,266

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,354,243 contexts (851,840 MinOpts, 1,502,403 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 9 (0.00%)

Overall (+3,263 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,191,920 +138
benchmarks.run_pgo.windows.x86.checked.mch 48,695,572 +31
benchmarks.run_tiered.windows.x86.checked.mch 9,517,087 +57
coreclr_tests.run.windows.x86.checked.mch 319,523,301 -6,925
libraries.pmi.windows.x86.checked.mch 49,527,633 +576
libraries_tests.run.windows.x86.Release.mch 190,246,350 +3,565
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 104,015,682 +5,917
realworld.run.windows.x86.checked.mch 11,337,016 -96
FullOpts (+3,263 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,191,639 +138
benchmarks.run_pgo.windows.x86.checked.mch 41,973,910 +31
benchmarks.run_tiered.windows.x86.checked.mch 5,211,653 +57
coreclr_tests.run.windows.x86.checked.mch 112,455,681 -6,925
libraries.pmi.windows.x86.checked.mch 49,432,403 +576
libraries_tests.run.windows.x86.Release.mch 91,149,962 +3,565
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 95,340,747 +5,917
realworld.run.windows.x86.checked.mch 11,041,746 -96

Details here


Assembly diffs for osx/arm64 ran on linux/x64

Diffs are based on 2,293,437 contexts (933,876 MinOpts, 1,359,561 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 6 (0.00%)

Overall (-193,772 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,256,032 -884
benchmarks.run_pgo.osx.arm64.checked.mch 34,290,048 -880
benchmarks.run_tiered.osx.arm64.checked.mch 15,676,392 -136
coreclr_tests.run.osx.arm64.checked.mch 491,746,024 -161,096
libraries.pmi.osx.arm64.checked.mch 81,113,832 -7,696
libraries_tests.run.osx.arm64.Release.mch 313,602,060 -10,064
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 161,383,428 -9,660
realworld.run.osx.arm64.checked.mch 15,058,504 -3,356
FullOpts (-193,772 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,255,496 -884
benchmarks.run_pgo.osx.arm64.checked.mch 17,918,744 -880
benchmarks.run_tiered.osx.arm64.checked.mch 4,041,912 -136
coreclr_tests.run.osx.arm64.checked.mch 153,251,180 -161,096
libraries.pmi.osx.arm64.checked.mch 80,992,704 -7,696
libraries_tests.run.osx.arm64.Release.mch 110,669,088 -10,064
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 148,335,340 -9,660
realworld.run.osx.arm64.checked.mch 14,501,608 -3,356

Assembly diffs for windows/arm64 ran on linux/x64

Diffs are based on 2,376,925 contexts (945,150 MinOpts, 1,431,775 FullOpts).

MISSED contexts: base: 5 (0.00%), diff: 11 (0.00%)

Overall (-199,184 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 11,037,884 -828
benchmarks.run_pgo.windows.arm64.checked.mch 46,555,288 -5,932
benchmarks.run_tiered.windows.arm64.checked.mch 15,575,692 -140
coreclr_tests.run.windows.arm64.checked.mch 505,264,988 -162,312
libraries.pmi.windows.arm64.checked.mch 80,134,348 -8,620
libraries_tests.run.windows.arm64.Release.mch 321,619,196 -6,436
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 171,358,052 -11,492
realworld.run.windows.arm64.checked.mch 15,876,128 -3,424
smoke_tests.nativeaot.windows.arm64.checked.mch 3,995,200 +0
FullOpts (-199,184 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 11,037,348 -828
benchmarks.run_pgo.windows.arm64.checked.mch 30,069,536 -5,932
benchmarks.run_tiered.windows.arm64.checked.mch 4,281,392 -140
coreclr_tests.run.windows.arm64.checked.mch 163,807,864 -162,312
libraries.pmi.windows.arm64.checked.mch 80,014,364 -8,620
libraries_tests.run.windows.arm64.Release.mch 117,557,144 -6,436
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 158,298,856 -11,492
realworld.run.windows.arm64.checked.mch 15,319,204 -3,424
smoke_tests.nativeaot.windows.arm64.checked.mch 3,994,188 +0

Assembly diffs for windows/x64 ran on linux/x64

Diffs are based on 2,416,970 contexts (937,071 MinOpts, 1,479,899 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 6 (0.00%)

Overall (+43,548 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 8,800,450 +472
benchmarks.run_pgo.windows.x64.checked.mch 34,024,626 +8
benchmarks.run_tiered.windows.x64.checked.mch 12,549,220 +12
coreclr_tests.run.windows.x64.checked.mch 407,341,561 +6,134
libraries.pmi.windows.x64.checked.mch 61,945,756 +2,354
libraries_tests.run.windows.x64.Release.mch 281,668,253 +11,081
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 136,469,148 +23,058
realworld.run.windows.x64.checked.mch 14,196,497 +414
smoke_tests.nativeaot.windows.x64.checked.mch 5,148,895 +15
FullOpts (+43,548 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 8,800,090 +472
benchmarks.run_pgo.windows.x64.checked.mch 20,368,333 +8
benchmarks.run_tiered.windows.x64.checked.mch 3,319,446 +12
coreclr_tests.run.windows.x64.checked.mch 126,875,197 +6,134
libraries.pmi.windows.x64.checked.mch 61,832,262 +2,354
libraries_tests.run.windows.x64.Release.mch 106,974,869 +11,081
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 126,176,351 +23,058
realworld.run.windows.x64.checked.mch 13,810,329 +414
smoke_tests.nativeaot.windows.x64.checked.mch 5,147,948 +15

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (+0.02% to +0.04%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.03%
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.02%
libraries.crossgen2.linux.arm.checked.mch +0.03%
libraries.pmi.linux.arm.checked.mch +0.04%
libraries_tests.run.linux.arm.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.03%
realworld.run.linux.arm.checked.mch +0.04%
FullOpts (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.04%
benchmarks.run_pgo.linux.arm.checked.mch +0.04%
benchmarks.run_tiered.linux.arm.checked.mch +0.04%
coreclr_tests.run.linux.arm.checked.mch +0.03%
libraries.crossgen2.linux.arm.checked.mch +0.03%
libraries.pmi.linux.arm.checked.mch +0.04%
libraries_tests.run.linux.arm.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.03%
realworld.run.linux.arm.checked.mch +0.04%

Throughput diffs for windows/x86 ran on windows/x86

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.05%
benchmarks.run_pgo.windows.x86.checked.mch +0.04%
benchmarks.run_tiered.windows.x86.checked.mch +0.04%
coreclr_tests.run.windows.x86.checked.mch +0.04%
libraries.crossgen2.windows.x86.checked.mch +0.04%
libraries.pmi.windows.x86.checked.mch +0.05%
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.05%
FullOpts (+0.04% to +0.06%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.05%
benchmarks.run_pgo.windows.x86.checked.mch +0.04%
benchmarks.run_tiered.windows.x86.checked.mch +0.05%
coreclr_tests.run.windows.x86.checked.mch +0.06%
libraries.crossgen2.windows.x86.checked.mch +0.04%
libraries.pmi.windows.x86.checked.mch +0.05%
libraries_tests.run.windows.x86.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.04%
realworld.run.windows.x86.checked.mch +0.05%

Details here


Throughput diffs for linux/arm64 ran on windows/x64

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

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.05%
benchmarks.run_pgo.linux.x64.checked.mch +0.05%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.05%
libraries.crossgen2.linux.x64.checked.mch +0.04%
libraries.pmi.linux.x64.checked.mch +0.05%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.04%
realworld.run.linux.x64.checked.mch +0.05%
smoke_tests.nativeaot.linux.x64.checked.mch +0.05%
FullOpts (+0.04% to +0.08%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.05%
benchmarks.run_pgo.linux.x64.checked.mch +0.06%
benchmarks.run_tiered.linux.x64.checked.mch +0.06%
coreclr_tests.run.linux.x64.checked.mch +0.08%
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.04%
realworld.run.linux.x64.checked.mch +0.05%
smoke_tests.nativeaot.linux.x64.checked.mch +0.05%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.05%
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.03%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
libraries.pmi.osx.arm64.checked.mch +0.05%
libraries_tests.run.osx.arm64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.04%
realworld.run.osx.arm64.checked.mch +0.04%
FullOpts (+0.04% to +0.06%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.05%
benchmarks.run_pgo.osx.arm64.checked.mch +0.05%
benchmarks.run_tiered.osx.arm64.checked.mch +0.06%
coreclr_tests.run.osx.arm64.checked.mch +0.05%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
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.04%
realworld.run.osx.arm64.checked.mch +0.04%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.05%
benchmarks.run_pgo.windows.arm64.checked.mch +0.04%
benchmarks.run_tiered.windows.arm64.checked.mch +0.03%
coreclr_tests.run.windows.arm64.checked.mch +0.03%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.05%
libraries_tests.run.windows.arm64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.05%
FullOpts (+0.04% to +0.06%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.05%
benchmarks.run_pgo.windows.arm64.checked.mch +0.05%
benchmarks.run_tiered.windows.arm64.checked.mch +0.06%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
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.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.05%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch +0.05%
benchmarks.run_pgo.windows.x64.checked.mch +0.05%
benchmarks.run_tiered.windows.x64.checked.mch +0.04%
coreclr_tests.run.windows.x64.checked.mch +0.05%
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.04%
realworld.run.windows.x64.checked.mch +0.05%
smoke_tests.nativeaot.windows.x64.checked.mch +0.05%
FullOpts (+0.04% to +0.08%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch +0.05%
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.08%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.05%
libraries_tests.run.windows.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.05%
smoke_tests.nativeaot.windows.x64.checked.mch +0.05%

Details here


@ryujit-bot
Copy link

Diff results for #98561

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,544,344 contexts (1,012,496 MinOpts, 1,531,848 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 6 (0.00%)

Overall (-209,660 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 17,218,812 -816
benchmarks.run_pgo.linux.arm64.checked.mch 77,518,372 -7,776
benchmarks.run_tiered.linux.arm64.checked.mch 25,054,876 -144
coreclr_tests.run.linux.arm64.checked.mch 518,928,388 -162,924
libraries.pmi.linux.arm64.checked.mch 76,557,636 -7,608
libraries_tests.run.linux.arm64.Release.mch 383,432,472 -17,332
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 165,120,196 -9,556
realworld.run.linux.arm64.checked.mch 15,876,964 -3,504
smoke_tests.nativeaot.linux.arm64.checked.mch 2,980,396 +0
FullOpts (-209,660 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 16,814,432 -816
benchmarks.run_pgo.linux.arm64.checked.mch 55,144,000 -7,776
benchmarks.run_tiered.linux.arm64.checked.mch 4,868,776 -144
coreclr_tests.run.linux.arm64.checked.mch 167,326,844 -162,924
libraries.pmi.linux.arm64.checked.mch 76,437,652 -7,608
libraries_tests.run.linux.arm64.Release.mch 167,615,256 -17,332
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 151,717,392 -9,556
realworld.run.linux.arm64.checked.mch 15,303,512 -3,504
smoke_tests.nativeaot.linux.arm64.checked.mch 2,979,408 +0

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,535,365 contexts (984,668 MinOpts, 1,550,697 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 6 (0.00%)

Overall (+49,121 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 12,166,543 +504
benchmarks.run_pgo.linux.x64.checked.mch 67,166,891 +85
benchmarks.run_tiered.linux.x64.checked.mch 16,810,899 +14
coreclr_tests.run.linux.x64.checked.mch 418,408,742 +6,852
libraries.pmi.linux.x64.checked.mch 60,685,927 +2,372
libraries_tests.run.linux.x64.Release.mch 331,729,851 +19,870
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 132,523,929 +18,929
realworld.run.linux.x64.checked.mch 13,233,730 +395
smoke_tests.nativeaot.linux.x64.checked.mch 4,251,108 +100
FullOpts (+49,121 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 11,994,952 +504
benchmarks.run_pgo.linux.x64.checked.mch 48,174,268 +85
benchmarks.run_tiered.linux.x64.checked.mch 3,654,870 +14
coreclr_tests.run.linux.x64.checked.mch 130,639,266 +6,852
libraries.pmi.linux.x64.checked.mch 60,573,097 +2,372
libraries_tests.run.linux.x64.Release.mch 147,894,207 +19,870
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 121,951,747 +18,929
realworld.run.linux.x64.checked.mch 12,845,635 +395
smoke_tests.nativeaot.linux.x64.checked.mch 4,250,159 +100

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,250,511 contexts (832,197 MinOpts, 1,418,314 FullOpts).

MISSED contexts: base: 73,582 (3.17%), diff: 73,583 (3.17%)

Overall (-109,592 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 17,295,604 -544
benchmarks.run_pgo.linux.arm.checked.mch 67,071,704 +7,746
benchmarks.run_tiered.linux.arm.checked.mch 20,251,824 -388
coreclr_tests.run.linux.arm.checked.mch 325,365,536 -105,696
libraries.pmi.linux.arm.checked.mch 50,242,096 -4,558
libraries_tests.run.linux.arm.Release.mch 239,569,132 -680
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 94,235,488 -3,206
realworld.run.linux.arm.checked.mch 13,483,316 -2,266
FullOpts (-109,592 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 16,808,432 -544
benchmarks.run_pgo.linux.arm.checked.mch 55,292,992 +7,746
benchmarks.run_tiered.linux.arm.checked.mch 12,101,278 -388
coreclr_tests.run.linux.arm.checked.mch 112,937,508 -105,696
libraries.pmi.linux.arm.checked.mch 50,135,872 -4,558
libraries_tests.run.linux.arm.Release.mch 117,215,170 -680
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 84,205,624 -3,206
realworld.run.linux.arm.checked.mch 13,055,792 -2,266

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,354,243 contexts (851,840 MinOpts, 1,502,403 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 9 (0.00%)

Overall (+3,263 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,191,920 +138
benchmarks.run_pgo.windows.x86.checked.mch 48,695,572 +31
benchmarks.run_tiered.windows.x86.checked.mch 9,517,087 +57
coreclr_tests.run.windows.x86.checked.mch 319,523,301 -6,925
libraries.pmi.windows.x86.checked.mch 49,527,633 +576
libraries_tests.run.windows.x86.Release.mch 190,246,350 +3,565
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 104,015,682 +5,917
realworld.run.windows.x86.checked.mch 11,337,016 -96
FullOpts (+3,263 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,191,639 +138
benchmarks.run_pgo.windows.x86.checked.mch 41,973,910 +31
benchmarks.run_tiered.windows.x86.checked.mch 5,211,653 +57
coreclr_tests.run.windows.x86.checked.mch 112,455,681 -6,925
libraries.pmi.windows.x86.checked.mch 49,432,403 +576
libraries_tests.run.windows.x86.Release.mch 91,149,962 +3,565
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 95,340,747 +5,917
realworld.run.windows.x86.checked.mch 11,041,746 -96

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (+0.02% to +0.04%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.03%
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.02%
libraries.crossgen2.linux.arm.checked.mch +0.03%
libraries.pmi.linux.arm.checked.mch +0.04%
libraries_tests.run.linux.arm.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.03%
realworld.run.linux.arm.checked.mch +0.03%
FullOpts (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.04%
benchmarks.run_pgo.linux.arm.checked.mch +0.04%
benchmarks.run_tiered.linux.arm.checked.mch +0.04%
coreclr_tests.run.linux.arm.checked.mch +0.03%
libraries.crossgen2.linux.arm.checked.mch +0.03%
libraries.pmi.linux.arm.checked.mch +0.04%
libraries_tests.run.linux.arm.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.03%
realworld.run.linux.arm.checked.mch +0.03%

Throughput diffs for windows/x86 ran on windows/x86

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.05%
benchmarks.run_pgo.windows.x86.checked.mch +0.04%
benchmarks.run_tiered.windows.x86.checked.mch +0.04%
coreclr_tests.run.windows.x86.checked.mch +0.04%
libraries.crossgen2.windows.x86.checked.mch +0.04%
libraries.pmi.windows.x86.checked.mch +0.05%
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.05%
FullOpts (+0.04% to +0.06%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.05%
benchmarks.run_pgo.windows.x86.checked.mch +0.04%
benchmarks.run_tiered.windows.x86.checked.mch +0.05%
coreclr_tests.run.windows.x86.checked.mch +0.06%
libraries.crossgen2.windows.x86.checked.mch +0.04%
libraries.pmi.windows.x86.checked.mch +0.05%
libraries_tests.run.windows.x86.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.04%
realworld.run.windows.x86.checked.mch +0.05%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

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

Throughput diffs for linux/x64 ran on linux/x64

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

Details here


@filipnavara filipnavara changed the title Prevent incorrect constant folding of binary operations involving handle and integer Prevent incorrect constant folding of arithmetic operations involving handle in relocatable code Feb 17, 2024
@filipnavara filipnavara marked this pull request as ready for review February 17, 2024 07:36
@filipnavara filipnavara changed the title Prevent incorrect constant folding of arithmetic operations involving handle in relocatable code Prevent incorrect constant folding Feb 17, 2024
@ryujit-bot
Copy link

Diff results for #98561

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.02% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.04%
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.04%
libraries_tests.run.linux.arm64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.03%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.05%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.05%
benchmarks.run_tiered.linux.arm64.checked.mch +0.05%
coreclr_tests.run.linux.arm64.checked.mch +0.03%
libraries.crossgen2.linux.arm64.checked.mch +0.03%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.03%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.05%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.02% to +0.05%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.04%
benchmarks.run_pgo.linux.x64.checked.mch +0.05%
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.04%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.04%
smoke_tests.nativeaot.linux.x64.checked.mch +0.05%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.04%
benchmarks.run_pgo.linux.x64.checked.mch +0.05%
benchmarks.run_tiered.linux.x64.checked.mch +0.05%
coreclr_tests.run.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.04%
libraries.pmi.linux.x64.checked.mch +0.04%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.04%
smoke_tests.nativeaot.linux.x64.checked.mch +0.05%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.02% to +0.05%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.05%
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.04%
libraries_tests.run.osx.arm64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.03%
realworld.run.osx.arm64.checked.mch +0.04%
MinOpts (-0.01% to +0.00%)
Collection PDIFF
realworld.run.osx.arm64.checked.mch -0.01%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.05%
benchmarks.run_pgo.osx.arm64.checked.mch +0.05%
benchmarks.run_tiered.osx.arm64.checked.mch +0.05%
coreclr_tests.run.osx.arm64.checked.mch +0.03%
libraries.crossgen2.osx.arm64.checked.mch +0.03%
libraries.pmi.osx.arm64.checked.mch +0.04%
libraries_tests.run.osx.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.03%
realworld.run.osx.arm64.checked.mch +0.04%

Throughput diffs for windows/arm64 ran on windows/x64

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

Throughput diffs for windows/x64 ran on windows/x64

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

Details here


@ryujit-bot
Copy link

Diff results for #98561

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,544,350 contexts (1,012,496 MinOpts, 1,531,854 FullOpts).

Overall (-64 bytes)
Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.arm64.checked.mch 518,928,384 -64
FullOpts (-64 bytes)
Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.arm64.checked.mch 167,326,840 -64

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,535,371 contexts (984,668 MinOpts, 1,550,703 FullOpts).

Overall (-44 bytes)
Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.x64.checked.mch 418,408,742 -44
FullOpts (-44 bytes)
Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.x64.checked.mch 130,639,266 -44

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 2,293,443 contexts (933,876 MinOpts, 1,359,567 FullOpts).

Overall (-64 bytes)
Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.osx.arm64.checked.mch 491,746,024 -64
FullOpts (-64 bytes)
Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.osx.arm64.checked.mch 153,251,180 -64

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,376,931 contexts (945,150 MinOpts, 1,431,781 FullOpts).

MISSED contexts: 5 (0.00%)

Overall (-64 bytes)
Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.windows.arm64.checked.mch 505,264,984 -64
smoke_tests.nativeaot.windows.arm64.checked.mch 3,995,200 +0
FullOpts (-64 bytes)
Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.windows.arm64.checked.mch 163,807,860 -64
smoke_tests.nativeaot.windows.arm64.checked.mch 3,994,188 +0

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,416,976 contexts (937,071 MinOpts, 1,479,905 FullOpts).

Overall (-196 bytes)
Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.windows.x64.checked.mch 407,341,578 -196
FullOpts (-196 bytes)
Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.windows.x64.checked.mch 126,875,214 -196

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (+0.01% to +0.04%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.03%
benchmarks.run_pgo.linux.arm.checked.mch +0.03%
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.03%
libraries.pmi.linux.arm.checked.mch +0.04%
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.03%
FullOpts (+0.02% to +0.04%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.03%
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.02%
libraries.crossgen2.linux.arm.checked.mch +0.03%
libraries.pmi.linux.arm.checked.mch +0.04%
libraries_tests.run.linux.arm.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.02%
realworld.run.linux.arm.checked.mch +0.03%

Throughput diffs for windows/x86 ran on windows/x86

Overall (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.05%
benchmarks.run_pgo.windows.x86.checked.mch +0.04%
benchmarks.run_tiered.windows.x86.checked.mch +0.04%
coreclr_tests.run.windows.x86.checked.mch +0.03%
libraries.crossgen2.windows.x86.checked.mch +0.05%
libraries.pmi.windows.x86.checked.mch +0.05%
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.05%
FullOpts (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.05%
benchmarks.run_pgo.windows.x86.checked.mch +0.04%
benchmarks.run_tiered.windows.x86.checked.mch +0.05%
coreclr_tests.run.windows.x86.checked.mch +0.04%
libraries.crossgen2.windows.x86.checked.mch +0.05%
libraries.pmi.windows.x86.checked.mch +0.05%
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.05%

Details here


@teo-tsirpanis teo-tsirpanis added the community-contribution Indicates that the PR has been added by a community member label Feb 17, 2024
@jakobbotsch jakobbotsch merged commit 1be948c into dotnet:main Feb 19, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Mar 21, 2024
@filipnavara filipnavara deleted the jit_const_fold branch April 2, 2025 20:02
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[NativeAOT/arm32] punning test failure in Checked build
7 participants