Skip to content

Late cast expansion: more improvements - #97387

Merged
EgorBo merged 12 commits into
dotnet:mainfrom
EgorBo:improve-late-cast-expansion-2
Jan 24, 2024
Merged

Late cast expansion: more improvements#97387
EgorBo merged 12 commits into
dotnet:mainfrom
EgorBo:improve-late-cast-expansion-2

Conversation

@EgorBo

Copy link
Copy Markdown
Member

This PR:

  1. Renames impIsClassExact to eeIsClassExact
  2. Refactors fgLateCastExpansion to move all logic to a separate PickCandidateForTypeCheck that performs all legality and profitability checks and gives a strategy for the fgLateCastExpansionForCall on how to properly expand everything.
  3. Moves NativeAOT-specific exactClass-driven expansion from importer to the late phase.

Almost final step prior getting rid of the importer's cast expansion.

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

This PR:

  1. Renames impIsClassExact to eeIsClassExact
  2. Refactors fgLateCastExpansion to move all logic to a separate PickCandidateForTypeCheck that performs all legality and profitability checks and gives a strategy for the fgLateCastExpansionForCall on how to properly expand everything.
  3. Moves NativeAOT-specific exactClass-driven expansion from importer to the late phase.

Almost final step prior getting rid of the importer's cast expansion.

Author:EgorBo
Assignees:EgorBo
Labels:

area-CodeGen-coreclr

Milestone:-

@EgorBo

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr pgo, runtime-coreclr libraries-pgo, runtime-coreclr pgostress

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

@EgorBo
EgorBo marked this pull request as draft January 24, 2024 00:15
@EgorBo

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr pgo, runtime-coreclr libraries-pgo, runtime-coreclr pgostress

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

@EgorBo
EgorBo marked this pull request as ready for review January 24, 2024 03:29
@EgorBo

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr pgo, runtime-coreclr libraries-pgo, runtime-coreclr pgostress

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

@EgorBo

Copy link
Copy Markdown
MemberAuthor

PTAL @jakobbotsch since you already reviewed this logc, cc @dotnet/jit-contrib

this phase is already capable of expanding all kinds of casts and can replace importer, but I need to resolve a couple of CQ nits first before I remove importer. Quite a few changes but the main idea is to put all legality and profitability checks to PickCandidateForTypeCheck

CI failures aren't related. it also passes the tests if I disable importer

Comment threadsrc/coreclr/jit/eeinterface.cpp Outdated
// Note:
// We are conservative on arrays of primitive types here.
//
bool Compiler::eeIsClassExact(CORINFO_CLASS_HANDLE clsHnd)

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

I'll remove this method because Jan already moved it to VM side in #97424

Comment threadsrc/coreclr/jit/helperexpansion.cpp Outdated
// Likely class handle or NO_CLASS_HANDLE
//
static CORINFO_CLASS_HANDLE PickLikelyClass(Compiler* comp, IL_OFFSET offset, unsigned* likelihood)
enum TypeCheckFailedAction

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Make it an enum class and remove the prefixes below?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Ah, indeed, addressed

Comment threadsrc/coreclr/jit/helperexpansion.cpp Outdated
Comment on lines +1837 to +1841
enum TypeCheckPassedAction
{
P_ReturnObj,
P_ReturnNull,
};

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ditto

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

addressed

Comment threadsrc/coreclr/jit/helperexpansion.cpp Outdated
// comp - Compiler instance
// castHelper - Cast helper call to expand
// commonCls - [out] Common denominator class for the fast and the fallback paths.
// likelihood - [out] Likelihood of successful type check (0..100)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Shouldn't it be inclusive in both ends?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

addressed

Comment on lines +1896 to +1900
// These are never expanded:
// CORINFO_HELP_ISINSTANCEOF_EXCEPTION
// CORINFO_HELP_CHKCASTCLASS_SPECIAL
// CORINFO_HELP_READYTORUN_ISINSTANCEOF,
// CORINFO_HELP_READYTORUN_CHKCAST,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Just for my curiosity, why not expand the R2R version if we have static PGO?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Good point, but importer also always gives up on them currently, but I'll add it to my todo

Comment threadsrc/coreclr/jit/helperexpansion.cpp Outdated
Comment on lines +2033 to +2034
if ((comp->info.compCompHnd->getClassAttribs(result) &
(CORINFO_FLG_INTERFACE | CORINFO_FLG_ABSTRACT | CORINFO_FLG_STATIC)) != 0)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is CORINFO_FLG_STATIC possible on a class? I think it only applies to methods. Static classes in C# are abstract and sealed in IL, I think.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Absolutely not needed, no idea why I added it here. this check was initially added to handle stale static pgo

Comment threadsrc/coreclr/jit/helperexpansion.cpp Outdated
if (typeCheckFailedAction == F_CallHelper_AlwaysThrows)
{
// fallback call is used only to throw InvalidCastException
fallbackBb = fgNewBBFromTreeAfter(BBJ_THROW, typeCheckBb, gtUnusedValNode(call), debugInfo, nullptr, true);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I don't think gtUnusedValNode is necessary. Also, shouldn't we mark the call with GTF_CALL_M_DOES_NOT_RETURN?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Addressed

Comment threadsrc/coreclr/jit/helperexpansion.cpp Outdated
Comment on lines +2254 to +2264
else if (typeCheckFailedAction == F_ReturnNull)
{
// if fallback call is not needed, we just assign null to tmp
GenTree* fallbackTree = gtNewTempStore(tmpNum, gtNewNull());
fallbackBb = fgNewBBFromTreeAfter(BBJ_ALWAYS, typeCheckBb, fallbackTree, debugInfo, lastBb, true);
}
else
{
GenTree* fallbackTree = gtNewTempStore(tmpNum, call);
fallbackBb = fgNewBBFromTreeAfter(BBJ_ALWAYS, typeCheckBb, fallbackTree, debugInfo, lastBb, true);
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It seems the nice comment above is no longer fully accurate since the fallback BB can also assign null in some cases now.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Addressed

@jakobbotschjakobbotsch left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This generally looks great to me, I just had a few nits. You can consider running a SPMI collection on this branch to be able to get proper SPMI diffs (maybe once Jan's PR has been merged)

@ryujit-bot

Copy link
Copy Markdown
Diff results for #97387

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,494,760 contexts (1,003,806 MinOpts, 1,490,954 FullOpts).

MISSED contexts: base: 4,060 (0.16%), diff: 10,457 (0.42%)

Overall (+80 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,916,664+36
coreclr_tests.run.linux.arm64.checked.mch508,918,764-88
libraries_tests.run.linux.arm64.Release.mch379,714,156+132
FullOpts (+80 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch55,980,204+36
coreclr_tests.run.linux.arm64.checked.mch159,693,708-88
libraries_tests.run.linux.arm64.Release.mch164,417,016+132

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,588,583 contexts (1,052,329 MinOpts, 1,536,254 FullOpts).

MISSED contexts: base: 3,628 (0.14%), diff: 10,052 (0.39%)

Overall (+230 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch68,442,860+60
coreclr_tests.run.linux.x64.checked.mch458,922,977-64
libraries_tests.run.linux.x64.Release.mch332,086,382+234
FullOpts (+230 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch48,613,103+60
coreclr_tests.run.linux.x64.checked.mch132,364,842-64
libraries_tests.run.linux.x64.Release.mch147,696,861+234

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 2,256,559 contexts (930,876 MinOpts, 1,325,683 FullOpts).

MISSED contexts: base: 3,256 (0.14%), diff: 9,406 (0.42%)

Overall (-16 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,446,500+72
coreclr_tests.run.osx.arm64.checked.mch484,502,820-84
libraries_tests.run.osx.arm64.Release.mch311,678,540-4
FullOpts (-16 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch17,973,220+72
coreclr_tests.run.osx.arm64.checked.mch152,196,364-84
libraries_tests.run.osx.arm64.Release.mch107,738,036-4

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,312,039 contexts (931,543 MinOpts, 1,380,496 FullOpts).

MISSED contexts: base: 2,687 (0.12%), diff: 8,855 (0.38%)

Overall (-80 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch47,253,428+36
coreclr_tests.run.windows.arm64.checked.mch494,497,636-84
libraries_tests.run.windows.arm64.Release.mch309,394,148-32
FullOpts (-80 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch31,003,044+36
coreclr_tests.run.windows.arm64.checked.mch155,406,108-84
libraries_tests.run.windows.arm64.Release.mch107,812,644-32

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,486,103 contexts (983,689 MinOpts, 1,502,414 FullOpts).

MISSED contexts: base: 3,899 (0.16%), diff: 10,701 (0.43%)

Overall (+256 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch41,693,796+119
benchmarks.run_pgo.windows.x64.checked.mch35,261,613+38
coreclr_tests.run.windows.x64.checked.mch392,818,845-68
libraries_tests.run.windows.x64.Release.mch280,544,593+167
FullOpts (+256 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch27,035,071+119
benchmarks.run_pgo.windows.x64.checked.mch21,026,636+38
coreclr_tests.run.windows.x64.checked.mch119,275,853-68
libraries_tests.run.windows.x64.Release.mch102,176,277+167

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,231,354 contexts (827,812 MinOpts, 1,403,542 FullOpts).

MISSED contexts: base: 74,588 (3.23%), diff: 80,924 (3.50%)

Overall (-6 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.linux.arm.checked.mch321,168,304-66
libraries_tests.run.linux.arm.Release.mch241,530,954+60
FullOpts (-6 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.linux.arm.checked.mch108,438,170-66
libraries_tests.run.linux.arm.Release.mch119,528,010+60

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,289,781 contexts (841,817 MinOpts, 1,447,964 FullOpts).

MISSED contexts: base: 5,093 (0.22%), diff: 11,589 (0.50%)

Overall (+144 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.x86.checked.mch308,593,818-53
libraries_tests.run.windows.x86.Release.mch184,833,802+197
FullOpts (+144 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.x86.checked.mch106,922,049-53
libraries_tests.run.windows.x86.Release.mch86,502,295+197

Details here


…st-expansion-2
# Conflicts:
#	src/coreclr/jit/gentree.cpp
#	src/coreclr/jit/importer.cpp
@ryujit-bot

Copy link
Copy Markdown
Diff results for #97387

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,494,760 contexts (1,003,806 MinOpts, 1,490,954 FullOpts).

MISSED contexts: base: 4,060 (0.16%), diff: 10,457 (0.42%)

Overall (+80 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch80,916,664+36
coreclr_tests.run.linux.arm64.checked.mch508,918,764-88
libraries_tests.run.linux.arm64.Release.mch379,714,156+132
FullOpts (+80 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch55,980,204+36
coreclr_tests.run.linux.arm64.checked.mch159,693,708-88
libraries_tests.run.linux.arm64.Release.mch164,417,016+132

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,588,583 contexts (1,052,329 MinOpts, 1,536,254 FullOpts).

MISSED contexts: base: 3,628 (0.14%), diff: 10,052 (0.39%)

Overall (+230 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch68,442,860+60
coreclr_tests.run.linux.x64.checked.mch458,922,977-64
libraries_tests.run.linux.x64.Release.mch332,086,382+234
FullOpts (+230 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch48,613,103+60
coreclr_tests.run.linux.x64.checked.mch132,364,842-64
libraries_tests.run.linux.x64.Release.mch147,696,861+234

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 2,256,559 contexts (930,876 MinOpts, 1,325,683 FullOpts).

MISSED contexts: base: 3,256 (0.14%), diff: 9,406 (0.42%)

Overall (-16 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch34,446,500+72
coreclr_tests.run.osx.arm64.checked.mch484,502,820-84
libraries_tests.run.osx.arm64.Release.mch311,678,540-4
FullOpts (-16 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch17,973,220+72
coreclr_tests.run.osx.arm64.checked.mch152,196,364-84
libraries_tests.run.osx.arm64.Release.mch107,738,036-4

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,312,039 contexts (931,543 MinOpts, 1,380,496 FullOpts).

MISSED contexts: base: 2,687 (0.12%), diff: 8,855 (0.38%)

Overall (-80 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch47,253,428+36
coreclr_tests.run.windows.arm64.checked.mch494,497,636-84
libraries_tests.run.windows.arm64.Release.mch309,394,148-32
FullOpts (-80 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch31,003,044+36
coreclr_tests.run.windows.arm64.checked.mch155,406,108-84
libraries_tests.run.windows.arm64.Release.mch107,812,644-32

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,486,103 contexts (983,689 MinOpts, 1,502,414 FullOpts).

MISSED contexts: base: 3,899 (0.16%), diff: 10,701 (0.43%)

Overall (+256 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch41,693,796+119
benchmarks.run_pgo.windows.x64.checked.mch35,261,613+38
coreclr_tests.run.windows.x64.checked.mch392,818,845-68
libraries_tests.run.windows.x64.Release.mch280,544,593+167
FullOpts (+256 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch27,035,071+119
benchmarks.run_pgo.windows.x64.checked.mch21,026,636+38
coreclr_tests.run.windows.x64.checked.mch119,275,853-68
libraries_tests.run.windows.x64.Release.mch102,176,277+167

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,231,354 contexts (827,812 MinOpts, 1,403,542 FullOpts).

MISSED contexts: base: 74,588 (3.23%), diff: 80,924 (3.50%)

Overall (-6 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.linux.arm.checked.mch321,168,304-66
libraries_tests.run.linux.arm.Release.mch241,530,954+60
FullOpts (-6 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.linux.arm.checked.mch108,438,170-66
libraries_tests.run.linux.arm.Release.mch119,528,010+60

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,289,781 contexts (841,817 MinOpts, 1,447,964 FullOpts).

MISSED contexts: base: 5,093 (0.22%), diff: 11,589 (0.50%)

Overall (+144 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.x86.checked.mch308,593,818-53
libraries_tests.run.windows.x86.Release.mch184,833,802+197
FullOpts (+144 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.x86.checked.mch106,922,049-53
libraries_tests.run.windows.x86.Release.mch86,502,295+197

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97387

Assembly diffs

Assembly diffs for windows/arm64 ran on linux/x64

Diffs are based on 2,308,464 contexts (929,692 MinOpts, 1,378,772 FullOpts).

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

Overall (-68 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.arm64.checked.mch494,677,796-88
libraries_tests.run.windows.arm64.Release.mch308,948,488+20
FullOpts (-68 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.arm64.checked.mch155,910,688-88
libraries_tests.run.windows.arm64.Release.mch107,542,328+20

Details here


@EgorBo
EgorBo merged commit bc402b0 into dotnet:mainJan 24, 2024
@EgorBo
EgorBo deleted the improve-late-cast-expansion-2 branch January 24, 2024 22:27
@ryujit-bot

Copy link
Copy Markdown
Diff results for #97387

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,498,787 contexts (1,011,240 MinOpts, 1,487,547 FullOpts).

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

Overall (-16 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.linux.arm64.checked.mch509,268,220-88
libraries_tests.run.linux.arm64.Release.mch384,368,152+72
FullOpts (-16 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.linux.arm64.checked.mch160,122,292-88
libraries_tests.run.linux.arm64.Release.mch168,479,656+72

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,505,538 contexts (977,780 MinOpts, 1,527,758 FullOpts).

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

Overall (+159 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.linux.x64.checked.mch403,034,105-78
libraries_tests.run.linux.x64.Release.mch340,326,239+237
FullOpts (+159 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.linux.x64.checked.mch123,216,185-78
libraries_tests.run.linux.x64.Release.mch156,408,468+237

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,308,464 contexts (929,692 MinOpts, 1,378,772 FullOpts).

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

Overall (-68 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.arm64.checked.mch494,677,796-88
libraries_tests.run.windows.arm64.Release.mch308,948,488+20
FullOpts (-68 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.arm64.checked.mch155,910,688-88
libraries_tests.run.windows.arm64.Release.mch107,542,328+20

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,366,596 contexts (928,756 MinOpts, 1,437,840 FullOpts).

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

Overall (+199 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.x64.checked.mch393,237,185-64
libraries_tests.run.windows.x64.Release.mch278,261,290+263
FullOpts (+199 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.x64.checked.mch119,732,117-64
libraries_tests.run.windows.x64.Release.mch103,256,694+263

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,230,531 contexts (825,130 MinOpts, 1,405,401 FullOpts).

MISSED contexts: base: 70,976 (3.08%), diff: 77,526 (3.36%)

Overall (-22 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.linux.arm.checked.mch321,408,598-62
libraries_tests.run.linux.arm.Release.mch244,971,184+40
FullOpts (-22 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.linux.arm.checked.mch108,689,136-62
libraries_tests.run.linux.arm.Release.mch122,627,856+40

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,292,458 contexts (840,463 MinOpts, 1,451,995 FullOpts).

MISSED contexts: base: 7 (0.00%), diff: 6,670 (0.29%)

Overall (+127 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.x86.checked.mch308,783,332-41
libraries_tests.run.windows.x86.Release.mch187,431,731+168
FullOpts (+127 bytes)
CollectionBase size (bytes)Diff size (bytes)
coreclr_tests.run.windows.x86.checked.mch107,089,027-41
libraries_tests.run.windows.x86.Release.mch89,274,581+168

Details here


Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@EgorBo@ryujit-bot@jakobbotsch