Skip to content

Fix underestimation of temps size #58969

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 1 commit into from
Sep 23, 2021
Merged

Conversation

jakobbotsch
Copy link
Member

It was possible for us to underestimate the size of temps required. This
happened because we used the state of the frame layout to check if the
size of temps was computed and that check was wrong. This could lead us
to make different decisions about which registers needed to be saved in
the prolog and epilog on ARM32. In particular, if the frame size was
around the size where a stack probe is necessary, this could be
possible.

There are also other comments that suggest that this could result in
failure while encoding instructions that reference the stack locals.

Fix #58293

cc @dotnet/jit-contrib

It was possible for us to underestimate the size of temps required. This
happened because we used the state of the frame layout to check if the
size of temps was computed and that check was wrong. This could lead us
to make different decisions about which registers needed to be saved in
the prolog and epilog on ARM32. In particular, if the frame size was
around the size where a stack probe is necessary, this could be
possible.

There are also other comments that suggest that this could result in
failure while encoding instructions that reference the stack locals.

Fix dotnet#58293
@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 10, 2021
@ghost
Copy link

ghost commented Sep 10, 2021

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

Issue Details

It was possible for us to underestimate the size of temps required. This
happened because we used the state of the frame layout to check if the
size of temps was computed and that check was wrong. This could lead us
to make different decisions about which registers needed to be saved in
the prolog and epilog on ARM32. In particular, if the frame size was
around the size where a stack probe is necessary, this could be
possible.

There are also other comments that suggest that this could result in
failure while encoding instructions that reference the stack locals.

Fix #58293

cc @dotnet/jit-contrib

Author: jakobbotsch
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@jakobbotsch
Copy link
Member Author

Some sizable ARM32 diffs. The diffs look to be because the different frame size seen by RA leads to some different spilling choices.

coreclr_tests.pmi.Linux.arm.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 127888
Total bytes of diff: 127914
Total bytes of delta: 26 (0.02% of base)
Total relative delta: 0.04
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
          16 : 227363.dasm (1.02% of base)
          12 : 204845.dasm (0.87% of base)
           8 : 215875.dasm (1.54% of base)
           8 : 206383.dasm (1.50% of base)
           8 : 83381.dasm (1.27% of base)
           6 : 208883.dasm (0.56% of base)
           6 : 224761.dasm (0.85% of base)
           6 : 2633.dasm (1.85% of base)
           4 : 175714.dasm (1.39% of base)
           4 : 233451.dasm (0.72% of base)
           4 : 180440.dasm (1.39% of base)
           4 : 171292.dasm (1.82% of base)
           4 : 186720.dasm (1.39% of base)
           4 : 206582.dasm (0.51% of base)

Top file improvements (bytes):
         -10 : 233022.dasm (-1.12% of base)
          -8 : 84721.dasm (-0.91% of base)
          -8 : 112194.dasm (-1.82% of base)
          -8 : 112192.dasm (-1.80% of base)
          -6 : 85277.dasm (-0.58% of base)
          -4 : 229329.dasm (-0.47% of base)
          -4 : 219522.dasm (-0.90% of base)
          -4 : 209128.dasm (-0.53% of base)
          -4 : 220384.dasm (-0.81% of base)
          -4 : 219524.dasm (-0.88% of base)
          -2 : 112190.dasm (-0.80% of base)
          -2 : 217997.dasm (-0.56% of base)
          -2 : 112188.dasm (-0.79% of base)
          -2 : 160648.dasm (-0.34% of base)

28 total files with Code Size differences (14 improved, 14 regressed), 300 unchanged.

Top method regressions (bytes):
          16 ( 1.02% of base) : 227363.dasm - PropsArIList:Main():int
          12 ( 0.87% of base) : 204845.dasm - AsAnyTests:TestUnicodeStringArray()
           8 ( 1.50% of base) : 206383.dasm - JIT.HardwareIntrinsics.X86.ScalarTernOpBinResTest__MultiplyNoFlagsUInt64:RunReflectionScenario_UnsafeRead():this
           8 ( 1.54% of base) : 215875.dasm - SciMark2.kernel:benchmarkLU()
           8 ( 1.27% of base) : 83381.dasm - System.Reflection.PortableExecutable.PEReader:TryOpenAssociatedPortablePdb(System.String,System.Func`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.IO.Stream, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],byref,byref):bool:this
           6 ( 0.56% of base) : 208883.dasm - PartialCompactionTest.PartialCompactionTest:RunTest(System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]])
           6 ( 1.85% of base) : 2633.dasm - Sys:GetGroups():System.UInt32[]
           6 ( 0.85% of base) : 224761.dasm - Test:TestCore1(bool):bool
           4 ( 1.82% of base) : 171292.dasm - ABIStress.Gen:GenConstantVector(System.Random):double
           4 ( 1.39% of base) : 175714.dasm - IntelHardwareIntrinsicTest.TestTableScalarSse2`2[Byte,Int64][System.Byte,System.Int64]:CheckResult(IntelHardwareIntrinsicTest.CheckMethodEightOne`2[Byte,Int64]):bool:this
           4 ( 1.39% of base) : 180440.dasm - IntelHardwareIntrinsicTest.TestTableScalarSse2`2[Byte,Int64][System.Byte,System.Int64]:CheckResult(IntelHardwareIntrinsicTest.CheckMethodEightOne`2[Byte,Int64]):bool:this
           4 ( 1.39% of base) : 186720.dasm - IntelHardwareIntrinsicTest.TestTableScalarSse2`2[Byte,Int64][System.Byte,System.Int64]:CheckResult(IntelHardwareIntrinsicTest.CheckMethodEightOne`2[Byte,Int64]):bool:this
           4 ( 0.72% of base) : 233451.dasm - Runtime_45557.ObjectBinderSnapshot:.ctor(System.Collections.Generic.Dictionary`2[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.List`1[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.List`1[[System.Func`2[[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):this
           4 ( 0.51% of base) : 206582.dasm - SoDBench.SizeReportingNode:.ctor(System.IO.DirectoryInfo,System.Nullable`1[Int32]):this

Top method improvements (bytes):
         -10 (-1.12% of base) : 233022.dasm - Complex2_Array_Test:Main(System.String[]):int
          -8 (-0.91% of base) : 84721.dasm - Complex2_Array_Test:Main(System.String[]):int
          -8 (-1.82% of base) : 112194.dasm - ILStubClass:IL_STUB_PInvoke(bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool):int
          -8 (-1.80% of base) : 112192.dasm - ILStubClass:IL_STUB_PInvoke(bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,int)
          -6 (-0.58% of base) : 85277.dasm - <Module>:Main():int
          -4 (-0.53% of base) : 209128.dasm - AssemblyDependencyResolverTests.TestBase:RunTestsForInstance(System.Object):this
          -4 (-0.81% of base) : 220384.dasm - ILStubClass:IL_STUB_PInvoke(byref,int,byref)
          -4 (-0.88% of base) : 219524.dasm - KeepAliveBoxFieldsTest:TestClassWrapperOneBlockInner(Class`1[ComplexStructWithExplicitLayout],Class`1[SimpleStructWithExplicitLayout],Class`1[SimpleStructWithAutoLayout],Class`1[SingleObjectStruct],Class`1[StructWithoutObjectFields],Class`1[Nullable`1])
          -4 (-0.90% of base) : 219522.dasm - KeepAliveBoxFieldsTest:TestExplicitByrefsOneBlockInner(byref,byref,byref,byref,byref,byref)
          -4 (-0.47% of base) : 229329.dasm - ReproTwo:Bug(int):bool
          -2 (-0.80% of base) : 112190.dasm - ILStubClass:IL_STUB_PInvoke(ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort):int
          -2 (-0.79% of base) : 112188.dasm - ILStubClass:IL_STUB_PInvoke(ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,int)
          -2 (-0.34% of base) : 160648.dasm - Internal.IL.ILImporter:ImportStoreVar(int,bool):this
          -2 (-0.56% of base) : 217997.dasm - MemCheck:ParseSizeMBArgument(System.Collections.Generic.IReadOnlyList`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):int

Top method regressions (percentages):
           6 ( 1.85% of base) : 2633.dasm - Sys:GetGroups():System.UInt32[]
           4 ( 1.82% of base) : 171292.dasm - ABIStress.Gen:GenConstantVector(System.Random):double
           8 ( 1.54% of base) : 215875.dasm - SciMark2.kernel:benchmarkLU()
           8 ( 1.50% of base) : 206383.dasm - JIT.HardwareIntrinsics.X86.ScalarTernOpBinResTest__MultiplyNoFlagsUInt64:RunReflectionScenario_UnsafeRead():this
           4 ( 1.39% of base) : 175714.dasm - IntelHardwareIntrinsicTest.TestTableScalarSse2`2[Byte,Int64][System.Byte,System.Int64]:CheckResult(IntelHardwareIntrinsicTest.CheckMethodEightOne`2[Byte,Int64]):bool:this
           4 ( 1.39% of base) : 180440.dasm - IntelHardwareIntrinsicTest.TestTableScalarSse2`2[Byte,Int64][System.Byte,System.Int64]:CheckResult(IntelHardwareIntrinsicTest.CheckMethodEightOne`2[Byte,Int64]):bool:this
           4 ( 1.39% of base) : 186720.dasm - IntelHardwareIntrinsicTest.TestTableScalarSse2`2[Byte,Int64][System.Byte,System.Int64]:CheckResult(IntelHardwareIntrinsicTest.CheckMethodEightOne`2[Byte,Int64]):bool:this
           8 ( 1.27% of base) : 83381.dasm - System.Reflection.PortableExecutable.PEReader:TryOpenAssociatedPortablePdb(System.String,System.Func`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.IO.Stream, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],byref,byref):bool:this
          16 ( 1.02% of base) : 227363.dasm - PropsArIList:Main():int
          12 ( 0.87% of base) : 204845.dasm - AsAnyTests:TestUnicodeStringArray()
           6 ( 0.85% of base) : 224761.dasm - Test:TestCore1(bool):bool
           4 ( 0.72% of base) : 233451.dasm - Runtime_45557.ObjectBinderSnapshot:.ctor(System.Collections.Generic.Dictionary`2[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.List`1[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.List`1[[System.Func`2[[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):this
           6 ( 0.56% of base) : 208883.dasm - PartialCompactionTest.PartialCompactionTest:RunTest(System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]])
           4 ( 0.51% of base) : 206582.dasm - SoDBench.SizeReportingNode:.ctor(System.IO.DirectoryInfo,System.Nullable`1[Int32]):this

Top method improvements (percentages):
          -8 (-1.82% of base) : 112194.dasm - ILStubClass:IL_STUB_PInvoke(bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool):int
          -8 (-1.80% of base) : 112192.dasm - ILStubClass:IL_STUB_PInvoke(bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,int)
         -10 (-1.12% of base) : 233022.dasm - Complex2_Array_Test:Main(System.String[]):int
          -8 (-0.91% of base) : 84721.dasm - Complex2_Array_Test:Main(System.String[]):int
          -4 (-0.90% of base) : 219522.dasm - KeepAliveBoxFieldsTest:TestExplicitByrefsOneBlockInner(byref,byref,byref,byref,byref,byref)
          -4 (-0.88% of base) : 219524.dasm - KeepAliveBoxFieldsTest:TestClassWrapperOneBlockInner(Class`1[ComplexStructWithExplicitLayout],Class`1[SimpleStructWithExplicitLayout],Class`1[SimpleStructWithAutoLayout],Class`1[SingleObjectStruct],Class`1[StructWithoutObjectFields],Class`1[Nullable`1])
          -4 (-0.81% of base) : 220384.dasm - ILStubClass:IL_STUB_PInvoke(byref,int,byref)
          -2 (-0.80% of base) : 112190.dasm - ILStubClass:IL_STUB_PInvoke(ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort):int
          -2 (-0.79% of base) : 112188.dasm - ILStubClass:IL_STUB_PInvoke(ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,ushort,int)
          -6 (-0.58% of base) : 85277.dasm - <Module>:Main():int
          -2 (-0.56% of base) : 217997.dasm - MemCheck:ParseSizeMBArgument(System.Collections.Generic.IReadOnlyList`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):int
          -4 (-0.53% of base) : 209128.dasm - AssemblyDependencyResolverTests.TestBase:RunTestsForInstance(System.Object):this
          -4 (-0.47% of base) : 229329.dasm - ReproTwo:Bug(int):bool
          -2 (-0.34% of base) : 160648.dasm - Internal.IL.ILImporter:ImportStoreVar(int,bool):this

28 total methods with Code Size differences (14 improved, 14 regressed), 300 unchanged.


libraries.crossgen2.Linux.arm.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 440338
Total bytes of diff: 441640
Total bytes of delta: 1302 (0.30% of base)
Total relative delta: 1.67
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
          72 : 66698.dasm (3.45% of base)
          56 : 95242.dasm (5.46% of base)
          40 : 156041.dasm (2.53% of base)
          36 : 42478.dasm (1.74% of base)
          36 : 197240.dasm (2.62% of base)
          32 : 147852.dasm (12.12% of base)
          28 : 146959.dasm (11.86% of base)
          28 : 146864.dasm (10.94% of base)
          26 : 25771.dasm (1.89% of base)
          26 : 50359.dasm (3.48% of base)
          26 : 116301.dasm (1.64% of base)
          26 : 57534.dasm (4.13% of base)
          26 : 162106.dasm (3.58% of base)
          24 : 169152.dasm (2.21% of base)
          24 : 156011.dasm (4.72% of base)
          24 : 42262.dasm (1.43% of base)
          22 : 96061.dasm (1.30% of base)
          22 : 47883.dasm (1.36% of base)
          20 : 91442.dasm (1.39% of base)
          20 : 154327.dasm (1.81% of base)

Top file improvements (bytes):
         -34 : 33285.dasm (-2.17% of base)
         -20 : 130071.dasm (-1.80% of base)
         -18 : 160386.dasm (-1.59% of base)
         -16 : 129893.dasm (-1.57% of base)
         -12 : 130161.dasm (-1.92% of base)
         -10 : 117417.dasm (-1.09% of base)
         -10 : 166012.dasm (-0.43% of base)
         -10 : 84750.dasm (-1.01% of base)
         -10 : 87820.dasm (-0.87% of base)
          -8 : 177838.dasm (-0.84% of base)
          -8 : 194748.dasm (-0.67% of base)
          -8 : 79385.dasm (-0.52% of base)
          -8 : 116199.dasm (-0.68% of base)
          -8 : 170134.dasm (-1.23% of base)
          -8 : 80264.dasm (-0.84% of base)
          -8 : 145648.dasm (-0.59% of base)
          -8 : 44201.dasm (-0.84% of base)
          -6 : 32090.dasm (-1.03% of base)
          -6 : 32091.dasm (-1.03% of base)
          -6 : 155517.dasm (-0.73% of base)

239 total files with Code Size differences (61 improved, 178 regressed), 297 unchanged.

Top method regressions (bytes):
          72 ( 3.45% of base) : 66698.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this
          56 ( 5.46% of base) : 95242.dasm - Internal.Cryptography.Pal.UnixPkcs12Reader:BuildCertsWithKeys(System.ReadOnlySpan`1[System.Char],System.Security.Cryptography.Asn1.Pkcs12.CertBagAsn[],System.Security.Cryptography.Asn1.AttributeAsn[][],Internal.Cryptography.Pal.UnixPkcs12Reader+CertAndKey[],int,System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn[],Internal.Cryptography.Pal.UnixPkcs12Reader+RentedSubjectPublicKeyInfo[],System.Security.Cryptography.AsymmetricAlgorithm[],int):this
          40 ( 2.53% of base) : 156041.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:ConvertBooleanOperator(Microsoft.CodeAnalysis.VisualBasic.BoundBinaryOperator):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
          36 ( 1.74% of base) : 42478.dasm - System.Data.XmlDataLoader:LoadRowData(System.Data.DataRow,System.Xml.XmlElement):this
          36 ( 2.62% of base) : 197240.dasm - System.DirectoryServices.Protocols.BerConverter:TryDecode(System.String,System.Byte[],byref):System.Object[]
          32 (12.12% of base) : 147852.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax:.ctor(ushort,Microsoft.CodeAnalysis.DiagnosticInfo[],Microsoft.CodeAnalysis.SyntaxAnnotation[],Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.IdentifierNameSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.SimpleAsClauseSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchFilterClauseSyntax):this
          28 (11.86% of base) : 146959.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.AggregateClauseSyntax:.ctor(ushort,Microsoft.CodeAnalysis.DiagnosticInfo[],Microsoft.CodeAnalysis.SyntaxAnnotation[],Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax,Microsoft.CodeAnalysis.SyntaxNode):this
          28 (10.94% of base) : 146864.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SimpleJoinClauseSyntax:.ctor(ushort,Microsoft.CodeAnalysis.DiagnosticInfo[],Microsoft.CodeAnalysis.SyntaxAnnotation[],Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax,Microsoft.CodeAnalysis.SyntaxNode):this
          26 ( 1.64% of base) : 116301.dasm - Microsoft.CodeAnalysis.CSharp.UnboundLambdaState:GenerateSummaryErrors(Microsoft.CodeAnalysis.DiagnosticBag):bool:this
          26 ( 3.58% of base) : 162106.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindDoLoop(Microsoft.CodeAnalysis.VisualBasic.Syntax.DoLoopBlockSyntax,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundStatement:this
          26 ( 3.48% of base) : 50359.dasm - System.Collections.Generic.Dictionary`2:System.Collections.ICollection.CopyTo(System.Array,int):this
          26 ( 1.89% of base) : 25771.dasm - System.Xml.Xsl.Runtime.XmlQueryStaticData:GetObjectData(byref,byref):this
          26 ( 4.13% of base) : 57534.dasm - UTF8EncodingSealed:GetStringForSmallInput(System.Byte[]):System.String:this
          24 ( 4.72% of base) : 156011.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:CreateUserDefinedConversion(Microsoft.CodeAnalysis.VisualBasic.BoundUserDefinedConversion,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,bool,bool):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
          24 ( 2.21% of base) : 169152.dasm - Microsoft.Extensions.Logging.EventSource.EventSourceLogger:Log(int,Microsoft.Extensions.Logging.EventId,System.__Canon,System.Exception,System.Func`3[System.__Canon, System.Exception, System.String]):this
          24 ( 1.43% of base) : 42262.dasm - System.Data.XSDSchema:HandleSimpleContentColumn(System.String,System.Data.DataTable,bool,System.Xml.XmlAttribute[],bool):this
          22 ( 1.36% of base) : 47883.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:ReflectGetExtendedProperties(System.ComponentModel.IExtenderProvider):System.ComponentModel.PropertyDescriptor[]
          22 ( 1.30% of base) : 96061.dasm - System.Data.Odbc.OdbcDataReader:NewSchemaTable():System.Data.DataTable:this
          20 ( 5.38% of base) : 116825.dasm - Microsoft.CodeAnalysis.CSharp.BoundConversion:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool):this
          20 ( 1.81% of base) : 154327.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxFactory:IntegerLiteralToken(System.String,int,int,long,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.IntegerLiteralTokenSyntax

Top method improvements (bytes):
         -34 (-2.17% of base) : 33285.dasm - System.Xml.XmlTextReaderImpl:AddDefaultAttributesAndNormalize():this
         -20 (-1.80% of base) : 130071.dasm - Microsoft.Cci.MetadataWriter:SerializeMetadataAndIL(Microsoft.Cci.BlobBuilder,Microsoft.Cci.BlobBuilder,Microsoft.Cci.PdbWriter,Microsoft.Cci.BlobBuilder,Microsoft.Cci.BlobBuilder,Microsoft.Cci.BlobBuilder,int,System.Func`2[Microsoft.Cci.MetadataSizes, System.Int32],byref,byref,byref,byref):this
         -18 (-1.59% of base) : 160386.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEPropertySymbol:GetParameters(Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEPropertySymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol][],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol]
         -16 (-1.57% of base) : 129893.dasm - Microsoft.Cci.CustomDebugInfoWriter:SerializeNamespaceScopeMetadata(Microsoft.CodeAnalysis.Emit.EmitContext,Microsoft.Cci.IMethodBody,Microsoft.CodeAnalysis.ArrayBuilder`1[Microsoft.Cci.BlobBuilder]):this
         -12 (-1.92% of base) : 130161.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalConstantTable(Microsoft.Cci.BlobBuilder,Microsoft.Cci.MetadataSizes):this
         -10 (-1.09% of base) : 117417.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:ExpressionMatchExactly(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):bool:this
         -10 (-0.87% of base) : 87820.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalWriter:SerializeDictionary(Newtonsoft.Json.JsonWriter,System.Collections.IDictionary,Newtonsoft.Json.Serialization.JsonDictionaryContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty):this
         -10 (-0.43% of base) : 166012.dasm - System.Configuration.ConfigurationElementCollection:BaseRemove(System.Object,bool):this
         -10 (-1.01% of base) : 84750.dasm - System.Drawing.Icon:SaveBitmapAsIcon(System.IO.BinaryWriter):this
          -8 (-0.52% of base) : 79385.dasm - <SendAsync>d__16:MoveNext():this
          -8 (-0.68% of base) : 116199.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxAndDeclarationManager:AppendAllLoadedSyntaxTrees(Microsoft.CodeAnalysis.ArrayBuilder`1[Microsoft.CodeAnalysis.SyntaxTree],Microsoft.CodeAnalysis.SyntaxTree,System.String,Microsoft.CodeAnalysis.SourceReferenceResolver,Microsoft.CodeAnalysis.CommonMessageProvider,bool,System.Collections.Generic.IDictionary`2[Microsoft.CodeAnalysis.SyntaxTree, System.Int32],System.Collections.Generic.IDictionary`2[Microsoft.CodeAnalysis.SyntaxTree, System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.LoadDirective]],System.Collections.Generic.IDictionary`2[System.String, Microsoft.CodeAnalysis.SyntaxTree],System.Collections.Generic.IDictionary`2[Microsoft.CodeAnalysis.SyntaxTree, System.Lazy`1[Microsoft.CodeAnalysis.CSharp.RootSingleNamespaceDeclaration]],byref)
          -8 (-0.59% of base) : 145648.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:MatchArgumentToByValParameter(Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,byref,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref,byref,byref,bool):bool
          -8 (-1.23% of base) : 170134.dasm - System.Diagnostics.Process:GetProcessesByName(System.String,System.String):System.Diagnostics.Process[]
          -8 (-0.67% of base) : 194748.dasm - System.Net.Quic.Implementations.MsQuic.MsQuicListener:NativeCallbackHandler(int,int,byref):int
          -8 (-0.84% of base) : 177838.dasm - System.Net.Security.NegotiateStreamPal:EstablishSecurityContext(System.Net.Security.SafeFreeNegoCredentials,byref,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,int,System.Byte[],byref,byref):System.Net.SecurityStatusPal
          -8 (-0.84% of base) : 80264.dasm - System.Net.Security.NegotiateStreamPal:EstablishSecurityContext(System.Net.Security.SafeFreeNegoCredentials,byref,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,int,System.Byte[],byref,byref):System.Net.SecurityStatusPal
          -8 (-0.84% of base) : 44201.dasm - System.Net.Security.NegotiateStreamPal:EstablishSecurityContext(System.Net.Security.SafeFreeNegoCredentials,byref,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,int,System.Byte[],byref,byref):System.Net.SecurityStatusPal
          -6 (-0.44% of base) : 79764.dasm - <CreateContentReadStreamAsyncCore>d__27:MoveNext():this
          -6 (-0.48% of base) : 129540.dasm - Microsoft.Cci.PeWriter:SerializeWin32Resources(System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IWin32Resource],int):this
          -6 (-0.56% of base) : 118345.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindMemberOfType(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.String,int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.LookupResult,int,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this

Top method regressions (percentages):
          32 (12.12% of base) : 147852.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax:.ctor(ushort,Microsoft.CodeAnalysis.DiagnosticInfo[],Microsoft.CodeAnalysis.SyntaxAnnotation[],Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.IdentifierNameSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.SimpleAsClauseSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchFilterClauseSyntax):this
          28 (11.86% of base) : 146959.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.AggregateClauseSyntax:.ctor(ushort,Microsoft.CodeAnalysis.DiagnosticInfo[],Microsoft.CodeAnalysis.SyntaxAnnotation[],Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax,Microsoft.CodeAnalysis.SyntaxNode):this
          28 (10.94% of base) : 146864.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SimpleJoinClauseSyntax:.ctor(ushort,Microsoft.CodeAnalysis.DiagnosticInfo[],Microsoft.CodeAnalysis.SyntaxAnnotation[],Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax,Microsoft.CodeAnalysis.SyntaxNode):this
          56 ( 5.46% of base) : 95242.dasm - Internal.Cryptography.Pal.UnixPkcs12Reader:BuildCertsWithKeys(System.ReadOnlySpan`1[System.Char],System.Security.Cryptography.Asn1.Pkcs12.CertBagAsn[],System.Security.Cryptography.Asn1.AttributeAsn[][],Internal.Cryptography.Pal.UnixPkcs12Reader+CertAndKey[],int,System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn[],Internal.Cryptography.Pal.UnixPkcs12Reader+RentedSubjectPublicKeyInfo[],System.Security.Cryptography.AsymmetricAlgorithm[],int):this
          20 ( 5.38% of base) : 116825.dasm - Microsoft.CodeAnalysis.CSharp.BoundConversion:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool):this
          24 ( 4.72% of base) : 156011.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:CreateUserDefinedConversion(Microsoft.CodeAnalysis.VisualBasic.BoundUserDefinedConversion,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,bool,bool):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
          16 ( 4.37% of base) : 63387.dasm - System.TimeZoneInfo:GetAdjustmentRuleForTime(System.DateTime,bool,byref):System.TimeZoneInfo+AdjustmentRule:this
          26 ( 4.13% of base) : 57534.dasm - UTF8EncodingSealed:GetStringForSmallInput(System.Byte[]):System.String:this
          26 ( 3.58% of base) : 162106.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindDoLoop(Microsoft.CodeAnalysis.VisualBasic.Syntax.DoLoopBlockSyntax,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundStatement:this
          16 ( 3.54% of base) : 123061.dasm - LocalScopeInfo:GetHoistedLocalScopes(Microsoft.CodeAnalysis.ArrayBuilder`1[Microsoft.Cci.StateMachineHoistedLocalScope]):Microsoft.CodeAnalysis.CodeGen.ILBuilder+ScopeBounds:this
          26 ( 3.48% of base) : 50359.dasm - System.Collections.Generic.Dictionary`2:System.Collections.ICollection.CopyTo(System.Array,int):this
          72 ( 3.45% of base) : 66698.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this
          12 ( 3.06% of base) : 55159.dasm - System.Reflection.RuntimePropertyInfo:.ctor(int,System.RuntimeType,System.RuntimeType+RuntimeTypeCache,byref):this
           8 ( 2.90% of base) : 63027.dasm - System.TupleExtensions:ToValueTuple(System.Tuple`8[System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.Tuple`8[System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.Tuple`1[System.__Canon]]]):System.ValueTuple`8[System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.ValueTuple`8[System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.__Canon, System.ValueTuple`1[System.__Canon]]]
          36 ( 2.62% of base) : 197240.dasm - System.DirectoryServices.Protocols.BerConverter:TryDecode(System.String,System.Byte[],byref):System.Object[]
          40 ( 2.53% of base) : 156041.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:ConvertBooleanOperator(Microsoft.CodeAnalysis.VisualBasic.BoundBinaryOperator):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
           8 ( 2.21% of base) : 200234.dasm - System.Text.RegularExpressions.RegexParser:ParseReplacement(System.String,int,System.Collections.Hashtable,int,System.Collections.Hashtable):System.Text.RegularExpressions.RegexReplacement
          24 ( 2.21% of base) : 169152.dasm - Microsoft.Extensions.Logging.EventSource.EventSourceLogger:Log(int,Microsoft.Extensions.Logging.EventId,System.__Canon,System.Exception,System.Func`3[System.__Canon, System.Exception, System.String]):this
          16 ( 2.08% of base) : 28883.dasm - System.Xml.Schema.XmlSchemaValidator:ValidateElementContext(System.Xml.XmlQualifiedName,byref):System.Object:this
          26 ( 1.89% of base) : 25771.dasm - System.Xml.Xsl.Runtime.XmlQueryStaticData:GetObjectData(byref,byref):this

Top method improvements (percentages):
         -34 (-2.17% of base) : 33285.dasm - System.Xml.XmlTextReaderImpl:AddDefaultAttributesAndNormalize():this
         -12 (-1.92% of base) : 130161.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalConstantTable(Microsoft.Cci.BlobBuilder,Microsoft.Cci.MetadataSizes):this
         -20 (-1.80% of base) : 130071.dasm - Microsoft.Cci.MetadataWriter:SerializeMetadataAndIL(Microsoft.Cci.BlobBuilder,Microsoft.Cci.BlobBuilder,Microsoft.Cci.PdbWriter,Microsoft.Cci.BlobBuilder,Microsoft.Cci.BlobBuilder,Microsoft.Cci.BlobBuilder,int,System.Func`2[Microsoft.Cci.MetadataSizes, System.Int32],byref,byref,byref,byref):this
         -18 (-1.59% of base) : 160386.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEPropertySymbol:GetParameters(Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEPropertySymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol][],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol]
         -16 (-1.57% of base) : 129893.dasm - Microsoft.Cci.CustomDebugInfoWriter:SerializeNamespaceScopeMetadata(Microsoft.CodeAnalysis.Emit.EmitContext,Microsoft.Cci.IMethodBody,Microsoft.CodeAnalysis.ArrayBuilder`1[Microsoft.Cci.BlobBuilder]):this
          -8 (-1.23% of base) : 170134.dasm - System.Diagnostics.Process:GetProcessesByName(System.String,System.String):System.Diagnostics.Process[]
         -10 (-1.09% of base) : 117417.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:ExpressionMatchExactly(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):bool:this
          -6 (-1.03% of base) : 32091.dasm - System.Xml.XsdValidatingReader:ReadContentAsDouble():double:this
          -6 (-1.03% of base) : 32090.dasm - System.Xml.XsdValidatingReader:ReadContentAsFloat():float:this
         -10 (-1.01% of base) : 84750.dasm - System.Drawing.Icon:SaveBitmapAsIcon(System.IO.BinaryWriter):this
          -6 (-1.01% of base) : 107987.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DocumentationCommentParser:ParseDocumentationComment(byref):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DocumentationCommentTriviaSyntax:this
          -4 (-0.96% of base) : 126196.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Immutable.ImmutableDictionary`2[Microsoft.Cci.ITypeDefinition, System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ITypeDefinitionMember]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this
         -10 (-0.87% of base) : 87820.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalWriter:SerializeDictionary(Newtonsoft.Json.JsonWriter,System.Collections.IDictionary,Newtonsoft.Json.Serialization.JsonDictionaryContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty):this
          -6 (-0.87% of base) : 112824.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:RewriteBuiltInShiftOperation(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
          -4 (-0.86% of base) : 46250.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:LeastGenericProcedure(Microsoft.VisualBasic.CompilerServices.Symbols+Method,Microsoft.VisualBasic.CompilerServices.Symbols+Method,int,byref):Microsoft.VisualBasic.CompilerServices.Symbols+Method
          -8 (-0.84% of base) : 177838.dasm - System.Net.Security.NegotiateStreamPal:EstablishSecurityContext(System.Net.Security.SafeFreeNegoCredentials,byref,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,int,System.Byte[],byref,byref):System.Net.SecurityStatusPal
          -8 (-0.84% of base) : 80264.dasm - System.Net.Security.NegotiateStreamPal:EstablishSecurityContext(System.Net.Security.SafeFreeNegoCredentials,byref,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,int,System.Byte[],byref,byref):System.Net.SecurityStatusPal
          -8 (-0.84% of base) : 44201.dasm - System.Net.Security.NegotiateStreamPal:EstablishSecurityContext(System.Net.Security.SafeFreeNegoCredentials,byref,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,int,System.Byte[],byref,byref):System.Net.SecurityStatusPal
          -6 (-0.73% of base) : 155517.dasm - Microsoft.CodeAnalysis.VisualBasic.Rewriter:LowerBodyOrInitializer(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.VisualBasic.BoundBlock,Microsoft.CodeAnalysis.VisualBasic.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.VisualBasic.TypeCompilationState,Microsoft.CodeAnalysis.DiagnosticBag,byref,Microsoft.CodeAnalysis.ArrayBuilder`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],Microsoft.CodeAnalysis.ArrayBuilder`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],byref,byref,bool,bool):Microsoft.CodeAnalysis.VisualBasic.BoundBlock
          -4 (-0.69% of base) : 23278.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportElement(System.Xml.Serialization.TypeModel,System.Xml.Serialization.XmlRootAttribute,System.String,System.Xml.Serialization.RecursionLimiter):System.Xml.Serialization.ElementAccessor:this

239 total methods with Code Size differences (61 improved, 178 regressed), 297 unchanged.


libraries.pmi.Linux.arm.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 382092
Total bytes of diff: 382676
Total bytes of delta: 584 (0.15% of base)
Total relative delta: 1.10
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
          54 : 161851.dasm (12.74% of base)
          44 : 140540.dasm (5.54% of base)
          40 : 165622.dasm (3.03% of base)
          28 : 89812.dasm (2.41% of base)
          24 : 107322.dasm (5.56% of base)
          24 : 123686.dasm (2.99% of base)
          24 : 213268.dasm (2.64% of base)
          22 : 68111.dasm (1.54% of base)
          22 : 38575.dasm (1.69% of base)
          20 : 123752.dasm (2.04% of base)
          20 : 158548.dasm (2.35% of base)
          18 : 31913.dasm (2.17% of base)
          18 : 155488.dasm (1.62% of base)
          18 : 151550.dasm (2.19% of base)
          16 : 110633.dasm (2.27% of base)
          16 : 68402.dasm (1.70% of base)
          14 : 129487.dasm (2.68% of base)
          14 : 129488.dasm (2.53% of base)
          14 : 178900.dasm (1.34% of base)
          12 : 118639.dasm (1.34% of base)

Top file improvements (bytes):
         -40 : 71135.dasm (-3.77% of base)
         -18 : 101326.dasm (-2.81% of base)
         -16 : 21281.dasm (-1.85% of base)
         -14 : 24518.dasm (-1.92% of base)
         -14 : 121810.dasm (-1.58% of base)
         -14 : 121859.dasm (-1.58% of base)
         -14 : 121822.dasm (-1.67% of base)
         -12 : 173169.dasm (-1.52% of base)
         -12 : 21199.dasm (-1.73% of base)
         -12 : 38131.dasm (-1.96% of base)
         -12 : 140544.dasm (-1.93% of base)
         -10 : 152313.dasm (-1.42% of base)
         -10 : 138811.dasm (-2.56% of base)
         -10 : 151711.dasm (-1.29% of base)
          -8 : 124239.dasm (-2.23% of base)
          -8 : 190019.dasm (-1.14% of base)
          -6 : 188448.dasm (-2.48% of base)
          -6 : 155450.dasm (-1.09% of base)
          -6 : 155515.dasm (-0.91% of base)
          -6 : 162619.dasm (-0.52% of base)

210 total files with Code Size differences (75 improved, 135 regressed), 462 unchanged.

Top method regressions (bytes):
          54 (12.74% of base) : 161851.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:LeastGenericProcedure(Method,Method,int,byref):Method
          44 ( 5.54% of base) : 140540.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:Microsoft.Cci.IAssembly.GetFiles(Microsoft.CodeAnalysis.Emit.EmitContext):System.Collections.Generic.IEnumerable`1[[Microsoft.Cci.IFileReference, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
          40 ( 3.03% of base) : 165622.dasm - System.Buffers.SequenceReader`1[Double][System.Double]:TryReadToInternal(byref,double,bool,int):bool:this
          28 ( 2.41% of base) : 89812.dasm - <>c__DisplayClass1_1:<DoInterning>b__0(System.Object):this
          24 ( 2.99% of base) : 123686.dasm - Microsoft.CodeAnalysis.CSharp.Binder:LookupGenericTypeName(Microsoft.CodeAnalysis.DiagnosticBag,Roslyn.Utilities.ConsList`1[[Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.GenericNameSyntax,System.String,int,int):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this
          24 ( 2.64% of base) : 213268.dasm - System.Composition.Convention.PartConventionBuilder:BuildOnImportsSatisfiedNotification(System.Type,byref):this
          24 ( 5.56% of base) : 107322.dasm - System.Xml.Xsl.Runtime.NumberFormatter:ConvertToDecimal(double,int,ushort,System.String,int):System.String
          22 ( 1.69% of base) : 38575.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:ConvertBooleanOperator(Microsoft.CodeAnalysis.VisualBasic.BoundBinaryOperator):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
          22 ( 1.54% of base) : 68111.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:GetSerializableMembers(System.Type):System.Collections.Generic.List`1[[System.Reflection.MemberInfo, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]:this
          20 ( 2.04% of base) : 123752.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindForOrUsingOrFixedDeclarations(Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.DiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.BoundStatement:this
          20 ( 2.35% of base) : 158548.dasm - System.Data.Common.DbCommandBuilder:BuildUpdateCommand(System.Data.Common.DataTableMapping,System.Data.DataRow):System.Data.Common.DbCommand:this
          18 ( 2.17% of base) : 31913.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindDefaultPropertyGroup(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
          18 ( 2.19% of base) : 151550.dasm - System.Configuration.BaseConfigurationRecord:FindAndEnsureFactoryRecord(System.String,byref):System.Configuration.FactoryRecord:this
          18 ( 1.62% of base) : 155488.dasm - System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this
          16 ( 1.70% of base) : 68402.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalWriter:SerializeObject(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.Serialization.JsonObjectContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty):this
          16 ( 2.27% of base) : 110633.dasm - System.Xml.Serialization.XmlSerializer:Serialize(System.Xml.XmlWriter,System.Object,System.Xml.Serialization.XmlSerializerNamespaces,System.String,System.String):this
          14 ( 1.34% of base) : 178900.dasm - ILCompiler.Reflection.ReadyToRun.x86.GcInfo:GetTransitionsNoEbp(System.Byte[],byref):this
          14 ( 2.53% of base) : 129488.dasm - Microsoft.CodeAnalysis.CSharp.LoweredDynamicOperationFactory:MakeDynamicBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,bool,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.LoweredDynamicOperation:this
          14 ( 2.68% of base) : 129487.dasm - Microsoft.CodeAnalysis.CSharp.LoweredDynamicOperationFactory:MakeDynamicUnaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.LoweredDynamicOperation:this
          12 ( 1.34% of base) : 118639.dasm - Parser:GetMatchingProperties(System.String,byref,System.Collections.Generic.List`1[[Microsoft.CodeAnalysis.INamespaceOrTypeSymbol, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.String,Microsoft.CodeAnalysis.Compilation,System.Collections.Generic.List`1[[Microsoft.CodeAnalysis.ISymbol, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]])

Top method improvements (bytes):
         -40 (-3.77% of base) : 71135.dasm - Microsoft.Diagnostics.Tracing.EventPipeEventSource:ParseType(FastSerialization.PinnedStreamReader,ushort,long,System.String,int):PayloadFetch:this
         -18 (-2.81% of base) : 101326.dasm - System.Xml.DocumentSchemaValidator:ValidateElement():this
         -16 (-1.85% of base) : 21281.dasm - System.Text.Json.Serialization.JsonConverter`1[__Canon][System.__Canon]:TryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):bool:this
         -14 (-1.58% of base) : 121810.dasm - <CompleteCopyToAsync>d__4:MoveNext():this
         -14 (-1.67% of base) : 121822.dasm - <CompleteCopyToAsync>d__5:MoveNext():this
         -14 (-1.58% of base) : 121859.dasm - <CompleteCopyToAsync>d__8:MoveNext():this
         -14 (-1.92% of base) : 24518.dasm - System.Xml.XmlBinaryReader:TryGetBase64ContentLength(byref):bool:this
         -12 (-1.93% of base) : 140544.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:AddEmbeddedResourcesFromAddedModules(Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.Cci.ManagedResource, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag):this
         -12 (-1.96% of base) : 38131.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:AddEmbeddedResourcesFromAddedModules(Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.Cci.ManagedResource, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag):this
         -12 (-1.52% of base) : 173169.dasm - System.Reflection.TypeLoading.RoType:GetInterface(System.String,bool):System.Type:this
         -12 (-1.73% of base) : 21199.dasm - System.Text.Json.Serialization.IEnumerableConverterFactoryHelpers:GetImmutableDictionaryCreateRangeMethod(System.Type,System.Type,System.Type):System.Reflection.MethodInfo
         -10 (-2.56% of base) : 138811.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DelegateDeclarationSyntax:Update(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeParameterListSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ParameterListSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeParameterConstraintClauseSyntax, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DelegateDeclarationSyntax:this
         -10 (-1.29% of base) : 151711.dasm - System.Configuration.ConfigurationElement:IntersectLockCollections(System.Configuration.ConfigurationLockCollection,System.Configuration.ConfigurationLockCollection):System.Collections.Specialized.StringCollection:this
         -10 (-1.42% of base) : 152313.dasm - System.Configuration.LocalFileSettingsProvider:SetPropertyValues(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyValueCollection):this
          -8 (-1.14% of base) : 190019.dasm - <ReadFromJsonAsyncCore>d__4`1[__Canon][System.__Canon]:MoveNext():this
          -8 (-2.23% of base) : 124239.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeConstructor(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.DiagnosticBag,byref,bool,byref):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this
          -6 (-0.52% of base) : 162619.dasm - Microsoft.VisualBasic.FileSystem:FileCopy(System.String,System.String)
          -6 (-1.03% of base) : 68366.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:SetPropertyValue(Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.JsonConverter,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.JsonReader,System.Object):bool:this
          -6 (-1.22% of base) : 158733.dasm - System.Data.Common.DbDataAdapter:FillSchema(System.Data.DataSet,int):System.Data.DataTable[]:this
          -6 (-1.60% of base) : 158732.dasm - System.Data.Common.DbDataAdapter:FillSchema(System.Data.DataTable,int):System.Data.DataTable:this

Top method regressions (percentages):
          54 (12.74% of base) : 161851.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:LeastGenericProcedure(Method,Method,int,byref):Method
          24 ( 5.56% of base) : 107322.dasm - System.Xml.Xsl.Runtime.NumberFormatter:ConvertToDecimal(double,int,ushort,System.String,int):System.String
          44 ( 5.54% of base) : 140540.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:Microsoft.Cci.IAssembly.GetFiles(Microsoft.CodeAnalysis.Emit.EmitContext):System.Collections.Generic.IEnumerable`1[[Microsoft.Cci.IFileReference, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
           8 ( 4.17% of base) : 200847.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:GetOrAdd(ubyte,System.Func`3[Byte,Double,Nullable`1],double):System.Nullable`1[Int32]:this
           8 ( 4.17% of base) : 200910.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Int16,Nullable`1][System.Int16,System.Nullable`1[System.Int32]]:GetOrAdd(short,System.Func`3[Int16,Double,Nullable`1],double):System.Nullable`1[Int32]:this
          10 ( 3.65% of base) : 54948.dasm - BinderFactoryVisitor:VisitMethodBlockBase(Microsoft.CodeAnalysis.VisualBasic.Syntax.MethodBlockBaseSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.MethodBaseSyntax):Microsoft.CodeAnalysis.VisualBasic.Binder:this
          10 ( 3.33% of base) : 54952.dasm - BinderFactoryVisitor:VisitAccessorBlock(Microsoft.CodeAnalysis.VisualBasic.Syntax.AccessorBlockSyntax):Microsoft.CodeAnalysis.VisualBasic.Binder:this
          10 ( 3.33% of base) : 54950.dasm - BinderFactoryVisitor:VisitConstructorBlock(Microsoft.CodeAnalysis.VisualBasic.Syntax.ConstructorBlockSyntax):Microsoft.CodeAnalysis.VisualBasic.Binder:this
          10 ( 3.33% of base) : 54949.dasm - BinderFactoryVisitor:VisitMethodBlock(Microsoft.CodeAnalysis.VisualBasic.Syntax.MethodBlockSyntax):Microsoft.CodeAnalysis.VisualBasic.Binder:this
          10 ( 3.33% of base) : 54951.dasm - BinderFactoryVisitor:VisitOperatorBlock(Microsoft.CodeAnalysis.VisualBasic.Syntax.OperatorBlockSyntax):Microsoft.CodeAnalysis.VisualBasic.Binder:this
          40 ( 3.03% of base) : 165622.dasm - System.Buffers.SequenceReader`1[Double][System.Double]:TryReadToInternal(byref,double,bool,int):bool:this
          24 ( 2.99% of base) : 123686.dasm - Microsoft.CodeAnalysis.CSharp.Binder:LookupGenericTypeName(Microsoft.CodeAnalysis.DiagnosticBag,Roslyn.Utilities.ConsList`1[[Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.GenericNameSyntax,System.String,int,int):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this
           8 ( 2.96% of base) : 54933.dasm - BinderFactoryVisitor:VisitNamespaceBlock(Microsoft.CodeAnalysis.VisualBasic.Syntax.NamespaceBlockSyntax):Microsoft.CodeAnalysis.VisualBasic.Binder:this
          14 ( 2.68% of base) : 129487.dasm - Microsoft.CodeAnalysis.CSharp.LoweredDynamicOperationFactory:MakeDynamicUnaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.LoweredDynamicOperation:this
          24 ( 2.64% of base) : 213268.dasm - System.Composition.Convention.PartConventionBuilder:BuildOnImportsSatisfiedNotification(System.Type,byref):this
          14 ( 2.53% of base) : 129488.dasm - Microsoft.CodeAnalysis.CSharp.LoweredDynamicOperationFactory:MakeDynamicBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,bool,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.LoweredDynamicOperation:this
          28 ( 2.41% of base) : 89812.dasm - <>c__DisplayClass1_1:<DoInterning>b__0(System.Object):this
           8 ( 2.41% of base) : 185683.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateOpenGeneric(Microsoft.Extensions.DependencyInjection.ServiceDescriptor,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain,int,bool):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this
          20 ( 2.35% of base) : 158548.dasm - System.Data.Common.DbCommandBuilder:BuildUpdateCommand(System.Data.Common.DataTableMapping,System.Data.DataRow):System.Data.Common.DbCommand:this
          16 ( 2.27% of base) : 110633.dasm - System.Xml.Serialization.XmlSerializer:Serialize(System.Xml.XmlWriter,System.Object,System.Xml.Serialization.XmlSerializerNamespaces,System.String,System.String):this

Top method improvements (percentages):
         -40 (-3.77% of base) : 71135.dasm - Microsoft.Diagnostics.Tracing.EventPipeEventSource:ParseType(FastSerialization.PinnedStreamReader,ushort,long,System.String,int):PayloadFetch:this
         -18 (-2.81% of base) : 101326.dasm - System.Xml.DocumentSchemaValidator:ValidateElement():this
         -10 (-2.56% of base) : 138811.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DelegateDeclarationSyntax:Update(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeParameterListSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ParameterListSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeParameterConstraintClauseSyntax, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DelegateDeclarationSyntax:this
          -6 (-2.48% of base) : 188448.dasm - System.Net.Sockets.UdpClient:ReceiveAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[UdpReceiveResult]:this
          -8 (-2.23% of base) : 124239.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeConstructor(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.DiagnosticBag,byref,bool,byref):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this
         -12 (-1.96% of base) : 38131.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:AddEmbeddedResourcesFromAddedModules(Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.Cci.ManagedResource, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag):this
         -12 (-1.93% of base) : 140544.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:AddEmbeddedResourcesFromAddedModules(Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.Cci.ManagedResource, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag):this
         -14 (-1.92% of base) : 24518.dasm - System.Xml.XmlBinaryReader:TryGetBase64ContentLength(byref):bool:this
         -16 (-1.85% of base) : 21281.dasm - System.Text.Json.Serialization.JsonConverter`1[__Canon][System.__Canon]:TryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):bool:this
         -12 (-1.73% of base) : 21199.dasm - System.Text.Json.Serialization.IEnumerableConverterFactoryHelpers:GetImmutableDictionaryCreateRangeMethod(System.Type,System.Type,System.Type):System.Reflection.MethodInfo
         -14 (-1.67% of base) : 121822.dasm - <CompleteCopyToAsync>d__5:MoveNext():this
          -6 (-1.60% of base) : 158732.dasm - System.Data.Common.DbDataAdapter:FillSchema(System.Data.DataTable,int):System.Data.DataTable:this
         -14 (-1.58% of base) : 121810.dasm - <CompleteCopyToAsync>d__4:MoveNext():this
         -14 (-1.58% of base) : 121859.dasm - <CompleteCopyToAsync>d__8:MoveNext():this
         -12 (-1.52% of base) : 173169.dasm - System.Reflection.TypeLoading.RoType:GetInterface(System.String,bool):System.Type:this
         -10 (-1.42% of base) : 152313.dasm - System.Configuration.LocalFileSettingsProvider:SetPropertyValues(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyValueCollection):this
         -10 (-1.29% of base) : 151711.dasm - System.Configuration.ConfigurationElement:IntersectLockCollections(System.Configuration.ConfigurationLockCollection,System.Configuration.ConfigurationLockCollection):System.Collections.Specialized.StringCollection:this
          -6 (-1.22% of base) : 158733.dasm - System.Data.Common.DbDataAdapter:FillSchema(System.Data.DataSet,int):System.Data.DataTable[]:this
          -8 (-1.14% of base) : 190019.dasm - <ReadFromJsonAsyncCore>d__4`1[__Canon][System.__Canon]:MoveNext():this
          -4 (-1.12% of base) : 116281.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Immutable.ImmutableDictionary`2[[Microsoft.Cci.ITypeDefinition, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.ITypeDefinitionMember, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this

210 total methods with Code Size differences (75 improved, 135 regressed), 462 unchanged.


libraries_tests.pmi.Linux.arm.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 1252452
Total bytes of diff: 1253004
Total bytes of delta: 552 (0.04% of base)
Total relative delta: 0.85
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
          32 : 32002.dasm (2.04% of base)
          24 : 171337.dasm (1.85% of base)
          24 : 153110.dasm (1.85% of base)
          20 : 281817.dasm (1.56% of base)
          20 : 16975.dasm (3.62% of base)
          20 : 188110.dasm (1.86% of base)
          20 : 159781.dasm (3.83% of base)
          18 : 292587.dasm (1.60% of base)
          18 : 274555.dasm (2.17% of base)
          18 : 274556.dasm (2.17% of base)
          16 : 93684.dasm (2.90% of base)
          16 : 200783.dasm (1.95% of base)
          16 : 173540.dasm (5.76% of base)
          16 : 201465.dasm (1.54% of base)
          16 : 200879.dasm (1.95% of base)
          14 : 93817.dasm (1.55% of base)
          12 : 325386.dasm (1.40% of base)
          12 : 25832.dasm (1.30% of base)
          12 : 331513.dasm (1.12% of base)
          12 : 300412.dasm (1.36% of base)

Top file improvements (bytes):
         -36 : 256058.dasm (-2.32% of base)
         -36 : 250899.dasm (-2.32% of base)
         -20 : 301479.dasm (-2.74% of base)
         -16 : 328269.dasm (-1.13% of base)
         -14 : 225754.dasm (-1.64% of base)
         -12 : 172030.dasm (-1.19% of base)
         -12 : 21989.dasm (-1.17% of base)
         -12 : 285097.dasm (-1.12% of base)
         -12 : 333719.dasm (-1.08% of base)
         -12 : 92923.dasm (-1.93% of base)
         -12 : 153946.dasm (-1.19% of base)
         -10 : 250624.dasm (-2.55% of base)
         -10 : 214340.dasm (-1.47% of base)
         -10 : 60006.dasm (-1.50% of base)
          -8 : 331524.dasm (-0.78% of base)
          -8 : 182665.dasm (-2.12% of base)
          -8 : 172235.dasm (-0.83% of base)
          -8 : 105847.dasm (-1.08% of base)
          -8 : 120094.dasm (-0.90% of base)
          -8 : 264059.dasm (-2.12% of base)

548 total files with Code Size differences (232 improved, 316 regressed), 1178 unchanged.

Top method regressions (bytes):
          32 ( 2.04% of base) : 32002.dasm - System.Text.Json.Serialization.Tests.WriteValueTests:WriterOptionsSkipValidation()
          24 ( 1.85% of base) : 171337.dasm - System.IO.Tests.WriteTests:StreamWriter_WithOptionalArguments_NoExceptions():this
          24 ( 1.85% of base) : 153110.dasm - System.IO.Tests.WriteTests:StreamWriter_WithOptionalArguments_NoExceptions():this
          20 ( 3.83% of base) : 159781.dasm - DryIoc.Registrator:RegisterMany(DryIoc.IRegistrator,System.Collections.Generic.IEnumerable`1[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Func`2[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Type[], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Func`2[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[DryIoc.Factory, DryIoc, Version=4.1.4.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768]],System.Func`3[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Nullable`1[IfAlreadyRegistered])
          20 ( 3.62% of base) : 16975.dasm - ILStubClass:IL_STUB_PInvoke(System.String,int,System.Text.StringBuilder,int):int
          20 ( 1.56% of base) : 281817.dasm - System.IO.Packaging.Tests.Tests:T127_String_Open_ReadWrite_Open_Read_Write_ReadWrite():this
          20 ( 1.86% of base) : 188110.dasm - System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests:VerifyInPlaceDecryption()
          18 ( 2.17% of base) : 274555.dasm - CoreXml.Test.XLinq.FunctionalTests.EventsTests.EventsRemove:XAttributeRemoveOneByOne():this
          18 ( 2.17% of base) : 274556.dasm - CoreXml.Test.XLinq.FunctionalTests.EventsTests.EventsRemove:XElementRemoveOneByOne():this
          18 ( 1.60% of base) : 292587.dasm - System.IO.Tests.Directory_Move_Tests:DirectoryMove_NestedDirectory(int,bool):this
          16 ( 5.76% of base) : 173540.dasm - ILStubClass:IL_STUB_PInvoke(System.String,System.String,int,int,bool,int,int,System.String,byref,byref):bool
          16 ( 2.90% of base) : 93684.dasm - Microsoft.CodeAnalysis.SolutionState:Branch(SolutionAttributes,System.Collections.Generic.IReadOnlyList`1[[Microsoft.CodeAnalysis.ProjectId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.Options.SerializableOptionSet,System.Collections.Generic.IReadOnlyList`1[[Microsoft.CodeAnalysis.Diagnostics.AnalyzerReference, Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableDictionary`2[[Microsoft.CodeAnalysis.ProjectId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.ProjectState, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableHashSet`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Immutable.ImmutableDictionary`2[[Microsoft.CodeAnalysis.ProjectId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.SolutionState+ICompilationTracker, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableDictionary`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.DocumentId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],Microsoft.CodeAnalysis.ProjectDependencyGraph,Microsoft.CodeAnalysis.Optional`1[[Microsoft.CodeAnalysis.SourceGeneratedDocumentState, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):Microsoft.CodeAnalysis.SolutionState:this
          16 ( 1.95% of base) : 200783.dasm - System.IO.Ports.Tests.ReadLine_Generic:VerifyRead(System.IO.Ports.SerialPort,System.IO.Ports.SerialPort,System.Byte[],System.Char[]):this
          16 ( 1.95% of base) : 200879.dasm - System.IO.Ports.Tests.ReadTo_Generic:VerifyRead(System.IO.Ports.SerialPort,System.IO.Ports.SerialPort,System.Byte[],System.Char[]):this
          16 ( 1.54% of base) : 201465.dasm - System.IO.Ports.Tests.SerialStream_Read_byte_int_int:VerifyRead(System.Byte[],int,int,int):this
          14 ( 1.55% of base) : 93817.dasm - Microsoft.CodeAnalysis.Workspace:AdjustReloadedSolution(Microsoft.CodeAnalysis.Solution,Microsoft.CodeAnalysis.Solution):Microsoft.CodeAnalysis.Solution:this
          12 ( 1.30% of base) : 25832.dasm - <<ConnectCallback_UseMemoryBuffer_Success>b__1>d:MoveNext():this
          12 ( 1.40% of base) : 325386.dasm - <SetLength_MaxValue_ThrowsExpectedException>d__40:MoveNext():this
          12 ( 1.10% of base) : 200999.dasm - System.IO.Ports.Tests.Read_char_int_int_Generic:VerifyBytesToRead(int):this
          12 ( 1.36% of base) : 300412.dasm - System.Threading.Tests.SemaphoreTests:PingPong():this

Top method improvements (bytes):
         -36 (-2.32% of base) : 256058.dasm - SqlConnectionContainer:Restart(System.Object):this
         -36 (-2.32% of base) : 250899.dasm - SqlConnectionContainer:Restart(System.Object):this
         -20 (-2.74% of base) : 301479.dasm - ErrorConditions:Variation17():this
         -16 (-1.13% of base) : 328269.dasm - System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile:ValidArgumentCombinationsWithPath_ModesOpenOrCreate(int,System.String,long,int):this
         -14 (-1.64% of base) : 225754.dasm - System.Collections.Immutable.Tests.ImmutableSetTest:SetCompareTestHelper(System.Func`2[[System.Collections.Immutable.IImmutableSet`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[System.Func`2[[System.Collections.Generic.IEnumerable`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Boolean, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Func`2[[System.Collections.Generic.ISet`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Func`2[[System.Collections.Generic.IEnumerable`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Boolean, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[[System.Tuple`3[[System.Collections.Generic.IEnumerable`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Generic.IEnumerable`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Boolean, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):this
         -12 (-1.08% of base) : 333719.dasm - <CloseAsync_CreateAndCloseOutput_ThrowsInvalidOperationExceptionWithMessage>d__5:MoveNext():this
         -12 (-1.17% of base) : 21989.dasm - <ProxyTunnelRequest_GetAsync_Success>d__16:MoveNext():this
         -12 (-1.19% of base) : 172030.dasm - <StreamWriter_WriteAsync_EmitBOMAndFlushDataWhenBufferIsFull>d__24:MoveNext():this
         -12 (-1.19% of base) : 153946.dasm - <StreamWriter_WriteAsync_EmitBOMAndFlushDataWhenBufferIsFull>d__24:MoveNext():this
         -12 (-1.93% of base) : 92923.dasm - Microsoft.CodeAnalysis.Checksum:Create(long,Microsoft.CodeAnalysis.Serialization.ISerializerService):Microsoft.CodeAnalysis.Checksum
         -12 (-1.12% of base) : 285097.dasm - NuGet.Configuration.PackageSourceProvider:RemovePackageSource(System.String,bool,byref):this
         -10 (-1.50% of base) : 60006.dasm - Microsoft.Build.BackEnd.BuildRequestEntry:ResolveConfigurationRequest(int,int):bool:this
         -10 (-2.55% of base) : 250624.dasm - System.Data.SqlClient.TdsParserStateObjectNative:CreatePhysicalSNIHandle(System.String,bool,long,byref,byref,bool,bool,bool,bool):this
         -10 (-1.47% of base) : 214340.dasm - System.Data.Tests.DataSetInferXmlSchemaTest:SingleElementWithTwoAttribute():this
          -8 (-0.93% of base) : 142327.dasm - <ContentEncoding_SetAfterHeadersSent_DoesNothing>d__12:MoveNext():this
          -8 (-0.83% of base) : 172235.dasm - <DisposeAsync_DerivedTypeForcesDisposeToBeUsedUnlessOverridden>d__4:MoveNext():this
          -8 (-0.83% of base) : 153956.dasm - <DisposeAsync_DerivedTypeForcesDisposeToBeUsedUnlessOverridden>d__4:MoveNext():this
          -8 (-0.94% of base) : 106515.dasm - <FindSourceDeclarationsAsync>d__25:MoveNext():this
          -8 (-0.94% of base) : 106517.dasm - <FindSourceDeclarationsAsync>d__27:MoveNext():this
          -8 (-0.89% of base) : 274891.dasm - <Invoke>d__3:MoveNext():this

Top method regressions (percentages):
          16 ( 5.76% of base) : 173540.dasm - ILStubClass:IL_STUB_PInvoke(System.String,System.String,int,int,bool,int,int,System.String,byref,byref):bool
          10 ( 4.76% of base) : 257986.dasm - ILStubClass:IL_STUB_PInvoke(int,byref,int,int,int,int,int,int,int,int,byref):bool
          20 ( 3.83% of base) : 159781.dasm - DryIoc.Registrator:RegisterMany(DryIoc.IRegistrator,System.Collections.Generic.IEnumerable`1[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Func`2[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Type[], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Func`2[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[DryIoc.Factory, DryIoc, Version=4.1.4.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768]],System.Func`3[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Nullable`1[IfAlreadyRegistered])
          20 ( 3.62% of base) : 16975.dasm - ILStubClass:IL_STUB_PInvoke(System.String,int,System.Text.StringBuilder,int):int
          16 ( 2.90% of base) : 93684.dasm - Microsoft.CodeAnalysis.SolutionState:Branch(SolutionAttributes,System.Collections.Generic.IReadOnlyList`1[[Microsoft.CodeAnalysis.ProjectId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.Options.SerializableOptionSet,System.Collections.Generic.IReadOnlyList`1[[Microsoft.CodeAnalysis.Diagnostics.AnalyzerReference, Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableDictionary`2[[Microsoft.CodeAnalysis.ProjectId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.ProjectState, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableHashSet`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Immutable.ImmutableDictionary`2[[Microsoft.CodeAnalysis.ProjectId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.SolutionState+ICompilationTracker, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableDictionary`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.DocumentId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],Microsoft.CodeAnalysis.ProjectDependencyGraph,Microsoft.CodeAnalysis.Optional`1[[Microsoft.CodeAnalysis.SourceGeneratedDocumentState, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):Microsoft.CodeAnalysis.SolutionState:this
           6 ( 2.83% of base) : 73510.dasm - System.Linq.Expressions.Tests.TernaryTests:CheckTernaryStructWithTwoValuesTest(bool)
           8 ( 2.35% of base) : 250573.dasm - ILStubClass:IL_STUB_PInvoke(System.Data.SqlClient.SNIHandle,System.Byte[],int,System.Byte[],byref,byref,int,int,System.String,System.String):int
           8 ( 2.26% of base) : 175322.dasm - System.Formats.Asn1.Tests.Writer.WriteEncodedValue:WriteComplexEncodedValue(int):this
          18 ( 2.17% of base) : 274555.dasm - CoreXml.Test.XLinq.FunctionalTests.EventsTests.EventsRemove:XAttributeRemoveOneByOne():this
          18 ( 2.17% of base) : 274556.dasm - CoreXml.Test.XLinq.FunctionalTests.EventsTests.EventsRemove:XElementRemoveOneByOne():this
          32 ( 2.04% of base) : 32002.dasm - System.Text.Json.Serialization.Tests.WriteValueTests:WriterOptionsSkipValidation()
          16 ( 1.95% of base) : 200783.dasm - System.IO.Ports.Tests.ReadLine_Generic:VerifyRead(System.IO.Ports.SerialPort,System.IO.Ports.SerialPort,System.Byte[],System.Char[]):this
          16 ( 1.95% of base) : 200879.dasm - System.IO.Ports.Tests.ReadTo_Generic:VerifyRead(System.IO.Ports.SerialPort,System.IO.Ports.SerialPort,System.Byte[],System.Char[]):this
          20 ( 1.86% of base) : 188110.dasm - System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests:VerifyInPlaceDecryption()
           6 ( 1.85% of base) : 1873.dasm - Sys:GetGroups():System.UInt32[]
          24 ( 1.85% of base) : 171337.dasm - System.IO.Tests.WriteTests:StreamWriter_WithOptionalArguments_NoExceptions():this
          24 ( 1.85% of base) : 153110.dasm - System.IO.Tests.WriteTests:StreamWriter_WithOptionalArguments_NoExceptions():this
          10 ( 1.76% of base) : 82965.dasm - System.Tests.GuidTests:Ctor_Int_Short_Short_ByteArray(int,short,short,System.Byte[],System.Guid)
          10 ( 1.75% of base) : 229045.dasm - NuGet.Packaging.Signing.SignedPackageArchiveIOUtility:WriteSignatureIntoZip(System.IO.MemoryStream,System.IO.BinaryReader,System.IO.BinaryWriter)
           6 ( 1.73% of base) : 158722.dasm - ImTools.ImHashMapSlots:RefAddOrKeepSlot(byref,int,System.Numerics.Vector`1[Single],System.Nullable`1[Int32])

Top method improvements (percentages):
         -20 (-2.74% of base) : 301479.dasm - ErrorConditions:Variation17():this
         -10 (-2.55% of base) : 250624.dasm - System.Data.SqlClient.TdsParserStateObjectNative:CreatePhysicalSNIHandle(System.String,bool,long,byref,byref,bool,bool,bool,bool):this
         -36 (-2.32% of base) : 256058.dasm - SqlConnectionContainer:Restart(System.Object):this
         -36 (-2.32% of base) : 250899.dasm - SqlConnectionContainer:Restart(System.Object):this
          -8 (-2.12% of base) : 182616.dasm - System.Drawing.Drawing2D.Tests.GraphicsPathTests:AddEllipse_Rectangle_Success():this
          -8 (-2.12% of base) : 182665.dasm - System.Drawing.Drawing2D.Tests.GraphicsPathTests:AddRectangle_Success():this
          -8 (-2.12% of base) : 264059.dasm - System.Net.Sockets.Tests.SocketOptionNameTest:ReuseAddressUdp():this
          -8 (-2.03% of base) : 100755.dasm - Microsoft.CodeAnalysis.Editing.SyntaxGenerator:MethodDeclaration(Microsoft.CodeAnalysis.IMethodSymbol,System.String,System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):Microsoft.CodeAnalysis.SyntaxNode:this
         -12 (-1.93% of base) : 92923.dasm - Microsoft.CodeAnalysis.Checksum:Create(long,Microsoft.CodeAnalysis.Serialization.ISerializerService):Microsoft.CodeAnalysis.Checksum
         -14 (-1.64% of base) : 225754.dasm - System.Collections.Immutable.Tests.ImmutableSetTest:SetCompareTestHelper(System.Func`2[[System.Collections.Immutable.IImmutableSet`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[System.Func`2[[System.Collections.Generic.IEnumerable`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Boolean, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Func`2[[System.Collections.Generic.ISet`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Func`2[[System.Collections.Generic.IEnumerable`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Boolean, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[[System.Tuple`3[[System.Collections.Generic.IEnumerable`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Generic.IEnumerable`1[[System.Byte, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Boolean, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):this
         -10 (-1.50% of base) : 60006.dasm - Microsoft.Build.BackEnd.BuildRequestEntry:ResolveConfigurationRequest(int,int):bool:this
         -10 (-1.47% of base) : 214340.dasm - System.Data.Tests.DataSetInferXmlSchemaTest:SingleElementWithTwoAttribute():this
          -6 (-1.46% of base) : 252706.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:SetDecimal(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedSettersV3,int,Microsoft.SqlServer.Server.SmiMetaData,System.Decimal)
          -6 (-1.46% of base) : 247221.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:SetDecimal(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedSettersV3,int,Microsoft.SqlServer.Server.SmiMetaData,System.Decimal)
          -4 (-1.41% of base) : 258224.dasm - System.Security.Cryptography.X509Certificates.Tests.X509Certificate2PemTests:CreateFromPem_Rsa_LoadsFirstCertificate_Success()
          -6 (-1.35% of base) : 93863.dasm - Microsoft.CodeAnalysis.Workspace:OnAdditionalDocumentOpened(Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.Text.SourceTextContainer,bool):this
          -6 (-1.35% of base) : 93864.dasm - Microsoft.CodeAnalysis.Workspace:OnAnalyzerConfigDocumentOpened(Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.Text.SourceTextContainer,bool):this
          -4 (-1.26% of base) : 300791.dasm - <>c__DisplayClass15_1:<CrossProcess_NamedMutex_ProtectedFileAccessAtomic>b__2():bool:this
         -12 (-1.19% of base) : 172030.dasm - <StreamWriter_WriteAsync_EmitBOMAndFlushDataWhenBufferIsFull>d__24:MoveNext():this
         -12 (-1.19% of base) : 153946.dasm - <StreamWriter_WriteAsync_EmitBOMAndFlushDataWhenBufferIsFull>d__24:MoveNext():this

548 total methods with Code Size differences (232 improved, 316 regressed), 1178 unchanged.


@BruceForstall
Copy link
Contributor

In the issue you state,

This looks like an edge case, genFinalizeFrame does not believe that a stack probe is necessary because compLclFrameSize is 0xffc, but when we call genAllocLclFrame the frame size has grown to 0x1000.

Who increases the size of compLclFrameSize? Presumably it happens when compiler->lvaAssignFrameOffsets(Compiler::FINAL_FRAME_LAYOUT); is called later in genFinalizeFrame? It seems like the ARM code that checks this in genFinalizeFrame,

if (compiler->compLclFrameSize >= compiler->eeGetPageSize())
{
regSet.rsSetRegsModified(RBM_STACK_PROBE_HELPER_ARG | RBM_STACK_PROBE_HELPER_CALL_TARGET |
RBM_STACK_PROBE_HELPER_TRASH);
}
, maybe should be more conservative, based on who is increasing that size? (Maybe compLclFrameSize should be a PhasedVar).

Your change seems fine, but presumably it is causing diffs because it is being conservative in some dimension even when it ends up not being required sometime?

@jakobbotsch
Copy link
Member Author

Who increases the size of compLclFrameSize? Presumably it happens when compiler->lvaAssignFrameOffsets(Compiler::FINAL_FRAME_LAYOUT); is called later in genFinalizeFrame?

Correct, it happens because LSRA also does a frame layout, and during this frame layout when we call lvaAllocateTemps we do not allocate any space for temps since lvaGetMaxSpillTempSize() returns 0.

It seems like the ARM code that checks this in genFinalizeFrame, ... maybe should be more conservative, based on who is increasing that size? (Maybe compLclFrameSize should be a PhasedVar).
Your change seems fine, but presumably it is causing diffs because it is being conservative in some dimension even when it ends up not being required sometime?

Not totally sure I understand the suggested alternative. Indeed this might be conservative. But there are several comments that reference that it may be problematic to underestimate the size of temps during LSRA, e.g.

// TODO-Review: Prior to reg predict we reserve 24 bytes for Spill temps.
// after the reg predict we will use a computed maxTmpSize
// which is based upon the number of spill temps predicted by reg predict
// All this is necessary because if we under-estimate the size of the spill
// temps we could fail when encoding instructions that reference stack offsets for ARM.
//
// Pre codegen max spill temp size.
static const unsigned MAX_SPILL_TEMP_SIZE = 24;

if (opts.MinOpts())
{
// Have a recovery path in case we fail to reserve REG_OPT_RSVD and go
// over the limit of SP and FP offset ranges due to large
// temps.
JITDUMP(" Returning true (MinOpts)\n\n");
return true;
}

Currently, we are always allocating 0 bytes for temps during the frame layout in LSRA, so any time we need temps we underestimate the size. By the way, the reason I think it usually does not cause problems is that lvaFrameSize used in compRsvdRegCheck is already conservative enough to normally make up for the underestimated size of temps, since it assumes we will need to store all non-volatile registers which is almost never the case. It might be possible to make a case where we do return false from compRsvdRegCheck when actually we will need it if enough registers are in use and enough spill temps are needed. I think the same check is the cause of the diffs, since we are now returning true from compRsvdRegCheck more often than before.

@jakobbotsch
Copy link
Member Author

jakobbotsch commented Sep 14, 2021

I looked at this a bit more, but I think compRsvdRegCheck returning a wrong value is extremely hard or impossible to hit because it requires us to allocate all non-volatile registers while still having the LSRA frame layout size be close to the final frame layout size. The former does not happen in debug code (I think), and the latter is very hard to see in non-debug code (all locals need to have a stack home -- probably not impossible with EH write-thru, but I gave up on getting LSRA to do what I wanted). This is because it seems hard to get a significant amount of spill temps -- not sure if it's possible to have arbitrary many of these.

@jakobbotsch
Copy link
Member Author

I don't see the segfault in preview 7 with the original example, but it's very likely that there just is some slightly different stack usage that causes the edge case to not be hit. The code was last changed in #48199 but that seems to just be a refactoring, before that it has been a while. So this might not be a .NET 6 regression. I'm not sure whether this needs to be backported or not.

We could potentially add the temps size where we check for the stack probe. I'm not totally comfortable with this since the code tries to take special care to handle temps during frame layout with comments about why, but it would at least resolve the regressions.

@JulieLeeMSFT
Copy link
Member

@BruceForstall @AndyAyersMS @kunalspathak PTAL ASAP before RC2 snap.
@jakobbotsch have you checked if this repros on .NET5?

@jakobbotsch
Copy link
Member Author

@JulieLeeMSFT I don't see the segfault on .NET 5 with the original program but it is likely that the underlying issue is there and just needs a slightly different program to be hit. So I can't confirm whether or not this is a .NET 6 regression, but I would assume we have been using the frame size this way to check stack probes for a long time and that it therefore is not a regression.

@JulieLeeMSFT
Copy link
Member

I would assume we have been using the frame size this way to check stack probes for a long time and that it therefore is not a regression.

OK. Then I am marking this as .NET7.

@JulieLeeMSFT JulieLeeMSFT added this to the 7.0.0 milestone Sep 14, 2021
@BruceForstall
Copy link
Contributor

The comments you reference above in compiler.h:

// TODO-Review: Prior to reg predict we reserve 24 bytes for Spill temps.
// after the reg predict we will use a computed maxTmpSize
// which is based upon the number of spill temps predicted by reg predict
// All this is necessary because if we under-estimate the size of the spill
// temps we could fail when encoding instructions that reference stack offsets for ARM.
//
// Pre codegen max spill temp size.
static const unsigned MAX_SPILL_TEMP_SIZE = 24;

refer to the pre-RyuJIT register predictor, which had very different spill temp behavior. In particular, it couldn't guarantee the number of spill temps required before codegen started, whereas LSRA does make that guarantee, so now, final frame layout knows the exact number and size. I guess we still need to be conservative before that point, as the comments for lvaGetMaxSpillTempSize indicate.

Copy link
Contributor

@BruceForstall BruceForstall left a comment

Choose a reason for hiding this comment

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

LGTM

@jakobbotsch
Copy link
Member Author

The failure is a Mono job so does not seem related.

@jakobbotsch jakobbotsch merged commit ba43e08 into dotnet:main Sep 23, 2021
@jakobbotsch jakobbotsch deleted the fix-58293 branch September 23, 2021 15:17
@ghost ghost locked as resolved and limited conversation to collaborators Nov 3, 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.

ARM32: Runtime crash with interfaces
3 participants