Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Partial expand of casts to non-sealed classes #55884

Closed
wants to merge 1 commit into from

Conversation

EgorBo
Copy link
Member

@EgorBo EgorBo commented Jul 18, 2021

Currently, we don't expand casts/isinst to non-sealed classes, e.g.

public class MyClass
{
    static bool Test(object o) => o is MyClass;


    static void Test2(object o)
    {
        if (o is MyClass p)
        {
            p.DoWork();
        }
    }


    [MethodImpl(MethodImplOptions.NoInlining)]
    public void DoWork() {}
}

Here is the codegen for Test and Test2:

; Method Program:Test(System.Object):bool
G_M4425_IG01:
       sub      rsp, 40
G_M4425_IG02:
       mov      rdx, rcx
       mov      rcx, 0xD1FFAB1E
       call     CORINFO_HELP_ISINSTANCEOFCLASS
       test     rax, rax
       setne    al
       movzx    rax, al
G_M4425_IG03:
       add      rsp, 40
       ret      
; Total bytes of code: 36


; Method Program:Test2(System.Object)
G_M61455_IG01:
       sub      rsp, 40
G_M61455_IG02:
       mov      rdx, rcx
       mov      rcx, 0xD1FFAB1E
       call     CORINFO_HELP_ISINSTANCEOFCLASS
       test     rax, rax
       je       SHORT G_M61455_IG05
G_M61455_IG03:
       mov      rcx, rax
G_M61455_IG04:
       add      rsp, 40
       jmp      Program:DoWork():this
G_M61455_IG05:
       add      rsp, 40
       ret      
; Total bytes of code: 44

As you can see, we just call CORINFO_HELP_ISINSTANCEOFCLASS.
I propose we also expand cases like this but with that call as a fallback.
Basically, optimize if (CORINFO_HELP_ISINSTANCEOFCLASS(obj, MyNonSealedType) to if ((obj != null && obj->pMT == MyNonSealedType) || CORINFO_HELP_ISINSTANCEOFCLASS(obj, MyNonSealedType))

Here is the new codegen:

; Method Program:Test(System.Object):bool
G_M4425_IG01:
       sub      rsp, 40
G_M4425_IG02:
       mov      gword ptr [rsp+30H], rcx
       mov      rax, rcx
       test     rax, rax  ;; o is null ?
       je       SHORT G_M4425_IG05
G_M4425_IG03:
       mov      rdx, 0xD1FFAB1E
       cmp      qword ptr [rax], rdx  ;; o is exactly BaseClass ?
       je       SHORT G_M4425_IG05
G_M4425_IG04:
       mov      rcx, rdx
       mov      rdx, gword ptr [rsp+30H]
       call     CORINFO_HELP_ISINSTANCEOFCLASS ;; it wasn't BaseClass - fallback to helper call
G_M4425_IG05:
       test     rax, rax ;; redundant, but it's a different issue.
       setne    al
       movzx    rax, al
G_M4425_IG06:
       add      rsp, 40
       ret      
; Total bytes of code: 59


; Method Program:Test2(System.Object)
G_M61455_IG01:
       sub      rsp, 40
G_M61455_IG02:
       mov      gword ptr [rsp+30H], rcx
       mov      rax, rcx
       test     rax, rax  ;; o is null ?
       je       SHORT G_M61455_IG05
G_M61455_IG03:
       mov      rdx, 0xD1FFAB1E
       cmp      qword ptr [rax], rdx   ;; o is exactly BaseClass ?
       je       SHORT G_M61455_IG05
G_M61455_IG04:
       mov      rcx, rdx
       mov      rdx, gword ptr [rsp+30H]
       call     CORINFO_HELP_ISINSTANCEOFCLASS ;; it wasn't BaseClass - fallback to helper call
G_M61455_IG05:
       test     rax, rax ;; redundant, but it's a different issue.
       je       SHORT G_M61455_IG08
G_M61455_IG06:
       mov      rcx, rax
G_M61455_IG07:
       add      rsp, 40
       jmp      Program:DoWork():this
G_M61455_IG08:
       add      rsp, 40
       ret      
; Total bytes of code: 67

diffchecker.

Benchmarks

I wrote a simple benchmark to check benefits or overhead (in case of subclasses): https://gist.github.com/EgorBo/a3ac2b1f5c6e182acdd5f5d43c8335ec

Here are the results:

     |      Method |         o |      Mean |     Error |    StdDev | Ratio |
     |------------ |---------- |----------:|----------:|----------:|------:|
  PR | IsBaseClass |      null | 0.2856 ns | 0.0168 ns | 0.0157 ns |  0.20 |
Main | IsBaseClass |      null | 1.4008 ns | 0.0109 ns | 0.0091 ns |  1.00 |
     |             |           |           |           |           |       |
  PR |  CallDoWork |      null | 0.5540 ns | 0.0129 ns | 0.0114 ns |  0.29 |
Main |  CallDoWork |      null | 1.9152 ns | 0.0155 ns | 0.0129 ns |  1.00 |
     |             |           |           |           |           |       |
  PR | IsBaseClass | BaseClass | 0.3257 ns | 0.0240 ns | 0.0224 ns |  0.21 |
Main | IsBaseClass | BaseClass | 1.5435 ns | 0.0228 ns | 0.0214 ns |  1.00 |
     |             |           |           |           |           |       |
  PR |  CallDoWork | BaseClass | 1.0866 ns | 0.0234 ns | 0.0207 ns |  0.56 |
Main |  CallDoWork | BaseClass | 1.9415 ns | 0.0153 ns | 0.0136 ns |  1.00 |
     |             |           |           |           |           |       |
  PR | IsBaseClass |   Program | 2.0706 ns | 0.0213 ns | 0.0189 ns |  0.98 |
Main | IsBaseClass |   Program | 2.1222 ns | 0.0398 ns | 0.0353 ns |  1.00 |
     |             |           |           |           |           |       |
  PR |  CallDoWork |   Program | 2.5887 ns | 0.0168 ns | 0.0140 ns |  0.88 |
Main |  CallDoWork |   Program | 2.9370 ns | 0.0469 ns | 0.0439 ns |  1.00 |
     |             |           |           |           |           |       |
  PR | IsBaseClass |  Subclass | 2.2969 ns | 0.0136 ns | 0.0114 ns |  1.10 |
Main | IsBaseClass |  Subclass | 2.0966 ns | 0.0369 ns | 0.0345 ns |  1.00 |
     |             |           |           |           |           |       |
  PR |  CallDoWork |  Subclass | 3.0225 ns | 0.0204 ns | 0.0191 ns |  1.00 |
Main |  CallDoWork |  Subclass | 3.0209 ns | 0.0194 ns | 0.0182 ns |  1.00 |

A 10% (+0.2ns) overhead for a case when Subclass is passed (and we expected BaseClass), but a significant win for cases where null or BaseClass are passed.

PS: we'll avoid the overhead at all with PGO, see #55325
PS2: the new codegen is not super-efficient and will be improved, see #55841 (comment))

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jul 18, 2021
@EgorBo
Copy link
Member Author

EgorBo commented Jul 18, 2021

The diff is quite big so I guess I can enable this opt only for really hot methods (with PGO data).

aspnet.run.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 1258663
Total bytes of diff: 1285450
Total bytes of delta: 26787 (2.13% of base)
Total relative delta: 35.36
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         564 : 22030.dasm (6.69% of base)
         425 : 43734.dasm (4.94% of base)
         368 : 20886.dasm (4.16% of base)
         356 : 24415.dasm (4.01% of base)
         338 : 34194.dasm (18.10% of base)
         337 : 41315.dasm (3.94% of base)
         306 : 18475.dasm (3.65% of base)
         299 : 31828.dasm (6.04% of base)
         246 : 12361.dasm (3.80% of base)
         246 : 17310.dasm (3.77% of base)
         179 : 21891.dasm (4.17% of base)
         159 : 17651.dasm (4.28% of base)
         154 : 6563.dasm (2.91% of base)
         145 : 31845.dasm (3.34% of base)
         144 : 12341.dasm (7.37% of base)
         141 : 34055.dasm (1.06% of base)
         137 : 32029.dasm (4.08% of base)
         136 : 21998.dasm (3.38% of base)
         133 : 21837.dasm (5.61% of base)
         130 : 21883.dasm (3.67% of base)

Top file improvements (bytes):
        -239 : 756.dasm (-7.83% of base)
        -113 : 12108.dasm (-6.39% of base)
        -101 : 17299.dasm (-5.24% of base)
        -101 : 12356.dasm (-5.37% of base)
         -83 : 12503.dasm (-4.79% of base)
         -76 : 21931.dasm (-3.68% of base)
         -69 : 31617.dasm (-3.60% of base)
         -33 : 21930.dasm (-0.95% of base)
         -28 : 42242.dasm (-2.06% of base)
         -27 : 40848.dasm (-1.55% of base)
         -23 : 17365.dasm (-1.57% of base)
         -20 : 30587.dasm (-1.17% of base)
         -19 : 40596.dasm (-0.45% of base)
         -17 : 12091.dasm (-1.23% of base)
         -17 : 11827.dasm (-0.60% of base)
         -16 : 1478.dasm (-0.88% of base)
         -14 : 31174.dasm (-0.96% of base)
         -14 : 43679.dasm (-0.96% of base)
         -13 : 1267.dasm (-0.75% of base)
         -10 : 22221.dasm (-0.53% of base)

908 total files with Code Size differences (25 improved, 883 regressed), 3 unchanged.

Top method regressions (bytes):
         564 ( 6.69% of base) : 22030.dasm - <NextResult>d__47:MoveNext():this
         425 ( 4.94% of base) : 43734.dasm - <NextResult>d__47:MoveNext():this
         368 ( 4.16% of base) : 20886.dasm - <NextResult>d__47:MoveNext():this
         356 ( 4.01% of base) : 24415.dasm - <NextResult>d__47:MoveNext():this
         338 (18.10% of base) : 34194.dasm - SqlExpressionVisitor:VisitExtension(Expression):Expression:this
         337 ( 3.94% of base) : 41315.dasm - <NextResult>d__47:MoveNext():this
         306 ( 3.65% of base) : 18475.dasm - <NextResult>d__47:MoveNext():this
         299 ( 6.04% of base) : 31828.dasm - <OnConnectionAsync>d__16:MoveNext():this
         246 ( 3.80% of base) : 12361.dasm - <SendAsync>d__6:MoveNext():this
         246 ( 3.77% of base) : 17310.dasm - <SendAsync>d__6:MoveNext():this
         179 ( 4.17% of base) : 21891.dasm - <Open>d__188:MoveNext():this
         159 ( 4.28% of base) : 17651.dasm - <ConnectAsync>d__100:MoveNext():this
         154 ( 2.91% of base) : 6563.dasm - <ProcessRequestsAsync>d__68:MoveNext():this
         145 ( 3.34% of base) : 31845.dasm - <ForceAuthenticationAsync>d__173`1:MoveNext():this
         144 ( 7.37% of base) : 12341.dasm - <DetermineVersionAndSendAsync>d__85:MoveNext():this
         141 ( 1.06% of base) : 34055.dasm - ShaperProcessingExpressionVisitor:VisitExtension(Expression):Expression:this
         137 ( 4.08% of base) : 32029.dasm - <WriteAsyncCore>d__83`1:MoveNext():this
         136 ( 3.38% of base) : 21998.dasm - <ExecuteReader>d__109:MoveNext():this
         133 ( 5.61% of base) : 21837.dasm - <MultiplexingWriteLoop>d__20:MoveNext():this
         130 ( 3.67% of base) : 21883.dasm - <<Get>g__RentAsync|29_0>d:MoveNext():this

Top method improvements (bytes):
        -239 (-7.83% of base) : 756.dasm - <DoSend>d__28:MoveNext():this
        -113 (-6.39% of base) : 12108.dasm - <TransformResponseTrailersAsync>d__21:MoveNext():this
        -101 (-5.24% of base) : 17299.dasm - <Invoke>d__5:MoveNext():this
        -101 (-5.37% of base) : 12356.dasm - <Invoke>d__5:MoveNext():this
         -83 (-4.79% of base) : 12503.dasm - <FillAsync>d__97:MoveNext():this
         -76 (-3.68% of base) : 21931.dasm - <<Ensure>g__EnsureLong|40_0>d:MoveNext():this
         -69 (-3.60% of base) : 31617.dasm - <ExecuteAsync>d__22:MoveNext():this
         -33 (-0.95% of base) : 21930.dasm - <<ReadMessage>g__ReadMessageLong|208_0>d:MoveNext():this
         -28 (-2.06% of base) : 42242.dasm - <Microsoft-EntityFrameworkCore-Infrastructure-IResettableService-ResetStateAsync>d__73:MoveNext():this
         -27 (-1.55% of base) : 40848.dasm - DynamicMethod:GetILGenerator(int):ILGenerator:this
         -23 (-1.57% of base) : 17365.dasm - <TransformResponseAsync>d__20:MoveNext():this
         -20 (-1.17% of base) : 30587.dasm - FromSqlParameterExpandingExpressionVisitor:Visit(Expression):Expression:this
         -19 (-0.45% of base) : 40596.dasm - <ReadAsyncInternal>d__186`1:MoveNext():this
         -17 (-1.23% of base) : 12091.dasm - <TransformResponseAsync>d__20:MoveNext():this
         -17 (-0.60% of base) : 11827.dasm - <VerifyClustersAsync>d__31:MoveNext():this
         -16 (-0.88% of base) : 1478.dasm - <ProcessRequestsAsync>d__68:MoveNext():this
         -14 (-0.96% of base) : 31174.dasm - DynamicMethod:GetILGenerator(int):ILGenerator:this
         -14 (-0.96% of base) : 43679.dasm - DynamicMethod:GetILGenerator(int):ILGenerator:this
         -13 (-0.75% of base) : 1267.dasm - <ProcessRequestsAsync>d__68:MoveNext():this
         -10 (-0.53% of base) : 22221.dasm - <SeekToColumnSequential>d__133:MoveNext():this

Top method regressions (percentages):
          13 (44.83% of base) : 41296.dasm - ModelMetadataIdentity:get_ParameterInfo():ParameterInfo:this
          20 (34.48% of base) : 23579.dasm - RegexNode:ChildCount():int:this
          20 (34.48% of base) : 18912.dasm - RegexNode:ChildCount():int:this
          26 (31.33% of base) : 33764.dasm - EvaluatableExpressionFindingExpressionVisitor:IsQueryableMethod(Expression):bool
          13 (25.00% of base) : 820.dasm - IPAddress:Equals(Object):bool:this
          13 (25.00% of base) : 11086.dasm - IPAddress:Equals(Object):bool:this
          13 (25.00% of base) : 6590.dasm - IPAddress:Equals(Object):bool:this
          13 (25.00% of base) : 16853.dasm - IPAddress:Equals(Object):bool:this
          13 (25.00% of base) : 23927.dasm - IPAddress:Equals(Object):bool:this
          13 (25.00% of base) : 40232.dasm - IPAddress:Equals(Object):bool:this
          13 (25.00% of base) : 27535.dasm - IPAddress:Equals(Object):bool:this
         127 (24.05% of base) : 34193.dasm - NpgsqlQuerySqlGenerator:VisitExtension(Expression):Expression:this
          35 (23.18% of base) : 12304.dasm - HttpHeaders:GetValueCount(HeaderStoreItemInfo):int
          13 (21.31% of base) : 34390.dasm - ModelCacheKey:Equals(Object):bool:this
          18 (20.69% of base) : 34117.dasm - ExpressionExtensions:GetConstantValue(Expression):__Canon
          26 (20.31% of base) : 34054.dasm - CollectionShaperFindingExpressionVisitor:Visit(Expression):Expression:this
         338 (18.10% of base) : 34194.dasm - SqlExpressionVisitor:VisitExtension(Expression):Expression:this
          23 (17.16% of base) : 34174.dasm - SqlNullabilityProcessor:TryGetBoolConstantValue(SqlExpression):Nullable`1
          17 (16.19% of base) : 12362.dasm - ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this
          17 (16.19% of base) : 7737.dasm - ValueTaskAwaiter:get_IsCompleted():bool:this

Top method improvements (percentages):
        -239 (-7.83% of base) : 756.dasm - <DoSend>d__28:MoveNext():this
        -113 (-6.39% of base) : 12108.dasm - <TransformResponseTrailersAsync>d__21:MoveNext():this
        -101 (-5.37% of base) : 12356.dasm - <Invoke>d__5:MoveNext():this
        -101 (-5.24% of base) : 17299.dasm - <Invoke>d__5:MoveNext():this
         -83 (-4.79% of base) : 12503.dasm - <FillAsync>d__97:MoveNext():this
         -76 (-3.68% of base) : 21931.dasm - <<Ensure>g__EnsureLong|40_0>d:MoveNext():this
         -69 (-3.60% of base) : 31617.dasm - <ExecuteAsync>d__22:MoveNext():this
         -28 (-2.06% of base) : 42242.dasm - <Microsoft-EntityFrameworkCore-Infrastructure-IResettableService-ResetStateAsync>d__73:MoveNext():this
          -6 (-1.64% of base) : 32479.dasm - DbContextServices:CreateModel(bool):IModel:this
         -23 (-1.57% of base) : 17365.dasm - <TransformResponseAsync>d__20:MoveNext():this
         -27 (-1.55% of base) : 40848.dasm - DynamicMethod:GetILGenerator(int):ILGenerator:this
          -3 (-1.33% of base) : 27168.dasm - ValueTask`1:get_Result():ReadResult:this
          -3 (-1.33% of base) : 31984.dasm - ValueTask`1:get_Result():ReadResult:this
         -17 (-1.23% of base) : 12091.dasm - <TransformResponseAsync>d__20:MoveNext():this
         -20 (-1.17% of base) : 30587.dasm - FromSqlParameterExpandingExpressionVisitor:Visit(Expression):Expression:this
         -14 (-0.96% of base) : 31174.dasm - DynamicMethod:GetILGenerator(int):ILGenerator:this
         -14 (-0.96% of base) : 43679.dasm - DynamicMethod:GetILGenerator(int):ILGenerator:this
         -33 (-0.95% of base) : 21930.dasm - <<ReadMessage>g__ReadMessageLong|208_0>d:MoveNext():this
         -16 (-0.88% of base) : 1478.dasm - <ProcessRequestsAsync>d__68:MoveNext():this
         -13 (-0.75% of base) : 1267.dasm - <ProcessRequestsAsync>d__68:MoveNext():this

908 total methods with Code Size differences (25 improved, 883 regressed), 3 unchanged.


benchmarks.run.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 318954
Total bytes of diff: 327722
Total bytes of delta: 8768 (2.75% of base)
Total relative delta: 14.88
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         245 : 3093.dasm (15.66% of base)
         137 : 23370.dasm (3.40% of base)
         137 : 24845.dasm (3.45% of base)
         129 : 6066.dasm (3.34% of base)
         129 : 5940.dasm (3.36% of base)
         111 : 20730.dasm (4.38% of base)
         108 : 9558.dasm (2.85% of base)
         108 : 20360.dasm (4.45% of base)
         106 : 20628.dasm (3.86% of base)
         105 : 18910.dasm (4.48% of base)
         105 : 5155.dasm (2.81% of base)
          99 : 3343.dasm (1.69% of base)
          96 : 20607.dasm (3.15% of base)
          93 : 5055.dasm (1.94% of base)
          93 : 22645.dasm (2.52% of base)
          93 : 21814.dasm (5.04% of base)
          92 : 15784.dasm (5.19% of base)
          91 : 20596.dasm (3.36% of base)
          85 : 5474.dasm (2.37% of base)
          85 : 20582.dasm (3.72% of base)

Top file improvements (bytes):
        -133 : 9547.dasm (-6.60% of base)
         -93 : 20528.dasm (-1.79% of base)
         -29 : 1953.dasm (-3.39% of base)
         -12 : 16764.dasm (-0.55% of base)

291 total files with Code Size differences (4 improved, 287 regressed), 0 unchanged.

Top method regressions (bytes):
         245 (15.66% of base) : 3093.dasm - System.Xml.Serialization.XmlAttributes:.ctor(System.Reflection.ICustomAttributeProvider):this
         137 ( 3.40% of base) : 23370.dasm - <DefaultHandshake>d__28:MoveNext():this
         137 ( 3.45% of base) : 24845.dasm - <HandshakeAsync>d__29:MoveNext():this
         129 ( 3.34% of base) : 6066.dasm - <WriteAsyncCore>d__83`1[SimpleStructWithProperties][MicroBenchmarks.Serializers.SimpleStructWithProperties]:MoveNext():this
         129 ( 3.36% of base) : 5940.dasm - <WriteAsyncCore>d__83`1[__Canon][System.__Canon]:MoveNext():this
         111 ( 4.38% of base) : 20730.dasm - <CopyToContentLengthAsync>d__104:MoveNext():this
         108 ( 2.85% of base) : 9558.dasm - <ReadAsyncSlowPath>d__39:MoveNext():this
         108 ( 4.45% of base) : 20360.dasm - <ReadAsyncWithCancellationToken>d__11:MoveNext():this
         106 ( 3.86% of base) : 20628.dasm - <ReadLineAsyncInternal>d__63:MoveNext():this
         105 ( 4.48% of base) : 18910.dasm - <ReadAsync>d__7:MoveNext():this
         105 ( 2.81% of base) : 5155.dasm - <ReceiveBlobAsync>d__174`1[AsyncReadWriteAdapter][System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this
          99 ( 1.69% of base) : 3343.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,bool,bool,int,int):this
          96 ( 3.15% of base) : 20607.dasm - <<DnsConnectAsync>g__Core|112_0>d:MoveNext():this
          93 ( 1.94% of base) : 5055.dasm - <ForceAuthenticationAsync>d__173`1[AsyncReadWriteAdapter][System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this
          93 ( 2.52% of base) : 22645.dasm - <DefaultContextHandshake>d__3:MoveNext():this
          93 ( 5.04% of base) : 21814.dasm - <CopyToAsyncCore>d__10:MoveNext():this
          92 ( 5.19% of base) : 15784.dasm - <ConcurrentReadWrite>d__34:MoveNext():this
          91 ( 3.36% of base) : 20596.dasm - <ConnectToTcpHostAsync>d__90:MoveNext():this
          85 ( 2.37% of base) : 5474.dasm - <ReadAsyncInternal>d__186`1[AsyncReadWriteAdapter][System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this
          85 ( 3.72% of base) : 20582.dasm - <DetermineVersionAndSendAsync>d__75:MoveNext():this

Top method improvements (bytes):
        -133 (-6.60% of base) : 9547.dasm - <<CopyToAsync>g__Core|29_0>d:MoveNext():this
         -93 (-1.79% of base) : 20528.dasm - <SendAsync>d__4:MoveNext():this
         -29 (-3.39% of base) : 1953.dasm - System.Text.RegularExpressions.RegexNode:<ComputeMinLength>g__ComputeMinLength|87_0(System.Text.RegularExpressions.RegexNode,int):int
         -12 (-0.55% of base) : 16764.dasm - Microsoft.CodeAnalysis.CSharp.MergedNamespaceDeclaration:MakeChildren():System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.MergedNamespaceOrTypeDeclaration, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this

Top method regressions (percentages):
          32 (48.48% of base) : 2209.dasm - System.Reflection.Emit.ModuleBuilder:GetRuntimeModuleFromModule(System.Reflection.Module):System.Reflection.RuntimeModule
          20 (34.48% of base) : 1939.dasm - System.Text.RegularExpressions.RegexNode:ChildCount():int:this
          13 (33.33% of base) : 8578.dasm - Sigil.Impl.TypeOnStack:Equals(System.Object):bool:this
          63 (27.63% of base) : 4115.dasm - System.Collections.Immutable.ImmutableExtensions:TryCopyTo(System.Collections.Generic.IEnumerable`1[Int32],System.Int32[],int):bool
          13 (25.00% of base) : 5016.dasm - System.Net.IPAddress:Equals(System.Object):bool:this
          13 (23.21% of base) : 7179.dasm - System.Runtime.Serialization.Json.XmlJsonReader:get_IsAttributeValue():bool:this
          16 (19.05% of base) : 9012.dasm - System.Xml.XmlElement:get_HasAttributes():bool:this
          20 (18.69% of base) : 17801.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:IsLastBlockInMethod(Microsoft.CodeAnalysis.CSharp.BoundBlock):bool:this
          26 (18.06% of base) : 15491.dasm - Jil.Common.ExtensionMethods:MakeSupportPeek(System.IO.TextReader):System.IO.TextReader
          13 (17.11% of base) : 3977.dasm - AsyncStateMachineBox`1[VoidTaskResult,<SingleSerial>d__21][System.Threading.Tasks.VoidTaskResult,System.Buffers.Tests.RentReturnArrayPoolTests`1+<SingleSerial>d__21[System.Byte]]:ExecutionContextCallback(System.Object)
          13 (15.85% of base) : 5444.dasm - <>c:<.cctor>b__271_0(System.Object):this
         245 (15.66% of base) : 3093.dasm - System.Xml.Serialization.XmlAttributes:.ctor(System.Reflection.ICustomAttributeProvider):this
          20 (14.08% of base) : 17566.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_Method():Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this
          13 (13.40% of base) : 2298.dasm - Utf8Json.Internal.Emit.ExpressionUtility:GetMethodInfoCore(System.Linq.Expressions.LambdaExpression):System.Reflection.MethodInfo
          26 (13.27% of base) : 17436.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:.ctor(Microsoft.CodeAnalysis.CSharp.Binder,int):this
          13 (13.13% of base) : 21507.dasm - System.Xml.Linq.XContainer:Element(System.Xml.Linq.XName):System.Xml.Linq.XElement:this
          20 (13.07% of base) : 14472.dasm - System.Threading.Channels.ChannelUtilities:Complete(System.Threading.Tasks.TaskCompletionSource,System.Exception)
          16 (12.40% of base) : 4599.dasm - System.IO.Strategies.BufferedFileStreamStrategy:Finalize():this
          13 (12.38% of base) : 4794.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[Int32][System.Int32]:GetStatus(short):int:this
          13 (12.38% of base) : 21809.dasm - System.Net.Http.Headers.TransferCodingHeaderValue:Equals(System.Object):bool:this

Top method improvements (percentages):
        -133 (-6.60% of base) : 9547.dasm - <<CopyToAsync>g__Core|29_0>d:MoveNext():this
         -29 (-3.39% of base) : 1953.dasm - System.Text.RegularExpressions.RegexNode:<ComputeMinLength>g__ComputeMinLength|87_0(System.Text.RegularExpressions.RegexNode,int):int
         -93 (-1.79% of base) : 20528.dasm - <SendAsync>d__4:MoveNext():this
         -12 (-0.55% of base) : 16764.dasm - Microsoft.CodeAnalysis.CSharp.MergedNamespaceDeclaration:MakeChildren():System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.MergedNamespaceOrTypeDeclaration, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this

291 total methods with Code Size differences (4 improved, 287 regressed), 0 unchanged.


coreclr_tests.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 397171
Total bytes of diff: 400083
Total bytes of delta: 2912 (0.73% of base)
Total relative delta: 20.81
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         235 : 225097.dasm (69.12% of base)
         130 : 225119.dasm (20.22% of base)
         130 : 225120.dasm (20.22% of base)
         130 : 225071.dasm (20.22% of base)
         130 : 225117.dasm (20.67% of base)
         130 : 225072.dasm (20.22% of base)
         130 : 225118.dasm (20.67% of base)
         130 : 225069.dasm (20.67% of base)
         130 : 225070.dasm (20.67% of base)
         105 : 233049.dasm (33.33% of base)
          94 : 225124.dasm (53.41% of base)
          94 : 225076.dasm (53.41% of base)
          94 : 225075.dasm (53.41% of base)
          94 : 225123.dasm (53.41% of base)
          73 : 212749.dasm (11.06% of base)
          73 : 212734.dasm (11.06% of base)
          71 : 252928.dasm (21.01% of base)
          65 : 225098.dasm (11.44% of base)
          65 : 225094.dasm (16.41% of base)
          65 : 225095.dasm (15.85% of base)

Top file improvements (bytes):
        -120 : 101903.dasm (-0.57% of base)
        -120 : 101899.dasm (-0.57% of base)
        -120 : 101902.dasm (-0.57% of base)
        -120 : 101897.dasm (-0.57% of base)
        -120 : 101904.dasm (-0.57% of base)
        -120 : 101893.dasm (-0.57% of base)
        -120 : 101900.dasm (-0.57% of base)
        -120 : 101898.dasm (-0.57% of base)
        -120 : 101894.dasm (-0.57% of base)
        -120 : 101906.dasm (-0.57% of base)
        -120 : 101895.dasm (-0.57% of base)
        -120 : 101901.dasm (-0.57% of base)
        -120 : 101905.dasm (-0.57% of base)
        -120 : 101892.dasm (-0.57% of base)
        -120 : 101896.dasm (-0.57% of base)
         -50 : 85317.dasm (-60.98% of base)
         -29 : 60.dasm (-3.40% of base)
         -27 : 86380.dasm (-58.70% of base)
          -7 : 84567.dasm (-2.55% of base)
          -1 : 167807.dasm (-0.00% of base)

168 total files with Code Size differences (20 improved, 148 regressed), 0 unchanged.

Top method regressions (bytes):
         235 (69.12% of base) : 225097.dasm - mainMethod:checkIsObjectCast(System.Object)
         130 (20.22% of base) : 225119.dasm - mainMethod:checkAs(X`1[__Canon])
         130 (20.22% of base) : 225120.dasm - mainMethod:checkAs(X`1[Byte])
         130 (20.22% of base) : 225071.dasm - mainMethod:checkAs(X`1[__Canon])
         130 (20.67% of base) : 225117.dasm - mainMethod:checkIs(X`1[__Canon])
         130 (20.22% of base) : 225072.dasm - mainMethod:checkAs(X`1[Byte])
         130 (20.67% of base) : 225118.dasm - mainMethod:checkIs(X`1[Byte])
         130 (20.67% of base) : 225069.dasm - mainMethod:checkIs(X`1[__Canon])
         130 (20.67% of base) : 225070.dasm - mainMethod:checkIs(X`1[Byte])
         105 (33.33% of base) : 233049.dasm - Driver`2[__Canon,__Canon][System.__Canon,System.__Canon]:CreateValue(System.__Canon):System.__Canon:this
          94 (53.41% of base) : 225124.dasm - mainMethod:checkIsIntCast(X`1[[class_int, refTypesdynamic, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]])
          94 (53.41% of base) : 225076.dasm - mainMethod:checkIsIntCast(X`1[Int32])
          94 (53.41% of base) : 225075.dasm - mainMethod:checkIsStringCast(X`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]])
          94 (53.41% of base) : 225123.dasm - mainMethod:checkIsStringCast(X`1[[class_string, refTypesdynamic, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]])
          73 (11.06% of base) : 212749.dasm - GlobalComWrappers:ComputeVtablesForTestObject(ComWrappersTests.Common.Test,byref):long:this
          73 (11.06% of base) : 212734.dasm - GlobalComWrappers:ComputeVtablesForTestObject(ComWrappersTests.Common.Test,byref):long:this
          71 (21.01% of base) : 252928.dasm - Repro:Bug(System.Object):int
          65 (11.44% of base) : 225098.dasm - mainMethod:checkAsObjectCast(System.Object)
          65 (16.41% of base) : 225094.dasm - mainMethod:checkIs(System.Object)
          65 (15.85% of base) : 225095.dasm - mainMethod:checkAs(System.Object)

Top method improvements (bytes):
        -120 (-0.57% of base) : 101903.dasm - Program:TestCase0014()
        -120 (-0.57% of base) : 101899.dasm - Program:TestCase0008()
        -120 (-0.57% of base) : 101902.dasm - Program:TestCase0013()
        -120 (-0.57% of base) : 101897.dasm - Program:TestCase0006()
        -120 (-0.57% of base) : 101904.dasm - Program:TestCase0015()
        -120 (-0.57% of base) : 101893.dasm - Program:TestCase0002()
        -120 (-0.57% of base) : 101900.dasm - Program:TestCase0011()
        -120 (-0.57% of base) : 101898.dasm - Program:TestCase0007()
        -120 (-0.57% of base) : 101894.dasm - Program:TestCase0003()
        -120 (-0.57% of base) : 101906.dasm - Program:TestCase0017()
        -120 (-0.57% of base) : 101895.dasm - Program:TestCase0004()
        -120 (-0.57% of base) : 101901.dasm - Program:TestCase0012()
        -120 (-0.57% of base) : 101905.dasm - Program:TestCase0016()
        -120 (-0.57% of base) : 101892.dasm - Program:TestCase0001()
        -120 (-0.57% of base) : 101896.dasm - Program:TestCase0005()
         -50 (-60.98% of base) : 85317.dasm - JitTest.TestClass:Main():int
         -29 (-3.40% of base) : 60.dasm - System.Text.RegularExpressions.RegexNode:<ComputeMinLength>g__ComputeMinLength|87_0(System.Text.RegularExpressions.RegexNode,int):int
         -27 (-58.70% of base) : 86380.dasm - X`1[Byte][System.Byte]:F():int
          -7 (-2.55% of base) : 84567.dasm - FiltCatch:main(System.String[]):int
          -1 (-0.00% of base) : 167807.dasm - ReliabilityConfig:GetTestsToRun(System.String):this

Top method regressions (percentages):
         235 (69.12% of base) : 225097.dasm - mainMethod:checkIsObjectCast(System.Object)
          23 (63.89% of base) : 249363.dasm - F:IsIK(I`1[Byte]):bool
          23 (63.89% of base) : 249358.dasm - F:IsIStringK(I`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):bool
          94 (53.41% of base) : 225124.dasm - mainMethod:checkIsIntCast(X`1[[class_int, refTypesdynamic, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]])
          94 (53.41% of base) : 225076.dasm - mainMethod:checkIsIntCast(X`1[Int32])
          94 (53.41% of base) : 225075.dasm - mainMethod:checkIsStringCast(X`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]])
          94 (53.41% of base) : 225123.dasm - mainMethod:checkIsStringCast(X`1[[class_string, refTypesdynamic, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]])
          23 (52.27% of base) : 86234.dasm - C:N(System.Object):int
          13 (52.00% of base) : 210869.dasm - GenClass1b`1[Byte][System.Byte]:AsGenClass1a(System.Object):GenClass1a`1[Byte]:this
          19 (45.24% of base) : 235311.dasm - Tests:BoxIsInstUnbox6(System.__Canon):int
          19 (45.24% of base) : 235304.dasm - Tests:BoxIsInstUnbox5(System.__Canon):int
          13 (39.39% of base) : 210868.dasm - GenClass1b`1[Byte][System.Byte]:IsGenClass1a(System.Object):bool:this
          13 (39.39% of base) : 249362.dasm - F:IsIK(I`1[__Canon]):bool
          13 (39.39% of base) : 212259.dasm - RefStruct`1[Byte][System.Byte]:Equals(System.Object):bool:this
          20 (34.48% of base) : 56.dasm - System.Text.RegularExpressions.RegexNode:ChildCount():int:this
         105 (33.33% of base) : 233049.dasm - Driver`2[__Canon,__Canon][System.__Canon,System.__Canon]:CreateValue(System.__Canon):System.__Canon:this
          29 (32.58% of base) : 80680.dasm - Program:x64_JIT_Bug(Derived)
          13 (31.71% of base) : 247274.dasm - Tests:BoxIsInstBr5(System.__Canon):int
          13 (31.71% of base) : 247281.dasm - Tests:BoxIsInstBr6(System.__Canon):int
          38 (30.40% of base) : 252916.dasm - JitTest.TestClass:Test_LDLOC(System.Object,bool):bool

Top method improvements (percentages):
         -50 (-60.98% of base) : 85317.dasm - JitTest.TestClass:Main():int
         -27 (-58.70% of base) : 86380.dasm - X`1[Byte][System.Byte]:F():int
         -29 (-3.40% of base) : 60.dasm - System.Text.RegularExpressions.RegexNode:<ComputeMinLength>g__ComputeMinLength|87_0(System.Text.RegularExpressions.RegexNode,int):int
          -7 (-2.55% of base) : 84567.dasm - FiltCatch:main(System.String[]):int
        -120 (-0.57% of base) : 101903.dasm - Program:TestCase0014()
        -120 (-0.57% of base) : 101897.dasm - Program:TestCase0006()
        -120 (-0.57% of base) : 101893.dasm - Program:TestCase0002()
        -120 (-0.57% of base) : 101898.dasm - Program:TestCase0007()
        -120 (-0.57% of base) : 101894.dasm - Program:TestCase0003()
        -120 (-0.57% of base) : 101892.dasm - Program:TestCase0001()
        -120 (-0.57% of base) : 101906.dasm - Program:TestCase0017()
        -120 (-0.57% of base) : 101901.dasm - Program:TestCase0012()
        -120 (-0.57% of base) : 101900.dasm - Program:TestCase0011()
        -120 (-0.57% of base) : 101896.dasm - Program:TestCase0005()
        -120 (-0.57% of base) : 101902.dasm - Program:TestCase0013()
        -120 (-0.57% of base) : 101904.dasm - Program:TestCase0015()
        -120 (-0.57% of base) : 101905.dasm - Program:TestCase0016()
        -120 (-0.57% of base) : 101895.dasm - Program:TestCase0004()
        -120 (-0.57% of base) : 101899.dasm - Program:TestCase0008()
          -1 (-0.00% of base) : 167807.dasm - ReliabilityConfig:GetTestsToRun(System.String):this

168 total methods with Code Size differences (20 improved, 148 regressed), 0 unchanged.


libraries.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 2051540
Total bytes of diff: 2126131
Total bytes of delta: 74591 (3.64% of base)
Total relative delta: 238.15
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         688 : 170166.dasm (40.30% of base)
         660 : 170490.dasm (37.93% of base)
         650 : 170064.dasm (33.70% of base)
         526 : 142560.dasm (20.97% of base)
         453 : 170074.dasm (41.45% of base)
         432 : 113980.dasm (12.49% of base)
         412 : 170523.dasm (39.77% of base)
         364 : 143256.dasm (25.93% of base)
         358 : 129488.dasm (5.37% of base)
         339 : 143321.dasm (4.03% of base)
         332 : 170453.dasm (49.55% of base)
         328 : 113991.dasm (25.17% of base)
         322 : 170103.dasm (44.17% of base)
         321 : 208342.dasm (6.17% of base)
         288 : 149700.dasm (21.72% of base)
         265 : 149292.dasm (6.02% of base)
         247 : 170176.dasm (34.16% of base)
         245 : 150044.dasm (15.30% of base)
         236 : 114001.dasm (21.20% of base)
         226 : 170202.dasm (20.96% of base)

Top file improvements (bytes):
        -204 : 220803.dasm (-6.58% of base)
        -197 : 143203.dasm (-3.43% of base)
        -196 : 220593.dasm (-5.64% of base)
        -188 : 158422.dasm (-9.10% of base)
        -188 : 25380.dasm (-11.88% of base)
        -171 : 114008.dasm (-7.10% of base)
        -145 : 220754.dasm (-4.01% of base)
        -131 : 144863.dasm (-5.30% of base)
        -118 : 115371.dasm (-4.92% of base)
        -115 : 226772.dasm (-41.52% of base)
        -114 : 129402.dasm (-2.10% of base)
         -90 : 110624.dasm (-3.91% of base)
         -65 : 36874.dasm (-3.20% of base)
         -52 : 113829.dasm (-0.36% of base)
         -41 : 220913.dasm (-2.38% of base)
         -33 : 128764.dasm (-2.04% of base)
         -30 : 29493.dasm (-76.92% of base)
         -29 : 60.dasm (-3.40% of base)
         -26 : 77891.dasm (-28.26% of base)
         -21 : 208769.dasm (-1.30% of base)

2526 total files with Code Size differences (46 improved, 2480 regressed), 0 unchanged.

Top method regressions (bytes):
         688 (40.30% of base) : 170166.dasm - System.CodeDom.Compiler.CodeValidator:ValidateExpression(System.CodeDom.CodeExpression):this
         660 (37.93% of base) : 170490.dasm - Microsoft.CSharp.CSharpCodeGenerator:GenerateExpression(System.CodeDom.CodeExpression):this
         650 (33.70% of base) : 170064.dasm - System.CodeDom.Compiler.CodeGenerator:GenerateExpression(System.CodeDom.CodeExpression):this
         526 (20.97% of base) : 142560.dasm - System.Xml.Schema.Compiler:IsValidRestriction(System.Xml.Schema.XmlSchemaParticle,System.Xml.Schema.XmlSchemaParticle):bool:this
         453 (41.45% of base) : 170074.dasm - System.CodeDom.Compiler.CodeGenerator:GenerateStatement(System.CodeDom.CodeStatement):this
         432 (12.49% of base) : 113980.dasm - System.Data.XSDSchema:HandleDataSet(System.Xml.Schema.XmlSchemaElement,bool):this
         412 (39.77% of base) : 170523.dasm - Microsoft.CSharp.CSharpCodeGenerator:GenerateStatement(System.CodeDom.CodeStatement):this
         364 (25.93% of base) : 143256.dasm - System.Xml.Schema.SchemaCollectionCompiler:IsValidRestriction(System.Xml.Schema.XmlSchemaParticle,System.Xml.Schema.XmlSchemaParticle):bool:this
         358 ( 5.37% of base) : 129488.dasm - <EstablishSocks5TunnelAsync>d__14:MoveNext():this
         339 ( 4.03% of base) : 143321.dasm - System.Xml.Schema.SchemaCollectionPreprocessor:Preprocess(System.Xml.Schema.XmlSchema,System.String,int):this
         332 (49.55% of base) : 170453.dasm - Microsoft.CSharp.CSharpCodeGenerator:GenerateTypeMember(System.CodeDom.CodeTypeMember,System.CodeDom.CodeTypeDeclaration):this
         328 (25.17% of base) : 113991.dasm - System.Data.XSDSchema:CollectElementsAnnotations(System.Xml.Schema.XmlSchema,System.Collections.ArrayList):this
         322 (44.17% of base) : 170103.dasm - System.CodeDom.Compiler.CodeGenerator:GenerateTypeMember(System.CodeDom.CodeTypeMember,System.CodeDom.CodeTypeDeclaration):this
         321 ( 6.17% of base) : 208342.dasm - <UploadBitsAsync>d__152:MoveNext():this
         288 (21.72% of base) : 149700.dasm - System.Xml.Serialization.XmlSchemaObjectComparer:NameOf(System.Xml.Schema.XmlSchemaObject):System.Xml.XmlQualifiedName
         265 ( 6.02% of base) : 149292.dasm - System.Xml.Serialization.SchemaGraph:Depends(System.Xml.Schema.XmlSchemaObject,System.Collections.ArrayList):this
         247 (34.16% of base) : 170176.dasm - System.CodeDom.Compiler.CodeValidator:ValidateIdentifiers(System.CodeDom.CodeObject):this
         245 (15.30% of base) : 150044.dasm - System.Xml.Serialization.XmlAttributes:.ctor(System.Reflection.ICustomAttributeProvider):this
         236 (21.20% of base) : 114001.dasm - System.Data.XSDSchema:IsDatasetParticle(System.Xml.Schema.XmlSchemaParticle):bool:this
         226 (20.96% of base) : 170202.dasm - System.CodeDom.Compiler.CodeValidator:ValidateStatement(System.CodeDom.CodeStatement):this

Top method improvements (bytes):
        -204 (-6.58% of base) : 220803.dasm - System.Security.Cryptography.Xml.SignedInfo:LoadXml(System.Xml.XmlElement):this
        -197 (-3.43% of base) : 143203.dasm - System.Xml.Schema.Preprocessor:Preprocess(System.Xml.Schema.XmlSchema,System.String,System.Collections.ArrayList):this
        -196 (-5.64% of base) : 220593.dasm - System.Security.Cryptography.Xml.EncryptedKey:LoadXml(System.Xml.XmlElement):this
        -188 (-9.10% of base) : 158422.dasm - <DisposePendingDisposablesOnExceptionAsync>d__19:MoveNext():this
        -188 (-11.88% of base) : 25380.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:AddLookupSymbolsInfoInSingleBinder(Microsoft.CodeAnalysis.CSharp.LookupSymbolsInfo,int,Microsoft.CodeAnalysis.CSharp.Binder):this
        -171 (-7.10% of base) : 114008.dasm - System.Data.XSDSchema:HandleParticle(System.Xml.Schema.XmlSchemaParticle,System.Data.DataTable,System.Collections.ArrayList,bool):this
        -145 (-4.01% of base) : 220754.dasm - System.Security.Cryptography.Xml.Reference:CalculateHashValue(System.Xml.XmlDocument,System.Security.Cryptography.Xml.CanonicalXmlNodeList):System.Byte[]:this
        -131 (-5.30% of base) : 144863.dasm - System.Xml.Schema.XmlSchemaInference:AddAttribute(System.String,System.String,System.String,System.String,bool,System.Xml.Schema.XmlSchema,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaObjectTable):System.Xml.Schema.XmlSchemaAttribute:this
        -118 (-4.92% of base) : 115371.dasm - System.Data.DataTable:CloneTo(System.Data.DataTable,System.Data.DataSet,bool):System.Data.DataTable:this
        -115 (-41.52% of base) : 226772.dasm - System.Transactions.TransactionScope:SetCurrent(System.Transactions.Transaction):this
        -114 (-2.10% of base) : 129402.dasm - <SendAsync>d__4:MoveNext():this
         -90 (-3.91% of base) : 110624.dasm - <ReadContentFromAsync>d__1:MoveNext():this
         -65 (-3.20% of base) : 36874.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddSkippedSyntax(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,bool):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this
         -52 (-0.36% of base) : 113829.dasm - System.Data.XmlTreeGen:HandleTable(System.Data.DataTable,System.Xml.XmlDocument,System.Xml.XmlElement,bool):System.Xml.XmlElement:this
         -41 (-2.38% of base) : 220913.dasm - System.Security.Cryptography.Xml.Utils:GetPropagatedAttributes(System.Xml.XmlElement):System.Security.Cryptography.Xml.CanonicalXmlNodeList
         -33 (-2.04% of base) : 128764.dasm - <InitialFillAsync>d__93:MoveNext():this
         -30 (-76.92% of base) : 29493.dasm - Microsoft.CodeAnalysis.CSharp.LocalizableErrorArgument:ToString():System.String:this
         -29 (-3.40% of base) : 60.dasm - System.Text.RegularExpressions.RegexNode:<ComputeMinLength>g__ComputeMinLength|87_0(System.Text.RegularExpressions.RegexNode,int):int
         -26 (-28.26% of base) : 77891.dasm - Microsoft.CodeAnalysis.CodeAnalysisResourcesLocalizableErrorArgument:ToString():System.String:this
         -21 (-1.30% of base) : 208769.dasm - <EnsureBufferContainsAsync>d__79:MoveNext():this

Top method regressions (percentages):
         143 (105.93% of base) : 1542.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.Joint:GetHashCode(System.Collections.IEqualityComparer):int:this
          83 (69.75% of base) : 2143.dasm - Microsoft.FSharp.Control.AsyncResult`1[Int32][System.Int32]:Commit():int:this
          83 (69.17% of base) : 2149.dasm - Microsoft.FSharp.Control.AsyncResult`1[Int64][System.Int64]:Commit():long:this
          83 (69.17% of base) : 2139.dasm - Microsoft.FSharp.Control.AsyncResult`1[Byte][System.Byte]:Commit():ubyte:this
          83 (68.60% of base) : 2141.dasm - Microsoft.FSharp.Control.AsyncResult`1[Int16][System.Int16]:Commit():short:this
          83 (66.94% of base) : 2145.dasm - Microsoft.FSharp.Control.AsyncResult`1[Double][System.Double]:Commit():double:this
          28 (66.67% of base) : 52672.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:get_ITypeReferenceTypeDef():System.Reflection.Metadata.TypeDefinitionHandle:this
          23 (63.89% of base) : 10105.dasm - Step`1[Byte][System.Byte]:get_IsGoto():bool:this
          23 (63.89% of base) : 6193.dasm - ModuleDefinitionBindingResult`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:get_IsUnique():bool:this
          23 (63.89% of base) : 6195.dasm - ModuleDefinitionBindingResult`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:get_IsAmbiguous():bool:this
          23 (63.89% of base) : 127876.dasm - System.Net.ExceptionCheck:IsFatal(System.Exception):bool
          23 (63.89% of base) : 206527.dasm - System.Net.ExceptionCheck:IsFatal(System.Exception):bool
          23 (63.89% of base) : 10103.dasm - Step`1[Byte][System.Byte]:get_IsYield():bool:this
          23 (63.89% of base) : 203334.dasm - System.Net.ExceptionCheck:IsFatal(System.Exception):bool
          23 (63.89% of base) : 207248.dasm - System.Net.ExceptionCheck:IsFatal(System.Exception):bool
          23 (63.89% of base) : 3119.dasm - TransInnerResult:get_IsSelect():bool:this
          23 (63.89% of base) : 3121.dasm - TransInnerResult:get_IsOther():bool:this
          23 (63.89% of base) : 3123.dasm - TransInnerResult:get_IsSource():bool:this
          23 (63.89% of base) : 316.dasm - Microsoft.FSharp.Core.FSharpChoice`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:get_IsChoice1Of2():bool:this
          23 (63.89% of base) : 318.dasm - Microsoft.FSharp.Core.FSharpChoice`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:get_IsChoice2Of2():bool:this

Top method improvements (percentages):
         -30 (-76.92% of base) : 29493.dasm - Microsoft.CodeAnalysis.CSharp.LocalizableErrorArgument:ToString():System.String:this
        -115 (-41.52% of base) : 226772.dasm - System.Transactions.TransactionScope:SetCurrent(System.Transactions.Transaction):this
         -26 (-28.26% of base) : 77891.dasm - Microsoft.CodeAnalysis.CodeAnalysisResourcesLocalizableErrorArgument:ToString():System.String:this
        -188 (-11.88% of base) : 25380.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:AddLookupSymbolsInfoInSingleBinder(Microsoft.CodeAnalysis.CSharp.LookupSymbolsInfo,int,Microsoft.CodeAnalysis.CSharp.Binder):this
        -188 (-9.10% of base) : 158422.dasm - <DisposePendingDisposablesOnExceptionAsync>d__19:MoveNext():this
        -171 (-7.10% of base) : 114008.dasm - System.Data.XSDSchema:HandleParticle(System.Xml.Schema.XmlSchemaParticle,System.Data.DataTable,System.Collections.ArrayList,bool):this
        -204 (-6.58% of base) : 220803.dasm - System.Security.Cryptography.Xml.SignedInfo:LoadXml(System.Xml.XmlElement):this
        -196 (-5.64% of base) : 220593.dasm - System.Security.Cryptography.Xml.EncryptedKey:LoadXml(System.Xml.XmlElement):this
        -131 (-5.30% of base) : 144863.dasm - System.Xml.Schema.XmlSchemaInference:AddAttribute(System.String,System.String,System.String,System.String,bool,System.Xml.Schema.XmlSchema,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaObjectTable):System.Xml.Schema.XmlSchemaAttribute:this
        -118 (-4.92% of base) : 115371.dasm - System.Data.DataTable:CloneTo(System.Data.DataTable,System.Data.DataSet,bool):System.Data.DataTable:this
        -145 (-4.01% of base) : 220754.dasm - System.Security.Cryptography.Xml.Reference:CalculateHashValue(System.Xml.XmlDocument,System.Security.Cryptography.Xml.CanonicalXmlNodeList):System.Byte[]:this
         -90 (-3.91% of base) : 110624.dasm - <ReadContentFromAsync>d__1:MoveNext():this
          -9 (-3.45% of base) : 210687.dasm - System.Xml.Linq.XStreamingElement:Add(System.Object):this
        -197 (-3.43% of base) : 143203.dasm - System.Xml.Schema.Preprocessor:Preprocess(System.Xml.Schema.XmlSchema,System.String,System.Collections.ArrayList):this
         -29 (-3.40% of base) : 60.dasm - System.Text.RegularExpressions.RegexNode:<ComputeMinLength>g__ComputeMinLength|87_0(System.Text.RegularExpressions.RegexNode,int):int
         -65 (-3.20% of base) : 36874.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddSkippedSyntax(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,bool):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this
         -11 (-2.41% of base) : 51754.dasm - Microsoft.CodeAnalysis.VisualBasic.ExecutableCodeBinder:AddLookupSymbolsInfoInSingleBinder(Microsoft.CodeAnalysis.VisualBasic.LookupSymbolsInfo,int,Microsoft.CodeAnalysis.VisualBasic.Binder):this
         -41 (-2.38% of base) : 220913.dasm - System.Security.Cryptography.Xml.Utils:GetPropagatedAttributes(System.Xml.XmlElement):System.Security.Cryptography.Xml.CanonicalXmlNodeList
        -114 (-2.10% of base) : 129402.dasm - <SendAsync>d__4:MoveNext():this
         -33 (-2.04% of base) : 128764.dasm - <InitialFillAsync>d__93:MoveNext():this

2526 total methods with Code Size differences (46 improved, 2480 regressed), 0 unchanged.


libraries_tests.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 3360309
Total bytes of diff: 3460121
Total bytes of delta: 99812 (2.97% of base)
Total relative delta: 251.90
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         531 : 1221.dasm (74.16% of base)
         477 : 305089.dasm (7.55% of base)
         395 : 305087.dasm (6.12% of base)
         312 : 1315.dasm (24.22% of base)
         286 : 4927.dasm (31.78% of base)
         264 : 320091.dasm (3.58% of base)
         264 : 320095.dasm (3.58% of base)
         264 : 320150.dasm (3.58% of base)
         262 : 185897.dasm (9.28% of base)
         252 : 235554.dasm (30.00% of base)
         244 : 320152.dasm (3.27% of base)
         244 : 320093.dasm (3.28% of base)
         244 : 320097.dasm (3.28% of base)
         231 : 195561.dasm (3.04% of base)
         229 : 295445.dasm (4.47% of base)
         229 : 295447.dasm (4.47% of base)
         229 : 297705.dasm (4.47% of base)
         229 : 297707.dasm (4.47% of base)
         227 : 319378.dasm (5.98% of base)
         225 : 227594.dasm (6.05% of base)

Top file improvements (bytes):
       -1170 : 319918.dasm (-16.46% of base)
        -276 : 259615.dasm (-13.54% of base)
        -262 : 22702.dasm (-12.47% of base)
        -251 : 68462.dasm (-2.26% of base)
        -247 : 185823.dasm (-17.37% of base)
        -225 : 19758.dasm (-10.87% of base)
        -140 : 189970.dasm (-0.95% of base)
        -126 : 259617.dasm (-3.70% of base)
        -126 : 68892.dasm (-0.86% of base)
        -107 : 219139.dasm (-75.89% of base)
         -87 : 185695.dasm (-4.55% of base)
         -87 : 185104.dasm (-4.79% of base)
         -87 : 185932.dasm (-5.34% of base)
         -86 : 326332.dasm (-4.83% of base)
         -85 : 185841.dasm (-3.46% of base)
         -83 : 254384.dasm (-2.87% of base)
         -79 : 185779.dasm (-7.79% of base)
         -76 : 185804.dasm (-10.26% of base)
         -74 : 323037.dasm (-5.46% of base)
         -73 : 323256.dasm (-56.15% of base)

3353 total files with Code Size differences (55 improved, 3298 regressed), 4 unchanged.

Top method regressions (bytes):
         531 (74.16% of base) : 1221.dasm - Microsoft.Build.Logging.EventArgsDispatcher:Dispatch(Microsoft.Build.Framework.BuildEventArgs):this
         477 ( 7.55% of base) : 305089.dasm - <<Read_ConnectionAbortedByUser_Throws>b__22_0>d:MoveNext():this
         395 ( 6.12% of base) : 305087.dasm - <<Read_ConnectionAbortedByPeer_Throws>b__21_0>d:MoveNext():this
         312 (24.22% of base) : 1315.dasm - Microsoft.Build.Logging.BuildEventArgsWriter:Write(Microsoft.Build.Framework.BuildEventArgs):this
         286 (31.78% of base) : 4927.dasm - Microsoft.Build.BackEnd.Logging.EventSourceSink:Consume(Microsoft.Build.Framework.BuildEventArgs):this
         264 ( 3.58% of base) : 320091.dasm - <<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>g__TaskReturningMethod|23_0>d:MoveNext():this
         264 ( 3.58% of base) : 320095.dasm - <<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>g__ValueTaskReturningMethod|23_2>d:MoveNext():this
         264 ( 3.58% of base) : 320150.dasm - <<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>g__ValueTaskReturningMethod|23_0>d:MoveNext():this
         262 ( 9.28% of base) : 185897.dasm - System.Net.Http.Tests.StringWithQualityHeaderValueTest:GetStringWithQualityLength_DifferentValidScenarios_AllReturnNonZero():this
         252 (30.00% of base) : 235554.dasm - CXmlCache:Load(System.Xml.XmlReader):bool:this
         244 ( 3.27% of base) : 320152.dasm - <<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>g__ValueTaskInt32ReturningMethod|23_1>d:MoveNext():this
         244 ( 3.28% of base) : 320093.dasm - <<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>g__TaskInt32ReturningMethod|23_1>d:MoveNext():this
         244 ( 3.28% of base) : 320097.dasm - <<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>g__ValueTaskInt32ReturningMethod|23_3>d:MoveNext():this
         231 ( 3.04% of base) : 195561.dasm - <ConnectAsync_DnsEndPoint_Success>d__9:MoveNext():this
         229 ( 4.47% of base) : 295445.dasm - <ReadMemoryAsync_Success>d__17:MoveNext():this
         229 ( 4.47% of base) : 295447.dasm - <ReadBlockMemoryAsync_Success>d__18:MoveNext():this
         229 ( 4.47% of base) : 297705.dasm - <ReadMemoryAsync_Success>d__17:MoveNext():this
         229 ( 4.47% of base) : 297707.dasm - <ReadBlockMemoryAsync_Success>d__18:MoveNext():this
         227 ( 5.98% of base) : 319378.dasm - <ReadAllAsync_MultipleEnumerationsToEnd>d__87:MoveNext():this
         225 ( 6.05% of base) : 227594.dasm - <ReceiveAllAsync_MultipleEnumerationsToEnd>d__6:MoveNext():this

Top method improvements (bytes):
       -1170 (-16.46% of base) : 319918.dasm - System.Threading.Tasks.Tests.ValueTaskTests:Generic_ToString_Success():this
        -276 (-13.54% of base) : 259615.dasm - Microsoft.DotNet.ProjectModel.ProjectReader:BuildTargetFrameworksAndConfigurations(Microsoft.DotNet.ProjectModel.Project,Newtonsoft.Json.Linq.JObject):this
        -262 (-12.47% of base) : 22702.dasm - <BuildDeclarationCompilationFromScratchAsync>d__26:MoveNext():this
        -251 (-2.26% of base) : 68462.dasm - <ProcessSocks5Request>d__16:MoveNext():this
        -247 (-17.37% of base) : 185823.dasm - System.Net.Http.Tests.RangeConditionHeaderValueTest:Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions():this
        -225 (-10.87% of base) : 19758.dasm - <GetWriteTaskAsync>d__77`1[Byte][System.Byte]:MoveNext():this
        -140 (-0.95% of base) : 189970.dasm - <<ReadAsStreamAsync_HandlerProducesWellBehavedResponseStream>b__0>d:MoveNext():this
        -126 (-3.70% of base) : 259617.dasm - Microsoft.DotNet.ProjectModel.ProjectReader:GetCompilationOptions(Newtonsoft.Json.Linq.JObject,Microsoft.DotNet.ProjectModel.Project):Microsoft.DotNet.ProjectModel.CommonCompilerOptions
        -126 (-0.86% of base) : 68892.dasm - <<ReadAsStreamAsync_HandlerProducesWellBehavedResponseStream>b__0>d:MoveNext():this
        -107 (-75.89% of base) : 219139.dasm - <>c__DisplayClass1_0:<Add_NullDataContractExtension_ThrowsArgumentNullException>b__0():this
         -87 (-4.55% of base) : 185695.dasm - System.Net.Http.Tests.MediaTypeHeaderValueTest:Equals_UseMediaTypeWithAndWithoutParameters_EqualOrNotEqualNoExceptions():this
         -87 (-4.79% of base) : 185104.dasm - System.Net.Http.Tests.ContentDispositionHeaderValueTest:Equals_UseContentDispositionWithAndWithoutParameters_EqualOrNotEqualNoExceptions():this
         -87 (-5.34% of base) : 185932.dasm - System.Net.Http.Tests.TransferCodingHeaderValueTest:Equals_UseTransferCodingWithAndWithoutParameters_EqualOrNotEqualNoExceptions():this
         -86 (-4.83% of base) : 326332.dasm - TCReadToNextSibling:v3():this
         -85 (-3.46% of base) : 185841.dasm - System.Net.Http.Tests.RangeHeaderValueTest:Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions():this
         -83 (-2.87% of base) : 254384.dasm - EmittingVisitor:EmitAssign(System.Object,System.Type,System.Object[],System.Reflection.Emit.ILGenerator,ClosureInfo):bool
         -79 (-7.79% of base) : 185779.dasm - System.Net.Http.Tests.ProductHeaderValueTest:Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions():this
         -76 (-10.26% of base) : 185804.dasm - System.Net.Http.Tests.ProductInfoHeaderValueTest:Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions():this
         -74 (-5.46% of base) : 323037.dasm - System.Transactions.Tests.NonMsdtcPromoterTests:TestCase_OutcomeRegistration(bool)
         -73 (-56.15% of base) : 323256.dasm - PromotedTx:Finalize():this

Top method regressions (percentages):
          57 (139.02% of base) : 54955.dasm - System.Linq.Expressions.Tests.C:Equals(System.Object):bool:this
         531 (74.16% of base) : 1221.dasm - Microsoft.Build.Logging.EventArgsDispatcher:Dispatch(Microsoft.Build.Framework.BuildEventArgs):this
          29 (69.05% of base) : 134326.dasm - NuGet.Protocol.Core.Types.SourceRepository:GetFeedType(NuGet.Configuration.PackageSource):int
          23 (63.89% of base) : 105096.dasm - FsCheck.TestResult:get_IsExhausted():bool:this
          23 (63.89% of base) : 105092.dasm - FsCheck.TestResult:get_IsTrue():bool:this
          23 (63.89% of base) : 301903.dasm - System.Net.ExceptionCheck:IsFatal(System.Exception):bool
          23 (63.89% of base) : 105094.dasm - FsCheck.TestResult:get_IsFalse():bool:this
          29 (63.04% of base) : 271805.dasm - NuGet.Versioning.VersionComparer:GetRevisionOrZero(NuGet.Versioning.SemanticVersion):int
          24 (54.55% of base) : 4698.dasm - Microsoft.Build.BackEnd.AssemblyTaskFactory:CleanupTask(Microsoft.Build.Framework.ITask):this
          47 (48.96% of base) : 235377.dasm - System.Xml.Tests.SimpleWrapperNavigator:IsSamePosition(System.Xml.XPath.XPathNavigator):bool:this
          82 (47.95% of base) : 12605.dasm - Microsoft.CodeAnalysis.Shared.Utilities.IOUtilities:IsNormalIOException(System.Exception):bool
          21 (47.73% of base) : 237975.dasm - System.Data.Common.DbConnectionPoolKey:Equals(System.Object):bool:this
          21 (47.73% of base) : 242291.dasm - System.Data.Common.DbConnectionPoolKey:Equals(System.Object):bool:this
          13 (46.43% of base) : 305480.dasm - System.Net.Security.SecureChannel:FindCertificateWithPrivateKey(System.Object,bool,System.Security.Cryptography.X509Certificates.X509Certificate):System.Security.Cryptography.X509Certificates.X509Certificate2
          23 (46.00% of base) : 12436.dasm - Microsoft.CodeAnalysis.SolutionCrawler.IIncrementalAnalyzerExtensions:GetOverriddenBackgroundAnalysisScope(Microsoft.CodeAnalysis.SolutionCrawler.IIncrementalAnalyzer,Microsoft.CodeAnalysis.Options.OptionSet,int):int
          44 (45.83% of base) : 276032.dasm - StructureMap.Pipeline.DependencyCollection:Get(System.String):System.Object:this
          13 (44.83% of base) : 102177.dasm - FastExpressionCompiler.LightExpression.MemberInitExpression:get_NewExpression():FastExpressionCompiler.LightExpression.NewExpression:this
          13 (44.83% of base) : 253515.dasm - LamarCompiler.Util.MemberInitExpressionInfo:get_NewExpressionInfo():LamarCompiler.Util.NewExpressionInfo:this
          13 (44.83% of base) : 331654.dasm - Microsoft.Test.ModuleCore.TestCase:get_Variation():Microsoft.Test.ModuleCore.TestVariation:this
          25 (43.86% of base) : 186355.dasm - System.Net.Http.Headers.HttpHeaders:<GetValueCount>g__Count|65_0(System.Object):int

Top method improvements (percentages):
        -107 (-75.89% of base) : 219139.dasm - <>c__DisplayClass1_0:<Add_NullDataContractExtension_ThrowsArgumentNullException>b__0():this
         -73 (-56.15% of base) : 323256.dasm - PromotedTx:Finalize():this
         -52 (-52.00% of base) : 244205.dasm - System.Data.SqlClient.TdsParserStateObject:RemoveOwner():this
         -52 (-52.00% of base) : 239905.dasm - System.Data.SqlClient.TdsParserStateObject:RemoveOwner():this
         -67 (-42.41% of base) : 244049.dasm - System.Data.SqlClient.TdsParser:PutSession(System.Data.SqlClient.TdsParserStateObject):this
         -67 (-42.41% of base) : 239748.dasm - System.Data.SqlClient.TdsParser:PutSession(System.Data.SqlClient.TdsParserStateObject):this
         -54 (-36.99% of base) : 7236.dasm - <>c:<Microsoft.Build.BackEnd.ITranslatable.Translate>b__48_0(int):System.Collections.Generic.IDictionary`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.ValueTuple`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.Build.Construction.ElementLocation, Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]:this
        -247 (-17.37% of base) : 185823.dasm - System.Net.Http.Tests.RangeConditionHeaderValueTest:Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions():this
       -1170 (-16.46% of base) : 319918.dasm - System.Threading.Tasks.Tests.ValueTaskTests:Generic_ToString_Success():this
        -276 (-13.54% of base) : 259615.dasm - Microsoft.DotNet.ProjectModel.ProjectReader:BuildTargetFrameworksAndConfigurations(Microsoft.DotNet.ProjectModel.Project,Newtonsoft.Json.Linq.JObject):this
        -262 (-12.47% of base) : 22702.dasm - <BuildDeclarationCompilationFromScratchAsync>d__26:MoveNext():this
        -225 (-10.87% of base) : 19758.dasm - <GetWriteTaskAsync>d__77`1[Byte][System.Byte]:MoveNext():this
         -76 (-10.26% of base) : 185804.dasm - System.Net.Http.Tests.ProductInfoHeaderValueTest:Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions():this
         -67 (-8.41% of base) : 323262.dasm - <>c__DisplayClass42_0:<TestCase_TransactionTimeout>b__0():this
         -58 (-7.95% of base) : 185151.dasm - System.Net.Http.Tests.EntityTagHeaderValueTest:Equals_UseSameAndDifferentETags_EqualOrNotEqualNoExceptions():this
         -79 (-7.79% of base) : 185779.dasm - System.Net.Http.Tests.ProductHeaderValueTest:Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions():this
         -63 (-7.11% of base) : 185759.dasm - System.Net.Http.Tests.NameValueWithParametersHeaderValueTest:Equals_ValuesUseDifferentValues_ValuesAreEqualOrDifferentAccordingToRfc():this
         -67 (-5.85% of base) : 323036.dasm - System.Transactions.Tests.NonMsdtcPromoterTests:TestCase_DisposeCommittableTransaction(bool)
         -74 (-5.46% of base) : 323037.dasm - System.Transactions.Tests.NonMsdtcPromoterTests:TestCase_OutcomeRegistration(bool)
         -87 (-5.34% of base) : 185932.dasm - System.Net.Http.Tests.TransferCodingHeaderValueTest:Equals_UseTransferCodingWithAndWithoutParameters_EqualOrNotEqualNoExceptions():this

3353 total methods with Code Size differences (55 improved, 3298 regressed), 4 unchanged.


@EgorBo EgorBo force-pushed the jit-partial-expand-casts branch from 7f6ebc5 to e0dfe3a Compare July 18, 2021 15:53
@EgorBo EgorBo force-pushed the jit-partial-expand-casts branch from e0dfe3a to 3421ec3 Compare July 18, 2021 16:01
@EgorBo
Copy link
Member Author

EgorBo commented Jul 19, 2021

Closing in favor of a proper fix for #55325

@EgorBo EgorBo closed this Jul 19, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Aug 18, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant