Skip to content

Conversation

@kunalspathak
Copy link
Contributor

While investigating #41704 I noticed that we do not use zero register often, but instead move #0 to a register and then use that register. This minor PR fixes that issue (thanks to @echesakov for cross checking the fix). For Arm64, we would just mark such node as contained and then, wherever that value is used, code generation already handles the cases for 0 immediate by emitting REG_ZR.

@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 4, 2021
@kunalspathak
Copy link
Contributor Author

Windows Arm64 (libraries.pmi)

 Summary of Code Size diffs: (Lower is better) Total bytes of base: 17847844 Total bytes of diff: 17789184 Total bytes of delta: -58660 (-0.33% of base) diff is an improvement. 
Detail diffs
 Top file regressions (bytes): 112 : 172426.dasm (0.95% of base) 44 : 23832.dasm (2.61% of base) 40 : 131859.dasm (3.08% of base) 32 : 207482.dasm (3.56% of base) 32 : 208471.dasm (3.56% of base) 32 : 48254.dasm (2.99% of base) 28 : 162530.dasm (13.21% of base) 28 : 129812.dasm (1.69% of base) 28 : 70300.dasm (4.07% of base) 24 : 12160.dasm (2.37% of base) 20 : 158519.dasm (6.02% of base) 20 : 71101.dasm (3.09% of base) 20 : 196316.dasm (6.76% of base) 20 : 228882.dasm (1.64% of base) 20 : 74982.dasm (35.71% of base) 20 : 45337.dasm (1.06% of base) 20 : 48004.dasm (15.15% of base) 20 : 44902.dasm (1.00% of base) 20 : 199873.dasm (14.29% of base) 20 : 80805.dasm (2.89% of base) Top file improvements (bytes): -288 : 74118.dasm (-3.39% of base) -208 : 53074.dasm (-0.66% of base) -140 : 23310.dasm (-0.64% of base) -128 : 207471.dasm (-15.61% of base) -128 : 207248.dasm (-15.76% of base) -120 : 172152.dasm (-7.06% of base) -116 : 136855.dasm (-5.98% of base) -112 : 47481.dasm (-1.99% of base) -112 : 206832.dasm (-14.51% of base) -108 : 172156.dasm (-2.75% of base) -108 : 187258.dasm (-1.54% of base) -108 : 73451.dasm (-5.68% of base) -100 : 202480.dasm (-1.01% of base) -92 : 74161.dasm (-3.25% of base) -92 : 73491.dasm (-5.69% of base) -88 : 51432.dasm (-1.66% of base) -84 : 73639.dasm (-6.00% of base) -80 : 47746.dasm (-1.25% of base) -80 : 73493.dasm (-5.46% of base) -76 : 127773.dasm (-1.70% of base) 10071 total files with Code Size differences (9593 improved, 478 regressed), 23015 unchanged. Top method regressions (bytes): 112 ( 0.95% of base) : 172426.dasm - System.Formats.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset,bool):this 44 ( 2.61% of base) : 23832.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetDeclarationName(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):System.String:this 40 ( 3.08% of base) : 131859.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:IsDefault(System.Object):bool 32 ( 3.56% of base) : 207482.dasm - <>c:<OpenProcessor>b__15_0(System.Security.Cryptography.HashAlgorithmName):System.Security.Cryptography.RsaPaddingProcessor:this 32 ( 3.56% of base) : 208471.dasm - <>c:<OpenProcessor>b__15_0(System.Security.Cryptography.HashAlgorithmName):System.Security.Cryptography.RsaPaddingProcessor:this 32 ( 2.99% of base) : 48254.dasm - Microsoft.CodeAnalysis.VisualBasic.InitializerSemanticModel:Bind(Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this 28 (13.21% of base) : 162530.dasm - System.Data.OleDb.OleDbConnection:get_Provider():System.String:this 28 ( 1.69% of base) : 129812.dasm - <MapValuesImpl>d__1:MoveNext():bool:this 28 ( 4.07% of base) : 70300.dasm - TypeBinder:GetBaseNamesForDiagnostic(Microsoft.CodeAnalysis.VisualBasic.Syntax.TypeSyntax):System.String 24 ( 2.37% of base) : 12160.dasm - OperatorIntrinsics:GetArraySlice4D(System.__Canon[,,,],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32]):System.__Canon[,,,] 20 ( 6.02% of base) : 158519.dasm - System.Configuration.ClientConfigurationHost:GetStreamName(System.String):System.String:this 20 ( 3.09% of base) : 71101.dasm - ComClassData:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData):this 20 ( 6.76% of base) : 196316.dasm - System.Net.Sockets.SocketPal:TransmitFileHelper(System.Runtime.InteropServices.SafeHandle,System.Runtime.InteropServices.SafeHandle,long,long,int,long,int,int):bool 20 ( 1.64% of base) : 228882.dasm - <GetCommandSyntax>d__10:MoveNext():bool:this 20 (35.71% of base) : 74982.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider:GetStrongNameInterface():Microsoft.CodeAnalysis.Interop.IClrStrongName:this 20 ( 1.06% of base) : 45337.dasm - <GetMethodsToEmit>d__68:MoveNext():bool:this 20 (15.15% of base) : 48004.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:get_ContainingModule():Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol:this 20 ( 1.00% of base) : 44902.dasm - <Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__31:MoveNext():bool:this 20 (14.29% of base) : 199873.dasm - System.Reflection.TypeLoading.RoConstructor:ToString():System.String:this 20 ( 2.89% of base) : 80805.dasm - <GetTopLevelTypes>d__8:MoveNext():bool:this Top method improvements (bytes): -288 (-3.39% of base) : 74118.dasm - Microsoft.Cci.PeWriter:WriteHeaders(System.IO.Stream,Microsoft.Cci.NtHeader,Microsoft.Cci.CoffHeader,System.Collections.Generic.List`1[[Microsoft.Cci.SectionHeader, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],byref):this -208 (-0.66% of base) : 53074.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this -140 (-0.64% of base) : 23310.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this -128 (-15.61% of base) : 207471.dasm - System.Security.Cryptography.RSAKeyFormatHelper:WritePkcs1PrivateKey(byref):System.Formats.Asn1.AsnWriter -128 (-15.76% of base) : 207248.dasm - System.Security.Cryptography.RSA:ToXmlString(bool):System.String:this -120 (-7.06% of base) : 172152.dasm - System.Drawing.ColorTranslator:FromOle(int):System.Drawing.Color -116 (-5.98% of base) : 136855.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToDecimal(System.Object,System.Globalization.NumberFormatInfo):System.Decimal -112 (-1.99% of base) : 47481.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:InterpretForEachStatementCollection(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,byref,byref,byref,byref,byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this -112 (-14.51% of base) : 206832.dasm - System.Security.Cryptography.DSA:ToXmlString(bool):System.String:this -108 (-2.75% of base) : 172156.dasm - System.Drawing.ColorTranslator:InitializeHtmlSysColorTable() -108 (-1.54% of base) : 187258.dasm - System.Net.HttpListener:HandleAuthentication(System.Net.HttpListenerSession,System.Net.RequestContextBase,byref):System.Net.HttpListenerContext:this -108 (-5.68% of base) : 73451.dasm - Microsoft.Cci.MetadataWriter:SerializeAssemblyRefTable(Microsoft.Cci.BlobBuilder,Microsoft.Cci.MetadataSizes):this -100 (-1.01% of base) : 202480.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,System.Int32[],System.Int32[]):this -92 (-3.25% of base) : 74161.dasm - Microsoft.Cci.PeWriter:WriteDirectory(Directory,Microsoft.Cci.BlobBuilder,int,int,int,int,Microsoft.Cci.BlobBuilder):this -92 (-5.69% of base) : 73491.dasm - Microsoft.Cci.MetadataWriter:SerializeTypeDefTable(Microsoft.Cci.BlobBuilder,Microsoft.Cci.MetadataSizes):this -88 (-1.66% of base) : 51432.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberMethodSymbol:BindSingleHandlesClause(Microsoft.CodeAnalysis.VisualBasic.Syntax.HandlesClauseItemSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],byref):Microsoft.CodeAnalysis.VisualBasic.HandledEvent:this -84 (-6.00% of base) : 73639.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalScopeTable(Microsoft.Cci.BlobBuilder,Microsoft.Cci.MetadataSizes):this -80 (-1.25% of base) : 47746.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindAwait(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.DiagnosticBag,bool):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this -80 (-5.46% of base) : 73493.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodDefTable(Microsoft.Cci.BlobBuilder,Microsoft.Cci.MetadataSizes,int):this -76 (-1.70% of base) : 127773.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteMember(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.AttributeAccessor,System.Xml.Serialization.TypeDesc,System.String):this Top method regressions (percentages): 16 (36.36% of base) : 163511.dasm - System.Diagnostics.Activity:GetTagItem(System.String):System.Object:this 20 (35.71% of base) : 74982.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider:GetStrongNameInterface():Microsoft.CodeAnalysis.Interop.IClrStrongName:this 16 (25.00% of base) : 230960.dasm - <>c:<GetData>b__17_1(System.Object):System.String:this 16 (23.53% of base) : 77003.dasm - Microsoft.CodeAnalysis.SyntaxToken:get_Language():System.String:this 16 (23.53% of base) : 77096.dasm - Microsoft.CodeAnalysis.SyntaxTrivia:get_Language():System.String:this 16 (22.22% of base) : 116544.dasm - System.Xml.XmlTextReader:LookupNamespace(System.String):System.String:this 16 (21.05% of base) : 76977.dasm - Microsoft.CodeAnalysis.SyntaxToken:GetAnnotations(System.String):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxAnnotation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 16 (21.05% of base) : 76979.dasm - Microsoft.CodeAnalysis.SyntaxToken:GetAnnotations(System.Collections.Generic.IEnumerable`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxAnnotation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 16 (21.05% of base) : 117359.dasm - System.Xml.XmlValidatingReader:LookupNamespace(System.String):System.String:this 16 (20.00% of base) : 76826.dasm - Microsoft.CodeAnalysis.SyntaxNode:Ancestors(bool):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 16 (19.05% of base) : 16249.dasm - System.Threading.Tasks.Task`1[Byte][System.Byte]:get_DebuggerDisplayMethodDescription():System.String:this 16 (19.05% of base) : 23453.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:FreezeDeclarationDiagnostics():System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.Diagnostic, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 16 (18.18% of base) : 164473.dasm - System.Diagnostics.DiagnosticsConfiguration:get_ConfigFilePath():System.String 16 (18.18% of base) : 158751.dasm - System.Configuration.ConfigurationException:GetXmlNodeFilename(System.Xml.XmlNode):System.String 16 (16.67% of base) : 135946.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(System.__Canon):System.IDisposable:this 20 (15.15% of base) : 48004.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:get_ContainingModule():Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol:this 8 (14.29% of base) : 134216.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstantCallSite:get_ServiceType():System.Type:this 20 (14.29% of base) : 199873.dasm - System.Reflection.TypeLoading.RoConstructor:ToString():System.String:this 28 (13.21% of base) : 162530.dasm - System.Data.OleDb.OleDbConnection:get_Provider():System.String:this 16 (12.12% of base) : 135947.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(ubyte):System.IDisposable:this Top method improvements (percentages): -20 (-29.41% of base) : 216957.dasm - System.Text.Json.JsonEncodedText:get_EncodedUtf8Bytes():System.ReadOnlySpan`1[Byte]:this -32 (-25.00% of base) : 194898.dasm - System.Net.Security.SslApplicationProtocol:op_Equality(System.Net.Security.SslApplicationProtocol,System.Net.Security.SslApplicationProtocol):bool -32 (-23.53% of base) : 194899.dasm - System.Net.Security.SslApplicationProtocol:op_Inequality(System.Net.Security.SslApplicationProtocol,System.Net.Security.SslApplicationProtocol):bool -16 (-23.53% of base) : 209194.dasm - Internal.Cryptography.PkcsHelpers:ToSkiString(System.Byte[]):System.String -16 (-23.53% of base) : 212139.dasm - System.Security.Cryptography.Xml.Utils:EncodeHexString(System.Byte[]):System.String -16 (-23.53% of base) : 217646.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.ReadOnlySpan`1[Char]):this -16 (-23.53% of base) : 217650.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.ReadOnlySpan`1[Byte]):this -16 (-23.53% of base) : 217654.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.ReadOnlySpan`1[Char],System.Text.Json.JsonEncodedText):this -16 (-23.53% of base) : 217657.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.ReadOnlySpan`1[Byte],System.Text.Json.JsonEncodedText):this -52 (-22.03% of base) : 217639.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.Text.Json.JsonEncodedText):this -16 (-19.05% of base) : 199795.dasm - System.Reflection.NameFilterCaseSensitive:Matches(System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.MetadataReader):bool:this -20 (-17.24% of base) : 194894.dasm - System.Net.Security.SslApplicationProtocol:Equals(System.Net.Security.SslApplicationProtocol):bool:this -16 (-16.67% of base) : 211123.dasm - System.Security.Cryptography.X509Certificates.ECDsaX509SignatureGenerator:SignData(System.Byte[],System.Security.Cryptography.HashAlgorithmName):System.Byte[]:this -16 (-16.67% of base) : 217884.dasm - System.Text.Json.Utf8JsonWriter:WriteStartArray(System.Text.Json.JsonEncodedText):this -16 (-16.67% of base) : 217885.dasm - System.Text.Json.Utf8JsonWriter:WriteStartObject(System.Text.Json.JsonEncodedText):this -128 (-15.76% of base) : 207248.dasm - System.Security.Cryptography.RSA:ToXmlString(bool):System.String:this -20 (-15.62% of base) : 216980.dasm - System.Text.Json.JsonHelpers:GetSpan(byref):System.ReadOnlySpan`1[Byte] -128 (-15.61% of base) : 207471.dasm - System.Security.Cryptography.RSAKeyFormatHelper:WritePkcs1PrivateKey(byref):System.Formats.Asn1.AsnWriter -16 (-15.38% of base) : 217687.dasm - System.Text.Json.Utf8JsonWriter:WritePropertyName(System.Text.Json.JsonEncodedText):this -16 (-15.38% of base) : 217566.dasm - System.Text.Json.Utf8JsonWriter:WriteStringValue(System.Text.Json.JsonEncodedText):this 10071 total methods with Code Size differences (9593 improved, 478 regressed), 23015 unchanged. 

 Summary of Perf Score diffs: (Lower is better) Total PerfScoreUnits of base: 33830580738783864 Total PerfScoreUnits of diff: 33830580705062888 Total PerfScoreUnits of delta: -33721842.54 (-0.00% of base) diff is an improvement. 
Detail diffs
 Top file regressions (PerfScoreUnits): 60.10 : 141301.dasm (3.20% of base) 51.35 : 190534.dasm (3.14% of base) 42.20 : 132661.dasm (1.28% of base) 19.45 : 172426.dasm (0.56% of base) 16.40 : 117148.dasm (0.23% of base) 12.20 : 116878.dasm (3.11% of base) 9.40 : 23832.dasm (2.49% of base) 8.40 : 215676.dasm (1.30% of base) 8.40 : 40560.dasm (0.74% of base) 7.05 : 162530.dasm (13.77% of base) 6.25 : 78906.dasm (9.96% of base) 6.20 : 54862.dasm (3.12% of base) 6.20 : 54876.dasm (3.11% of base) 6.20 : 54891.dasm (3.12% of base) 6.20 : 54905.dasm (3.11% of base) 6.00 : 204901.dasm (0.29% of base) 6.00 : 80805.dasm (2.38% of base) 5.75 : 71101.dasm (3.20% of base) 5.75 : 74982.dasm (31.34% of base) 5.75 : 199873.dasm (10.50% of base) Top file improvements (PerfScoreUnits): -33652820.00 : 51429.dasm (-0.00% of base) -23902.00 : 47425.dasm (-0.05% of base) -20480.80 : 127509.dasm (-0.21% of base) -1651.20 : 127770.dasm (-0.42% of base) -1095.00 : 161035.dasm (-0.79% of base) -1095.00 : 163006.dasm (-0.79% of base) -1026.20 : 21282.dasm (-0.15% of base) -772.50 : 174127.dasm (-3.54% of base) -530.10 : 194385.dasm (-0.44% of base) -473.90 : 140492.dasm (-7.36% of base) -280.55 : 47892.dasm (-0.17% of base) -259.70 : 174005.dasm (-3.46% of base) -259.50 : 214859.dasm (-0.85% of base) -193.70 : 47760.dasm (-0.24% of base) -189.20 : 47750.dasm (-0.29% of base) -136.80 : 53074.dasm (-0.30% of base) -136.15 : 127499.dasm (-0.04% of base) -130.20 : 127408.dasm (-0.19% of base) -128.80 : 155300.dasm (-0.77% of base) -92.60 : 169131.dasm (-0.37% of base) 10157 total files with Perf Score differences (9634 improved, 523 regressed), 22929 unchanged. Top method regressions (PerfScoreUnits): 60.10 ( 3.20% of base) : 141301.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:PopulateDictionary(System.Collections.IDictionary,Newtonsoft.Json.JsonReader,Newtonsoft.Json.Serialization.JsonDictionaryContract,Newtonsoft.Json.Serialization.JsonProperty,System.String):System.Object:this 51.35 ( 3.14% of base) : 190534.dasm - System.Net.Http.HPack.Huffman:Decode(System.ReadOnlySpan`1[Byte],byref):int 42.20 ( 1.28% of base) : 132661.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException 19.45 ( 0.56% of base) : 172426.dasm - System.Formats.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset,bool):this 16.40 ( 0.23% of base) : 117148.dasm - <ParseAttributesAsync>d__531:MoveNext():this 12.20 ( 3.11% of base) : 116878.dasm - System.Xml.XmlTextReaderImpl:DetectEncoding():System.Text.Encoding:this 9.40 ( 2.49% of base) : 23832.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetDeclarationName(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):System.String:this 8.40 ( 1.30% of base) : 215676.dasm - PhoneMapData:InitializePrefix(bool):System.Collections.Hashtable:this 8.40 ( 0.74% of base) : 40560.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportNameCollisionDiagnosticsForAddedModules(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,Microsoft.CodeAnalysis.DiagnosticBag):this 7.05 (13.77% of base) : 162530.dasm - System.Data.OleDb.OleDbConnection:get_Provider():System.String:this 6.25 ( 9.96% of base) : 78906.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:MarkReachableFromBranch(Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],BasicBlock) 6.20 ( 3.12% of base) : 54862.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodToClassRewriter`1[__Canon][System.__Canon]:SubstituteMethodForMyBaseOrMyClassCall(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol):Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this 6.20 ( 3.11% of base) : 54876.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodToClassRewriter`1[__Canon][System.__Canon]:VisitMethodSymbol(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol):Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this 6.20 ( 3.12% of base) : 54891.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodToClassRewriter`1[Byte][System.Byte]:SubstituteMethodForMyBaseOrMyClassCall(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol):Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this 6.20 ( 3.11% of base) : 54905.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodToClassRewriter`1[Byte][System.Byte]:VisitMethodSymbol(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol):Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this 6.00 ( 0.29% of base) : 204901.dasm - System.Numerics.BigIntegerCalculator:Gcd(byref,byref) 6.00 ( 2.38% of base) : 80805.dasm - <GetTopLevelTypes>d__8:MoveNext():bool:this 5.75 ( 3.20% of base) : 71101.dasm - ComClassData:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData):this 5.75 (31.34% of base) : 74982.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider:GetStrongNameInterface():Microsoft.CodeAnalysis.Interop.IClrStrongName:this 5.75 (10.50% of base) : 199873.dasm - System.Reflection.TypeLoading.RoConstructor:ToString():System.String:this Top method improvements (PerfScoreUnits): -33652820.00 (-0.00% of base) : 51429.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberFieldSymbol:Create(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.FieldDeclarationSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,MembersAndInitializersBuilder,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag) -23902.00 (-0.05% of base) : 47425.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeParameterList(Microsoft.CodeAnalysis.VisualBasic.Symbol,bool,int,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.ParameterSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],CheckParameterModifierDelegate,Microsoft.CodeAnalysis.DiagnosticBag):this -20480.80 (-0.21% of base) : 127509.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteEnumAndArrayTypes():this -1651.20 (-0.42% of base) : 127770.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteEnumAndArrayTypes():this -1095.00 (-0.79% of base) : 161035.dasm - System.Data.Common.MultipartIdentifier:ParseMultipartIdentifier(System.String,System.String,System.String,ushort,int,bool,System.String,bool):System.String[] -1095.00 (-0.79% of base) : 163006.dasm - System.Data.Common.MultipartIdentifier:ParseMultipartIdentifier(System.String,System.String,System.String,ushort,int,bool,System.String,bool):System.String[] -1026.20 (-0.15% of base) : 21282.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindInterpolatedString(Microsoft.CodeAnalysis.CSharp.Syntax.InterpolatedStringExpressionSyntax,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this -772.50 (-3.54% of base) : 174127.dasm - System.IO.FileSystem:RemoveDirectoryRecursive(System.String,byref,bool) -530.10 (-0.44% of base) : 194385.dasm - System.Net.TimerThread:ThreadProc() -473.90 (-7.36% of base) : 140492.dasm - Newtonsoft.Json.Utilities.ConvertUtils:DecimalTryParse(System.Char[],int,int,byref):int -280.55 (-0.17% of base) : 47892.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindAttribute(Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundAttribute:this -259.70 (-3.46% of base) : 174005.dasm - <InternalReadAllTextAsync>d__68:MoveNext():this -259.50 (-0.85% of base) : 214859.dasm - System.Speech.Internal.Synthesis.SsmlParser:ParsePhoneme(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,int,SsmlAttributes,bool) -193.70 (-0.24% of base) : 47760.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindInterpolatedStringExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.InterpolatedStringExpressionSyntax,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this -189.20 (-0.29% of base) : 47750.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindFieldAndPropertyInitializers(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,System.Collections.Immutable.ImmutableArray`1[ImmutableArray`1],Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.BoundInitializer, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] -136.80 (-0.30% of base) : 53074.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this -136.15 (-0.04% of base) : 127499.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this -130.20 (-0.19% of base) : 127408.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this -128.80 (-0.77% of base) : 155300.dasm - DependenciesTraversal:TryTraverse(System.ComponentModel.Composition.Primitives.ComposablePartDefinition,byref):bool:this -92.60 (-0.37% of base) : 169131.dasm - System.DirectoryServices.ActiveDirectory.Utils:GetReplicaList(System.DirectoryServices.ActiveDirectory.DirectoryContext,System.String,System.String,bool,bool,bool):System.Collections.ArrayList Top method regressions (percentages): 5.35 (37.15% of base) : 163511.dasm - System.Diagnostics.Activity:GetTagItem(System.String):System.Object:this 5.35 (32.62% of base) : 230960.dasm - <>c:<GetData>b__17_1(System.Object):System.String:this 5.75 (31.34% of base) : 74982.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider:GetStrongNameInterface():Microsoft.CodeAnalysis.Interop.IClrStrongName:this 5.35 (25.36% of base) : 76977.dasm - Microsoft.CodeAnalysis.SyntaxToken:GetAnnotations(System.String):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxAnnotation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 5.35 (25.36% of base) : 76979.dasm - Microsoft.CodeAnalysis.SyntaxToken:GetAnnotations(System.Collections.Generic.IEnumerable`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxAnnotation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 5.35 (24.60% of base) : 76826.dasm - Microsoft.CodeAnalysis.SyntaxNode:Ancestors(bool):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 5.35 (23.21% of base) : 158751.dasm - System.Configuration.ConfigurationException:GetXmlNodeFilename(System.Xml.XmlNode):System.String 5.35 (22.96% of base) : 77003.dasm - Microsoft.CodeAnalysis.SyntaxToken:get_Language():System.String:this 5.35 (22.96% of base) : 77096.dasm - Microsoft.CodeAnalysis.SyntaxTrivia:get_Language():System.String:this 5.35 (22.86% of base) : 23453.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:FreezeDeclarationDiagnostics():System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.Diagnostic, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 5.35 (21.36% of base) : 164473.dasm - System.Diagnostics.DiagnosticsConfiguration:get_ConfigFilePath():System.String 5.35 (20.90% of base) : 135946.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(System.__Canon):System.IDisposable:this 5.35 (18.97% of base) : 116544.dasm - System.Xml.XmlTextReader:LookupNamespace(System.String):System.String:this 5.35 (17.89% of base) : 16249.dasm - System.Threading.Tasks.Task`1[Byte][System.Byte]:get_DebuggerDisplayMethodDescription():System.String:this 5.35 (16.93% of base) : 117359.dasm - System.Xml.XmlValidatingReader:LookupNamespace(System.String):System.String:this 5.35 (15.88% of base) : 135947.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(ubyte):System.IDisposable:this 5.35 (15.88% of base) : 135948.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(short):System.IDisposable:this 5.35 (15.88% of base) : 135949.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(int):System.IDisposable:this 5.35 (15.88% of base) : 135952.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(long):System.IDisposable:this 7.05 (13.77% of base) : 162530.dasm - System.Data.OleDb.OleDbConnection:get_Provider():System.String:this Top method improvements (percentages): -5.00 (-25.58% of base) : 216957.dasm - System.Text.Json.JsonEncodedText:get_EncodedUtf8Bytes():System.ReadOnlySpan`1[Byte]:this -4.10 (-24.05% of base) : 209194.dasm - Internal.Cryptography.PkcsHelpers:ToSkiString(System.Byte[]):System.String -4.10 (-24.05% of base) : 212139.dasm - System.Security.Cryptography.Xml.Utils:EncodeHexString(System.Byte[]):System.String -4.10 (-23.36% of base) : 217646.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.ReadOnlySpan`1[Char]):this -4.10 (-23.36% of base) : 217650.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.ReadOnlySpan`1[Byte]):this -4.10 (-23.36% of base) : 217654.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.ReadOnlySpan`1[Char],System.Text.Json.JsonEncodedText):this -4.10 (-23.36% of base) : 217657.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.ReadOnlySpan`1[Byte],System.Text.Json.JsonEncodedText):this -2.90 (-20.86% of base) : 210004.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeContents:Decrypt(System.ReadOnlySpan`1[Byte]):this -11.20 (-18.41% of base) : 217639.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.Text.Json.JsonEncodedText):this -4.70 (-17.70% of base) : 194898.dasm - System.Net.Security.SslApplicationProtocol:op_Equality(System.Net.Security.SslApplicationProtocol,System.Net.Security.SslApplicationProtocol):bool -4.10 (-17.34% of base) : 199795.dasm - System.Reflection.NameFilterCaseSensitive:Matches(System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.MetadataReader):bool:this -4.70 (-16.58% of base) : 194899.dasm - System.Net.Security.SslApplicationProtocol:op_Inequality(System.Net.Security.SslApplicationProtocol,System.Net.Security.SslApplicationProtocol):bool -4.20 (-16.22% of base) : 158503.dasm - System.Configuration.ClientConfigurationHost:get_HasRoamingConfig():bool:this -4.20 (-16.22% of base) : 158504.dasm - System.Configuration.ClientConfigurationHost:get_HasLocalConfig():bool:this -4.10 (-15.56% of base) : 217884.dasm - System.Text.Json.Utf8JsonWriter:WriteStartArray(System.Text.Json.JsonEncodedText):this -4.10 (-15.56% of base) : 217885.dasm - System.Text.Json.Utf8JsonWriter:WriteStartObject(System.Text.Json.JsonEncodedText):this -4.10 (-14.07% of base) : 211477.dasm - System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension:EncodeExtension(System.String):System.Byte[] -4.10 (-14.07% of base) : 211478.dasm - System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension:EncodeExtension(System.Security.Cryptography.X509Certificates.PublicKey,int):System.Byte[] -32.82 (-13.94% of base) : 207471.dasm - System.Security.Cryptography.RSAKeyFormatHelper:WritePkcs1PrivateKey(byref):System.Formats.Asn1.AsnWriter -3.75 (-13.35% of base) : 194894.dasm - System.Net.Security.SslApplicationProtocol:Equals(System.Net.Security.SslApplicationProtocol):bool:this 10157 total methods with Perf Score differences (9634 improved, 523 regressed), 22929 unchanged. 

Windows Arm64 (benchmarks_run)

 Summary of Code Size diffs: (Lower is better) Total bytes of base: 3851332 Total bytes of diff: 3841848 Total bytes of delta: -9484 (-0.25% of base) diff is an improvement. 
Detail diffs
 Top file regressions (bytes): 40 : 11078.dasm (16.39% of base) 36 : 19279.dasm (2.09% of base) 32 : 2254.dasm (1.10% of base) 32 : 240.dasm (3.72% of base) 32 : 12831.dasm (1.64% of base) 32 : 20403.dasm (3.36% of base) 28 : 8456.dasm (0.77% of base) 24 : 756.dasm (13.04% of base) 20 : 17764.dasm (9.09% of base) 20 : 18043.dasm (1.02% of base) 16 : 15412.dasm (2.08% of base) 16 : 20010.dasm (0.98% of base) 16 : 2261.dasm (12.12% of base) 16 : 20383.dasm (2.84% of base) 16 : 13929.dasm (2.33% of base) 16 : 20404.dasm (3.03% of base) 16 : 16245.dasm (23.53% of base) 12 : 17700.dasm (5.17% of base) 12 : 7356.dasm (1.80% of base) 12 : 16354.dasm (3.95% of base) Top file improvements (bytes): -220 : 11881.dasm (-7.31% of base) -140 : 1166.dasm (-1.16% of base) -100 : 10571.dasm (-1.01% of base) -72 : 18725.dasm (-0.71% of base) -72 : 3322.dasm (-1.21% of base) -68 : 12839.dasm (-3.50% of base) -64 : 8426.dasm (-2.28% of base) -64 : 7664.dasm (-1.64% of base) -56 : 12592.dasm (-2.09% of base) -56 : 14216.dasm (-0.97% of base) -56 : 7637.dasm (-0.72% of base) -56 : 5530.dasm (-1.83% of base) -52 : 20919.dasm (-1.18% of base) -48 : 14222.dasm (-0.88% of base) -44 : 14233.dasm (-3.20% of base) -44 : 14228.dasm (-2.56% of base) -44 : 2045.dasm (-0.36% of base) -40 : 3757.dasm (-2.48% of base) -40 : 13258.dasm (-2.62% of base) -40 : 7648.dasm (-1.51% of base) 1719 total files with Code Size differences (1556 improved, 163 regressed), 3979 unchanged. Top method regressions (bytes): 40 (16.39% of base) : 11078.dasm - ProtoBuf.Meta.TypeModel:ResolveKnownType(System.String,ProtoBuf.Meta.TypeModel,System.Reflection.Assembly):System.Type 36 ( 2.09% of base) : 19279.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetDeclarationName(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):System.String:this 32 ( 1.10% of base) : 2254.dasm - System.Uri:GetUriPartsFromUserString(int):System.String:this 32 ( 3.72% of base) : 240.dasm - System.Globalization.CultureData:InitIcuCultureDataCore():bool:this 32 ( 1.64% of base) : 12831.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner) 32 ( 3.36% of base) : 20403.dasm - DynamicClass:Regex12_Go(System.Text.RegularExpressions.RegexRunner) 28 ( 0.77% of base) : 8456.dasm - <ReceiveBlobAsync>d__172`1[SyncReadWriteAdapter][System.Net.Security.SyncReadWriteAdapter]:MoveNext():this 24 (13.04% of base) : 756.dasm - DefaultCharacteristicPresenter:ToPresentation(System.Object):System.String 20 ( 9.09% of base) : 17764.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:MarkReachableFromBranch(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],BasicBlock) 20 ( 1.02% of base) : 18043.dasm - <Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__31:MoveNext():bool:this 16 ( 2.08% of base) : 15412.dasm - DynamicClass:Regex6_Go(System.Text.RegularExpressions.RegexRunner) 16 ( 0.98% of base) : 20010.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:PopulateDictionary(System.Collections.IDictionary,Newtonsoft.Json.JsonReader,Newtonsoft.Json.Serialization.JsonDictionaryContract,Newtonsoft.Json.Serialization.JsonProperty,System.String):System.Object:this 16 (12.12% of base) : 2261.dasm - System.Uri:Compress(System.Char[],int,byref,System.UriParser) 16 ( 2.84% of base) : 20383.dasm - DynamicClass:Regex2_Go(System.Text.RegularExpressions.RegexRunner) 16 ( 2.33% of base) : 13929.dasm - System.DateTimeParse:DTFITrace(System.Globalization.DateTimeFormatInfo) 16 ( 3.03% of base) : 20404.dasm - DynamicClass:Regex13_Go(System.Text.RegularExpressions.RegexRunner) 16 (23.53% of base) : 16245.dasm - Microsoft.CodeAnalysis.SyntaxToken:get_Language():System.String:this 12 ( 5.17% of base) : 17700.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitSequencePointStatement(Microsoft.CodeAnalysis.CSharp.BoundSequencePointWithSpan):this 12 ( 1.80% of base) : 7356.dasm - System.String:JoinCore(System.ReadOnlySpan`1[Char],System.Object[]):System.String 12 ( 3.95% of base) : 16354.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[__Canon,__Canon][System.__Canon,System.__Canon]:GetResolvedReferenceAndFreePropertyMapEntry(Microsoft.CodeAnalysis.MetadataReference,int,ubyte,System.Collections.Generic.Dictionary`2[[Microsoft.CodeAnalysis.MetadataReference, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.MergedAliases, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):ResolvedReference[__Canon,__Canon] Top method improvements (bytes): -220 (-7.31% of base) : 11881.dasm - Jil.Serialize.Methods:_WriteEncodedStringWithQuotesWithNullsInlineUnsafe_ThunkWriter(byref,System.String) -140 (-1.16% of base) : 1166.dasm - Product:CreateLists() -100 (-1.01% of base) : 10571.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,System.Int32[],System.Int32[]):this -72 (-0.71% of base) : 18725.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemFormatter2:Serialize(byref,MicroBenchmarks.Serializers.MyEventsListerItem,Utf8Json.IJsonFormatterResolver):this -72 (-1.21% of base) : 3322.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_LocationFormatter1:Serialize(byref,MicroBenchmarks.Serializers.Location,Utf8Json.IJsonFormatterResolver):this -68 (-3.50% of base) : 12839.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_LocationFormatter1:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.Location:this -64 (-2.28% of base) : 8426.dasm - System.Net.Security.SafeDeleteContext:InitializeSecurityContext(byref,byref,System.String,int,int,System.Net.Security.InputSecurityBuffers,byref,byref):int -64 (-1.64% of base) : 7664.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WritePrimitive(System.Xml.Serialization.TypeMapping,System.String):this -56 (-2.09% of base) : 12592.dasm - System.Net.Security.SafeDeleteContext:AcceptSecurityContext(byref,byref,int,int,System.Net.Security.InputSecurityBuffers,byref,byref):int -56 (-0.97% of base) : 14216.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Serialize(byref,MicroBenchmarks.Serializers.ActiveOrUpcomingEvent,Utf8Json.IJsonFormatterResolver):this -56 (-0.72% of base) : 7637.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this -56 (-1.83% of base) : 5530.dasm - Number:ParseNumber(byref,long,int,byref,System.Text.StringBuilder,System.Globalization.NumberFormatInfo,bool):bool -52 (-1.18% of base) : 20919.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):bool:this -48 (-0.88% of base) : 14222.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_CampaignSummaryViewModelFormatter3:Serialize(byref,MicroBenchmarks.Serializers.CampaignSummaryViewModel,Utf8Json.IJsonFormatterResolver):this -44 (-3.20% of base) : 14233.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_CampaignSummaryViewModelFormatter3:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.CampaignSummaryViewModel:this -44 (-2.56% of base) : 14228.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this -44 (-0.36% of base) : 2045.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this -40 (-2.48% of base) : 3757.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteSourceBegin(System.String):this -40 (-2.62% of base) : 13258.dasm - JetStream.Statistics:findOptimalSegmentationInternal(System.Single[][],System.Int32[][],System.Double[],JetStream.SampleVarianceUpperTriangularMatrix,int) -40 (-1.51% of base) : 7648.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteMemberBegin(System.Xml.Serialization.XmlSerializationReaderILGen+Member[]):this Top method regressions (percentages): 16 (23.53% of base) : 16245.dasm - Microsoft.CodeAnalysis.SyntaxToken:get_Language():System.String:this 40 (16.39% of base) : 11078.dasm - ProtoBuf.Meta.TypeModel:ResolveKnownType(System.String,ProtoBuf.Meta.TypeModel,System.Reflection.Assembly):System.Type 24 (13.04% of base) : 756.dasm - DefaultCharacteristicPresenter:ToPresentation(System.Object):System.String 16 (12.12% of base) : 2261.dasm - System.Uri:Compress(System.Char[],int,byref,System.UriParser) 8 (10.00% of base) : 6577.dasm - System.Runtime.Serialization.Formatters.Binary.NameInfo:get_NIname():System.String:this 20 ( 9.09% of base) : 17764.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:MarkReachableFromBranch(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],BasicBlock) 4 ( 8.33% of base) : 11685.dasm - System.Text.Json.Serialization.Converters.ByteArrayConverter:Write(System.Text.Json.Utf8JsonWriter,System.Byte[],System.Text.Json.JsonSerializerOptions):this 4 ( 6.67% of base) : 15197.dasm - Span.IndexerBench:Indexer6():ubyte:this 12 ( 6.25% of base) : 17328.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:WaitForWorkers():this 4 ( 6.25% of base) : 10752.dasm - System.Tests.Perf_String:Split(System.String,System.Char[],int):System.String[]:this 12 ( 6.12% of base) : 17298.dasm - Microsoft.CodeAnalysis.CSharp.ClsComplianceChecker:WaitForWorkers():this 8 ( 5.71% of base) : 24126.dasm - System.Collections.Tests.Add_Remove_SteadyState`1[Int32][System.Int32]:ConcurrentBag():this 8 ( 5.71% of base) : 12957.dasm - System.Collections.Tests.Add_Remove_SteadyState`1[__Canon][System.__Canon]:ConcurrentBag():this 4 ( 5.56% of base) : 17672.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter:VisitStatementList(Microsoft.CodeAnalysis.CSharp.BoundStatementList):Microsoft.CodeAnalysis.CSharp.BoundNode:this 4 ( 5.26% of base) : 21724.dasm - System.Buffers.Text.Tests.Base64EncodeDecodeInPlaceTests:Base64EncodeInPlace():int:this 12 ( 5.17% of base) : 17700.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitSequencePointStatement(Microsoft.CodeAnalysis.CSharp.BoundSequencePointWithSpan):this 4 ( 5.00% of base) : 5341.dasm - System.Threading.Tasks.Task:get_CapturedContext():System.Threading.ExecutionContext:this 4 ( 5.00% of base) : 17675.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter:VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock):Microsoft.CodeAnalysis.CSharp.BoundNode:this 4 ( 4.76% of base) : 20301.dasm - System.Security.Cryptography.Primitives.Tests.Performance.Perf_FixedTimeEquals:FixedTimeEquals_256Bit_SameReference():bool:this 4 ( 4.76% of base) : 14021.dasm - System.Security.Cryptography.Primitives.Tests.Performance.Perf_FixedTimeEquals:FixedTimeEquals_256Bit_Equal():bool:this Top method improvements (percentages): -8 (-14.29% of base) : 13887.dasm - System.Memory.Constructors`1[Byte][System.Byte]:SpanImplicitCastFromArray():System.Span`1[Byte]:this -8 (-14.29% of base) : 21275.dasm - System.Memory.Constructors`1[Byte][System.Byte]:ArrayAsSpan():System.Span`1[Byte]:this -8 (-14.29% of base) : 14458.dasm - System.Memory.Constructors`1[Byte][System.Byte]:ReadOnlySpanImplicitCastFromArray():System.ReadOnlySpan`1[Byte]:this -8 (-14.29% of base) : 915.dasm - System.Diagnostics.Tracing.EventSource:get_ProviderMetadata():System.ReadOnlySpan`1[Byte]:this -8 (-11.76% of base) : 118.dasm - System.Text.Encoding:get_Preamble():System.ReadOnlySpan`1[Byte]:this -8 (-10.53% of base) : 20253.dasm - System.Memory.Constructors`1[Byte][System.Byte]:ReadOnlyMemoryFromArray():System.ReadOnlyMemory`1[Byte]:this -8 (-10.53% of base) : 12535.dasm - System.Memory.Constructors`1[__Canon][System.__Canon]:ReadOnlyMemoryFromArray():System.ReadOnlyMemory`1[__Canon]:this -8 (-10.53% of base) : 19845.dasm - System.Memory.Constructors`1[Byte][System.Byte]:MemoryFromArray():System.Memory`1[Byte]:this -4 (-9.09% of base) : 269.dasm - System.Globalization.CultureData:GetLocaleInfoExInt(System.String,int):int -8 (-8.00% of base) : 12574.dasm - Internal.Cryptography.Pal.CertificatePal:get_HasPrivateKey():bool:this -8 (-8.00% of base) : 19852.dasm - System.Memory.Span`1[Byte][System.Byte]:Clear():this -4 (-7.69% of base) : 3361.dasm - System.Xml.XmlStreamNodeWriter:WriteUTF8Chars(System.String):this -4 (-7.69% of base) : 3398.dasm - System.Xml.XmlUTF8NodeWriter:WriteEscapedText(System.String):this -8 (-7.41% of base) : 2295.dasm - System.Runtime.Serialization.DataContract:IsValidNCName(System.String):bool -8 (-7.41% of base) : 15116.dasm - Newtonsoft.Json.Utilities.ConvertUtils:TryConvert(System.Object,System.Globalization.CultureInfo,System.Type,byref):bool -220 (-7.31% of base) : 11881.dasm - Jil.Serialize.Methods:_WriteEncodedStringWithQuotesWithNullsInlineUnsafe_ThunkWriter(byref,System.String) -4 (-7.14% of base) : 20095.dasm - Span.IndexerBench:WriteViaIndexer1():ubyte:this -4 (-7.14% of base) : 20835.dasm - Span.IndexerBench:KnownSizeArray():ubyte:this -4 (-7.14% of base) : 12881.dasm - Span.IndexerBench:Indexer1():ubyte:this -4 (-7.14% of base) : 18841.dasm - Span.IndexerBench:ReadOnlyIndexer1():ubyte:this 1719 total methods with Code Size differences (1556 improved, 163 regressed), 3979 unchanged. 

 Summary of Perf Score diffs: (Lower is better) Total PerfScoreUnits of base: 936981661.56 Total PerfScoreUnits of diff: 936978864.9100002 Total PerfScoreUnits of delta: -2796.65 (-0.00% of base) diff is an improvement. 
Detail diffs
 Top file regressions (PerfScoreUnits): 60.10 : 20010.dasm (3.20% of base) 12.00 : 11078.dasm (14.39% of base) 8.20 : 240.dasm (4.00% of base) 7.70 : 20403.dasm (3.67% of base) 7.30 : 8456.dasm (0.57% of base) 6.65 : 756.dasm (14.18% of base) 6.25 : 17764.dasm (9.96% of base) 6.00 : 13490.dasm (0.29% of base) 6.00 : 11410.dasm (4.44% of base) 5.85 : 19279.dasm (1.52% of base) 5.70 : 12831.dasm (0.53% of base) 5.70 : 9155.dasm (0.30% of base) 5.35 : 16245.dasm (22.96% of base) 5.20 : 2254.dasm (0.64% of base) 5.10 : 20404.dasm (4.25% of base) 5.10 : 15412.dasm (2.99% of base) 5.10 : 20383.dasm (4.01% of base) 4.70 : 16354.dasm (5.74% of base) 4.45 : 17700.dasm (6.21% of base) 4.40 : 9009.dasm (0.29% of base) Top file improvements (PerfScoreUnits): -116.00 : 13258.dasm (-0.91% of base) -91.65 : 13268.dasm (-0.00% of base) -91.65 : 21679.dasm (-0.00% of base) -83.05 : 3237.dasm (-0.00% of base) -76.25 : 11881.dasm (-2.83% of base) -34.80 : 17731.dasm (-0.36% of base) -34.80 : 4486.dasm (-0.37% of base) -34.80 : 17282.dasm (-0.36% of base) -34.80 : 19418.dasm (-0.38% of base) -34.80 : 710.dasm (-0.37% of base) -34.80 : 4051.dasm (-0.32% of base) -32.80 : 16414.dasm (-0.07% of base) -31.50 : 1166.dasm (-0.73% of base) -28.65 : 14421.dasm (-2.86% of base) -22.50 : 10571.dasm (-0.61% of base) -18.40 : 1623.dasm (-0.09% of base) -17.60 : 5530.dasm (-1.09% of base) -16.80 : 8811.dasm (-0.17% of base) -16.80 : 9505.dasm (-0.50% of base) -16.40 : 16413.dasm (-0.11% of base) 1749 total files with Perf Score differences (1564 improved, 185 regressed), 3949 unchanged. Top method regressions (PerfScoreUnits): 60.10 ( 3.20% of base) : 20010.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:PopulateDictionary(System.Collections.IDictionary,Newtonsoft.Json.JsonReader,Newtonsoft.Json.Serialization.JsonDictionaryContract,Newtonsoft.Json.Serialization.JsonProperty,System.String):System.Object:this 12.00 (14.39% of base) : 11078.dasm - ProtoBuf.Meta.TypeModel:ResolveKnownType(System.String,ProtoBuf.Meta.TypeModel,System.Reflection.Assembly):System.Type 8.20 ( 4.00% of base) : 240.dasm - System.Globalization.CultureData:InitIcuCultureDataCore():bool:this 7.70 ( 3.67% of base) : 20403.dasm - DynamicClass:Regex12_Go(System.Text.RegularExpressions.RegexRunner) 7.30 ( 0.57% of base) : 8456.dasm - <ReceiveBlobAsync>d__172`1[SyncReadWriteAdapter][System.Net.Security.SyncReadWriteAdapter]:MoveNext():this 6.65 (14.18% of base) : 756.dasm - DefaultCharacteristicPresenter:ToPresentation(System.Object):System.String 6.25 ( 9.96% of base) : 17764.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:MarkReachableFromBranch(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],BasicBlock) 6.00 ( 0.29% of base) : 13490.dasm - System.Numerics.BigIntegerCalculator:Gcd(byref,byref) 6.00 ( 4.44% of base) : 11410.dasm - <>c__DisplayClass7_0[__Canon][System.__Canon]:<SetupConcurrentStackIteration>b__1():this 5.85 ( 1.52% of base) : 19279.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetDeclarationName(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):System.String:this 5.70 ( 0.53% of base) : 12831.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner) 5.70 ( 0.30% of base) : 9155.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:PopulateObject(System.Object,Newtonsoft.Json.JsonReader,Newtonsoft.Json.Serialization.JsonObjectContract,Newtonsoft.Json.Serialization.JsonProperty,System.String):System.Object:this 5.35 (22.96% of base) : 16245.dasm - Microsoft.CodeAnalysis.SyntaxToken:get_Language():System.String:this 5.20 ( 0.64% of base) : 2254.dasm - System.Uri:GetUriPartsFromUserString(int):System.String:this 5.10 ( 4.25% of base) : 20404.dasm - DynamicClass:Regex13_Go(System.Text.RegularExpressions.RegexRunner) 5.10 ( 2.99% of base) : 15412.dasm - DynamicClass:Regex6_Go(System.Text.RegularExpressions.RegexRunner) 5.10 ( 4.01% of base) : 20383.dasm - DynamicClass:Regex2_Go(System.Text.RegularExpressions.RegexRunner) 4.70 ( 5.74% of base) : 16354.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[__Canon,__Canon][System.__Canon,System.__Canon]:GetResolvedReferenceAndFreePropertyMapEntry(Microsoft.CodeAnalysis.MetadataReference,int,ubyte,System.Collections.Generic.Dictionary`2[[Microsoft.CodeAnalysis.MetadataReference, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.MergedAliases, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):ResolvedReference[__Canon,__Canon] 4.45 ( 6.21% of base) : 17700.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitSequencePointStatement(Microsoft.CodeAnalysis.CSharp.BoundSequencePointWithSpan):this 4.40 ( 0.29% of base) : 9009.dasm - Newtonsoft.Json.Utilities.ReflectionUtils:GetChildPrivateProperties(System.Collections.Generic.IList`1[[System.Reflection.PropertyInfo, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Type,int) Top method improvements (PerfScoreUnits): -116.00 (-0.91% of base) : 13258.dasm - JetStream.Statistics:findOptimalSegmentationInternal(System.Single[][],System.Int32[][],System.Double[],JetStream.SampleVarianceUpperTriangularMatrix,int) -91.65 (-0.00% of base) : 13268.dasm - DynamicClass:_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel -91.65 (-0.00% of base) : 21679.dasm - DynamicClass:_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel -83.05 (-0.00% of base) : 3237.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,Utf8Json.Internal.Emit.MetaType,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Utf8Json.Internal.Emit.MetaMember, Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27],[System.Boolean, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,int) -76.25 (-2.83% of base) : 11881.dasm - Jil.Serialize.Methods:_WriteEncodedStringWithQuotesWithNullsInlineUnsafe_ThunkWriter(byref,System.String) -34.80 (-0.36% of base) : 17731.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[__Canon,UInt32][System.__Canon,System.UInt32]:TryAddInternal(System.__Canon,System.Nullable`1[Int32],int,bool,bool,byref):bool:this -34.80 (-0.37% of base) : 4486.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Int32,Int32][System.Int32,System.Int32]:TryAddInternal(int,System.Nullable`1[Int32],int,bool,bool,byref):bool:this -34.80 (-0.36% of base) : 17282.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[__Canon,Compliance][System.__Canon,Microsoft.CodeAnalysis.CSharp.ClsComplianceChecker+Compliance]:TryAddInternal(System.__Canon,System.Nullable`1[Int32],int,bool,bool,byref):bool:this -34.80 (-0.38% of base) : 19418.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[__Canon,ImmutableArray`1][System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryAddInternal(System.__Canon,System.Nullable`1[Int32],System.Collections.Immutable.ImmutableArray`1[__Canon],bool,bool,byref):bool:this -34.80 (-0.37% of base) : 710.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[__Canon,__Canon][System.__Canon,System.__Canon]:TryAddInternal(System.__Canon,System.Nullable`1[Int32],System.__Canon,bool,bool,byref):bool:this -34.80 (-0.32% of base) : 4051.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ServiceCacheKey,__Canon][Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCacheKey,System.__Canon]:TryAddInternal(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCacheKey,System.Nullable`1[Int32],System.__Canon,bool,bool,byref):bool:this -32.80 (-0.07% of base) : 16414.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[__Canon,__Canon][System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[__Canon],int):this -31.50 (-0.73% of base) : 1166.dasm - Product:CreateLists() -28.65 (-2.86% of base) : 14421.dasm - System.IO.Enumeration.FileSystemEnumerator`1[__Canon][System.__Canon]:MoveNext():bool:this -22.50 (-0.61% of base) : 10571.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,System.Int32[],System.Int32[]):this -18.40 (-0.09% of base) : 1623.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo -17.60 (-1.09% of base) : 5530.dasm - Number:ParseNumber(byref,long,int,byref,System.Text.StringBuilder,System.Globalization.NumberFormatInfo,bool):bool -16.80 (-0.17% of base) : 8811.dasm - ProtoBuf.Meta.MetaType:ResolveTupleConstructor(System.Type,byref):System.Reflection.ConstructorInfo -16.80 (-0.50% of base) : 9505.dasm - <MultipleSerial>d__23[Byte][System.Byte]:MoveNext():this -16.40 (-0.11% of base) : 16413.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[__Canon,__Canon][System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[__Canon],int):bool:this Top method regressions (percentages): 5.35 (22.96% of base) : 16245.dasm - Microsoft.CodeAnalysis.SyntaxToken:get_Language():System.String:this 12.00 (14.39% of base) : 11078.dasm - ProtoBuf.Meta.TypeModel:ResolveKnownType(System.String,ProtoBuf.Meta.TypeModel,System.Reflection.Assembly):System.Type 6.65 (14.18% of base) : 756.dasm - DefaultCharacteristicPresenter:ToPresentation(System.Object):System.String 6.25 ( 9.96% of base) : 17764.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:MarkReachableFromBranch(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],BasicBlock) 3.10 ( 9.27% of base) : 2261.dasm - System.Uri:Compress(System.Char[],int,byref,System.UriParser) 4.45 ( 6.21% of base) : 17700.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitSequencePointStatement(Microsoft.CodeAnalysis.CSharp.BoundSequencePointWithSpan):this 0.90 ( 5.79% of base) : 11685.dasm - System.Text.Json.Serialization.Converters.ByteArrayConverter:Write(System.Text.Json.Utf8JsonWriter,System.Byte[],System.Text.Json.JsonSerializerOptions):this 4.70 ( 5.74% of base) : 16354.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[__Canon,__Canon][System.__Canon,System.__Canon]:GetResolvedReferenceAndFreePropertyMapEntry(Microsoft.CodeAnalysis.MetadataReference,int,ubyte,System.Collections.Generic.Dictionary`2[[Microsoft.CodeAnalysis.MetadataReference, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.MergedAliases, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):ResolvedReference[__Canon,__Canon] 3.80 ( 5.68% of base) : 14081.dasm - DynamicClass:Regex5_Go(System.Text.RegularExpressions.RegexRunner) 3.80 ( 5.29% of base) : 20402.dasm - DynamicClass:Regex11_Go(System.Text.RegularExpressions.RegexRunner) 6.00 ( 4.44% of base) : 11410.dasm - <>c__DisplayClass7_0[__Canon][System.__Canon]:<SetupConcurrentStackIteration>b__1():this 0.90 ( 4.26% of base) : 10752.dasm - System.Tests.Perf_String:Split(System.String,System.Char[],int):System.String[]:this 5.10 ( 4.25% of base) : 20404.dasm - DynamicClass:Regex13_Go(System.Text.RegularExpressions.RegexRunner) 5.10 ( 4.01% of base) : 20383.dasm - DynamicClass:Regex2_Go(System.Text.RegularExpressions.RegexRunner) 8.20 ( 4.00% of base) : 240.dasm - System.Globalization.CultureData:InitIcuCultureDataCore():bool:this 0.90 ( 3.96% of base) : 15197.dasm - Span.IndexerBench:Indexer6():ubyte:this 0.90 ( 3.69% of base) : 20301.dasm - System.Security.Cryptography.Primitives.Tests.Performance.Perf_FixedTimeEquals:FixedTimeEquals_256Bit_SameReference():bool:this 7.70 ( 3.67% of base) : 20403.dasm - DynamicClass:Regex12_Go(System.Text.RegularExpressions.RegexRunner) 0.90 ( 3.42% of base) : 22061.dasm - System.Memory.ReadOnlySpan:StringAsSpan():System.ReadOnlySpan`1[Char]:this 0.90 ( 3.35% of base) : 14021.dasm - System.Security.Cryptography.Primitives.Tests.Performance.Perf_FixedTimeEquals:FixedTimeEquals_256Bit_Equal():bool:this Top method improvements (percentages): -0.90 (-6.47% of base) : 269.dasm - System.Globalization.CultureData:GetLocaleInfoExInt(System.String,int):int -2.90 (-6.35% of base) : 5155.dasm - System.IO.Compression.Brotli:Decompress_WithoutState():bool:this -2.15 (-6.33% of base) : 11572.dasm - System.Memory.Span`1[Char][System.Char]:SequenceEqual():bool:this -1.05 (-6.33% of base) : 13887.dasm - System.Memory.Constructors`1[Byte][System.Byte]:SpanImplicitCastFromArray():System.Span`1[Byte]:this -1.05 (-6.33% of base) : 21275.dasm - System.Memory.Constructors`1[Byte][System.Byte]:ArrayAsSpan():System.Span`1[Byte]:this -1.05 (-6.33% of base) : 14458.dasm - System.Memory.Constructors`1[Byte][System.Byte]:ReadOnlySpanImplicitCastFromArray():System.ReadOnlySpan`1[Byte]:this -1.05 (-6.33% of base) : 915.dasm - System.Diagnostics.Tracing.EventSource:get_ProviderMetadata():System.ReadOnlySpan`1[Byte]:this -1.55 (-5.34% of base) : 15001.dasm - System.Tests.Perf_Enum:TryParseGeneric(System.String):bool:this -1.30 (-5.08% of base) : 20253.dasm - System.Memory.Constructors`1[Byte][System.Byte]:ReadOnlyMemoryFromArray():System.ReadOnlyMemory`1[Byte]:this -1.30 (-5.08% of base) : 12535.dasm - System.Memory.Constructors`1[__Canon][System.__Canon]:ReadOnlyMemoryFromArray():System.ReadOnlyMemory`1[__Canon]:this -1.30 (-5.08% of base) : 19845.dasm - System.Memory.Constructors`1[Byte][System.Byte]:MemoryFromArray():System.Memory`1[Byte]:this -1.55 (-5.00% of base) : 12574.dasm - Internal.Cryptography.Pal.CertificatePal:get_HasPrivateKey():bool:this -0.90 (-5.00% of base) : 13957.dasm - System.Globalization.TextInfo:ChangeCase(ushort,bool):ushort:this -0.90 (-4.74% of base) : 928.dasm - System.Text.StringBuilder:AppendHelper(System.String):this -1.30 (-4.68% of base) : 15116.dasm - Newtonsoft.Json.Utilities.ConvertUtils:TryConvert(System.Object,System.Globalization.CultureInfo,System.Type,byref):bool -0.90 (-4.59% of base) : 16688.dasm - System.Reflection.Metadata.Ecma335.GenericParamTableReader:FindGenericParametersForType(System.Reflection.Metadata.TypeDefinitionHandle):System.Reflection.Metadata.GenericParameterHandleCollection:this -0.90 (-4.47% of base) : 11753.dasm - System.Threading.Tasks.Tests.Perf_AsyncMethods:<EmptyAsyncMethodInvocation>g__EmptyAsync|0_0():System.Threading.Tasks.Task -2.35 (-4.46% of base) : 20256.dasm - System.Memory.Memory`1[Byte][System.Byte]:Pin():this -2.35 (-4.46% of base) : 9871.dasm - System.Memory.ReadOnlyMemory`1[Char][System.Char]:Pin():this -0.90 (-4.41% of base) : 2439.dasm - System.Runtime.Serialization.DataContractSerializer:.cctor() 1749 total methods with Perf Score differences (1564 improved, 185 regressed), 3949 unchanged. 

Linux Arm64 (libraries.pmi)

 Summary of Code Size diffs: (Lower is better) Total bytes of base: 16666072 Total bytes of diff: 16612608 Total bytes of delta: -53464 (-0.32% of base) diff is an improvement. 
Detail diffs
 Top file regressions (bytes): 44 : 52269.dasm (2.61% of base) 40 : 145454.dasm (3.08% of base) 32 : 12164.dasm (2.99% of base) 28 : 167888.dasm (1.68% of base) 28 : 34634.dasm (4.07% of base) 24 : 159506.dasm (2.37% of base) 20 : 177359.dasm (14.29% of base) 20 : 72889.dasm (1.00% of base) 20 : 11913.dasm (15.15% of base) 20 : 107614.dasm (6.02% of base) 20 : 73321.dasm (1.06% of base) 20 : 214683.dasm (2.29% of base) 20 : 35436.dasm (3.09% of base) 20 : 135094.dasm (35.71% of base) 20 : 183973.dasm (13.51% of base) 20 : 192040.dasm (13.51% of base) 20 : 138955.dasm (9.09% of base) 20 : 140841.dasm (2.89% of base) 16 : 14957.dasm (7.55% of base) 16 : 185204.dasm (17.39% of base) Top file improvements (bytes): -1244 : 9325.dasm (-4.35% of base) -288 : 134275.dasm (-3.39% of base) -208 : 17023.dasm (-0.67% of base) -144 : 51758.dasm (-0.66% of base) -128 : 191786.dasm (-16.24% of base) -128 : 191997.dasm (-15.61% of base) -120 : 213874.dasm (-7.06% of base) -116 : 143123.dasm (-5.98% of base) -112 : 11390.dasm (-1.99% of base) -112 : 191370.dasm (-14.51% of base) -108 : 133622.dasm (-5.68% of base) -108 : 213878.dasm (-2.75% of base) -100 : 131695.dasm (-1.01% of base) -96 : 191782.dasm (-26.67% of base) -92 : 133662.dasm (-5.69% of base) -92 : 134318.dasm (-3.25% of base) -88 : 15390.dasm (-1.66% of base) -84 : 133809.dasm (-6.00% of base) -80 : 133664.dasm (-5.46% of base) -80 : 11655.dasm (-1.25% of base) 8916 total files with Code Size differences (8424 improved, 492 regressed), 21541 unchanged. Top method regressions (bytes): 44 ( 2.61% of base) : 52269.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetDeclarationName(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):System.String:this 40 ( 3.08% of base) : 145454.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:IsDefault(System.Object):bool 32 ( 2.99% of base) : 12164.dasm - Microsoft.CodeAnalysis.VisualBasic.InitializerSemanticModel:Bind(Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this 28 ( 1.68% of base) : 167888.dasm - <MapValuesImpl>d__1:MoveNext():bool:this 28 ( 4.07% of base) : 34634.dasm - TypeBinder:GetBaseNamesForDiagnostic(Microsoft.CodeAnalysis.VisualBasic.Syntax.TypeSyntax):System.String 24 ( 2.37% of base) : 159506.dasm - OperatorIntrinsics:GetArraySlice4D(System.__Canon[,,,],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32],Microsoft.FSharp.Core.FSharpOption`1[Int32]):System.__Canon[,,,] 20 (14.29% of base) : 177359.dasm - System.Reflection.TypeLoading.RoConstructor:ToString():System.String:this 20 ( 1.00% of base) : 72889.dasm - <Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__31:MoveNext():bool:this 20 (15.15% of base) : 11913.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:get_ContainingModule():Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol:this 20 ( 6.02% of base) : 107614.dasm - System.Configuration.ClientConfigurationHost:GetStreamName(System.String):System.String:this 20 ( 1.06% of base) : 73321.dasm - <GetMethodsToEmit>d__68:MoveNext():bool:this 20 ( 2.29% of base) : 214683.dasm - System.ServiceModel.Syndication.SyndicationFeed:TryReadSkipHoursFromExtension(System.ServiceModel.Syndication.SyndicationElementExtensionCollection,System.Collections.ObjectModel.Collection`1[Int32]):this 20 ( 3.09% of base) : 35436.dasm - ComClassData:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData):this 20 (35.71% of base) : 135094.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider:GetStrongNameInterface():Microsoft.CodeAnalysis.Interop.IClrStrongName:this 20 (13.51% of base) : 183973.dasm - System.Security.Cryptography.ECOpenSsl:ImportNamedCurveParameters(System.Security.Cryptography.ECParameters):Microsoft.Win32.SafeHandles.SafeEcKeyHandle 20 (13.51% of base) : 192040.dasm - System.Security.Cryptography.ECOpenSsl:ImportNamedCurveParameters(System.Security.Cryptography.ECParameters):Microsoft.Win32.SafeHandles.SafeEcKeyHandle 20 ( 9.09% of base) : 138955.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:MarkReachableFromBranch(Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],BasicBlock) 20 ( 2.89% of base) : 140841.dasm - <GetTopLevelTypes>d__8:MoveNext():bool:this 16 ( 7.55% of base) : 14957.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.QuickAttributeChecker:GetFinalName(Microsoft.CodeAnalysis.VisualBasic.Syntax.TypeSyntax):System.String:this 16 (17.39% of base) : 185204.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(System.__Canon):System.IDisposable:this Top method improvements (bytes): -1244 (-4.35% of base) : 9325.dasm - System.Net.Security.TlsCipherSuiteData:.cctor() -288 (-3.39% of base) : 134275.dasm - Microsoft.Cci.PeWriter:WriteHeaders(System.IO.Stream,Microsoft.Cci.NtHeader,Microsoft.Cci.CoffHeader,System.Collections.Generic.List`1[[Microsoft.Cci.SectionHeader, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],byref):this -208 (-0.67% of base) : 17023.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this -144 (-0.66% of base) : 51758.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this -128 (-16.24% of base) : 191786.dasm - System.Security.Cryptography.RSA:ToXmlString(bool):System.String:this -128 (-15.61% of base) : 191997.dasm - System.Security.Cryptography.RSAKeyFormatHelper:WritePkcs1PrivateKey(byref):System.Formats.Asn1.AsnWriter -120 (-7.06% of base) : 213874.dasm - System.Drawing.ColorTranslator:FromOle(int):System.Drawing.Color -116 (-5.98% of base) : 143123.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToDecimal(System.Object,System.Globalization.NumberFormatInfo):System.Decimal -112 (-1.99% of base) : 11390.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:InterpretForEachStatementCollection(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,byref,byref,byref,byref,byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this -112 (-14.51% of base) : 191370.dasm - System.Security.Cryptography.DSA:ToXmlString(bool):System.String:this -108 (-5.68% of base) : 133622.dasm - Microsoft.Cci.MetadataWriter:SerializeAssemblyRefTable(Microsoft.Cci.BlobBuilder,Microsoft.Cci.MetadataSizes):this -108 (-2.75% of base) : 213878.dasm - System.Drawing.ColorTranslator:InitializeHtmlSysColorTable() -100 (-1.01% of base) : 131695.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,System.Int32[],System.Int32[]):this -96 (-26.67% of base) : 191782.dasm - System.Security.Cryptography.RSA:ClearPrivateParameters(byref) -92 (-5.69% of base) : 133662.dasm - Microsoft.Cci.MetadataWriter:SerializeTypeDefTable(Microsoft.Cci.BlobBuilder,Microsoft.Cci.MetadataSizes):this -92 (-3.25% of base) : 134318.dasm - Microsoft.Cci.PeWriter:WriteDirectory(Directory,Microsoft.Cci.BlobBuilder,int,int,int,int,Microsoft.Cci.BlobBuilder):this -88 (-1.66% of base) : 15390.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberMethodSymbol:BindSingleHandlesClause(Microsoft.CodeAnalysis.VisualBasic.Syntax.HandlesClauseItemSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],byref):Microsoft.CodeAnalysis.VisualBasic.HandledEvent:this -84 (-6.00% of base) : 133809.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalScopeTable(Microsoft.Cci.BlobBuilder,Microsoft.Cci.MetadataSizes):this -80 (-5.46% of base) : 133664.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodDefTable(Microsoft.Cci.BlobBuilder,Microsoft.Cci.MetadataSizes,int):this -80 (-1.25% of base) : 11655.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindAwait(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.DiagnosticBag,bool):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this Top method regressions (percentages): 16 (36.36% of base) : 172194.dasm - System.Diagnostics.Activity:GetTagItem(System.String):System.Object:this 20 (35.71% of base) : 135094.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider:GetStrongNameInterface():Microsoft.CodeAnalysis.Interop.IClrStrongName:this 16 (25.00% of base) : 168068.dasm - <>c:<GetData>b__17_1(System.Object):System.String:this 16 (23.53% of base) : 137096.dasm - Microsoft.CodeAnalysis.SyntaxToken:get_Language():System.String:this 16 (23.53% of base) : 137189.dasm - Microsoft.CodeAnalysis.SyntaxTrivia:get_Language():System.String:this 16 (22.22% of base) : 89319.dasm - System.Xml.XmlTextReader:LookupNamespace(System.String):System.String:this 16 (21.05% of base) : 90134.dasm - System.Xml.XmlValidatingReader:LookupNamespace(System.String):System.String:this 16 (21.05% of base) : 137070.dasm - Microsoft.CodeAnalysis.SyntaxToken:GetAnnotations(System.String):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxAnnotation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 16 (21.05% of base) : 137072.dasm - Microsoft.CodeAnalysis.SyntaxToken:GetAnnotations(System.Collections.Generic.IEnumerable`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxAnnotation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 16 (20.00% of base) : 136919.dasm - Microsoft.CodeAnalysis.SyntaxNode:Ancestors(bool):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 16 (19.05% of base) : 51898.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:FreezeDeclarationDiagnostics():System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.Diagnostic, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 16 (19.05% of base) : 75171.dasm - System.Threading.Tasks.Task`1[Byte][System.Byte]:get_DebuggerDisplayMethodDescription():System.String:this 16 (18.18% of base) : 107850.dasm - System.Configuration.ConfigurationException:GetXmlNodeFilename(System.Xml.XmlNode):System.String 16 (17.39% of base) : 185204.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(System.__Canon):System.IDisposable:this 20 (15.15% of base) : 11913.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:get_ContainingModule():Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol:this 20 (14.29% of base) : 177359.dasm - System.Reflection.TypeLoading.RoConstructor:ToString():System.String:this 8 (14.29% of base) : 196585.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstantCallSite:get_ServiceType():System.Type:this 20 (13.51% of base) : 183973.dasm - System.Security.Cryptography.ECOpenSsl:ImportNamedCurveParameters(System.Security.Cryptography.ECParameters):Microsoft.Win32.SafeHandles.SafeEcKeyHandle 20 (13.51% of base) : 192040.dasm - System.Security.Cryptography.ECOpenSsl:ImportNamedCurveParameters(System.Security.Cryptography.ECParameters):Microsoft.Win32.SafeHandles.SafeEcKeyHandle 16 (12.50% of base) : 185205.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(ubyte):System.IDisposable:this Top method improvements (percentages): -20 (-29.41% of base) : 83165.dasm - System.Text.Json.JsonEncodedText:get_EncodedUtf8Bytes():System.ReadOnlySpan`1[Byte]:this -96 (-26.67% of base) : 191782.dasm - System.Security.Cryptography.RSA:ClearPrivateParameters(byref) -32 (-25.00% of base) : 8953.dasm - System.Net.Security.SslApplicationProtocol:op_Equality(System.Net.Security.SslApplicationProtocol,System.Net.Security.SslApplicationProtocol):bool -16 (-23.53% of base) : 141861.dasm - Internal.Cryptography.PkcsHelpers:ToSkiString(System.Byte[]):System.String -16 (-23.53% of base) : 174672.dasm - System.Net.SocketAddress:get_Family():int:this -16 (-23.53% of base) : 191287.dasm - System.Security.Cryptography.AesCcm:Dispose():this -32 (-23.53% of base) : 8954.dasm - System.Net.Security.SslApplicationProtocol:op_Inequality(System.Net.Security.SslApplicationProtocol,System.Net.Security.SslApplicationProtocol):bool -16 (-23.53% of base) : 208950.dasm - System.Net.Internals.SocketAddress:get_Family():int:this -16 (-23.53% of base) : 83991.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.ReadOnlySpan`1[Char]):this -16 (-23.53% of base) : 83995.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.ReadOnlySpan`1[Byte]):this -16 (-23.53% of base) : 83999.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.ReadOnlySpan`1[Char],System.Text.Json.JsonEncodedText):this -16 (-23.53% of base) : 84002.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.ReadOnlySpan`1[Byte],System.Text.Json.JsonEncodedText):this -16 (-23.53% of base) : 183365.dasm - System.Security.Cryptography.Xml.Utils:EncodeHexString(System.Byte[]):System.String -52 (-22.03% of base) : 83984.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.Text.Json.JsonEncodedText):this -16 (-19.05% of base) : 177280.dasm - System.Reflection.NameFilterCaseSensitive:Matches(System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.MetadataReader):bool:this -20 (-17.86% of base) : 209777.dasm - System.Net.Sockets.SocketPal:AvoidNullReference(System.ReadOnlySpan`1[Byte]):System.ReadOnlySpan`1[Byte] -20 (-17.24% of base) : 8949.dasm - System.Net.Security.SslApplicationProtocol:Equals(System.Net.Security.SslApplicationProtocol):bool:this -16 (-16.67% of base) : 84229.dasm - System.Text.Json.Utf8JsonWriter:WriteStartArray(System.Text.Json.JsonEncodedText):this -16 (-16.67% of base) : 84230.dasm - System.Text.Json.Utf8JsonWriter:WriteStartObject(System.Text.Json.JsonEncodedText):this -16 (-16.67% of base) : 1160.dasm - System.Security.Cryptography.X509Certificates.ECDsaX509SignatureGenerator:SignData(System.Byte[],System.Security.Cryptography.HashAlgorithmName):System.Byte[]:this 8916 total methods with Code Size differences (8424 improved, 492 regressed), 21541 unchanged. 

 Summary of Perf Score diffs: (Lower is better) Total PerfScoreUnits of base: 33796010703573428 Total PerfScoreUnits of diff: 33796010669323444 Total PerfScoreUnits of delta: -34250021.36 (-0.00% of base) diff is an improvement. 
Detail diffs
 Top file regressions (PerfScoreUnits): 60.10 : 163823.dasm (3.20% of base) 42.20 : 146211.dasm (1.28% of base) 16.40 : 89923.dasm (0.23% of base) 14.60 : 96456.dasm (0.72% of base) 9.40 : 52269.dasm (2.49% of base) 8.40 : 68568.dasm (0.75% of base) 7.40 : 102083.dasm (0.02% of base) 6.25 : 138955.dasm (9.96% of base) 6.20 : 18820.dasm (3.12% of base) 6.20 : 89653.dasm (1.43% of base) 6.20 : 18834.dasm (3.11% of base) 6.20 : 18849.dasm (3.12% of base) 6.20 : 18863.dasm (3.11% of base) 6.00 : 183973.dasm (10.74% of base) 6.00 : 192040.dasm (10.74% of base) 6.00 : 190012.dasm (0.29% of base) 6.00 : 140841.dasm (2.38% of base) 5.75 : 177359.dasm (10.50% of base) 5.75 : 35436.dasm (3.20% of base) 5.75 : 135094.dasm (31.34% of base) Top file improvements (PerfScoreUnits): -33652820.00 : 15387.dasm (-0.00% of base) -524288.40 : 68958.dasm (-1.50% of base) -23902.00 : 11334.dasm (-0.05% of base) -20480.80 : 100367.dasm (-0.21% of base) -4198.90 : 1001.dasm (-0.53% of base) -1618.80 : 100628.dasm (-0.41% of base) -1289.60 : 69336.dasm (-0.20% of base) -1095.00 : 2321.dasm (-0.79% of base) -1049.70 : 41713.dasm (-0.00% of base) -1026.20 : 49782.dasm (-0.15% of base) -530.10 : 194117.dasm (-0.44% of base) -473.90 : 163043.dasm (-7.36% of base) -280.55 : 11801.dasm (-0.17% of base) -279.90 : 9325.dasm (-2.54% of base) -259.70 : 176536.dasm (-3.45% of base) -242.00 : 100315.dasm (-0.48% of base) -193.70 : 11669.dasm (-0.24% of base) -189.20 : 11659.dasm (-0.29% of base) -170.36 : 143630.dasm (-1.94% of base) -140.80 : 144011.dasm (-0.02% of base) 8990 total files with Perf Score differences (8457 improved, 533 regressed), 21467 unchanged. Top method regressions (PerfScoreUnits): 60.10 ( 3.20% of base) : 163823.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:PopulateDictionary(System.Collections.IDictionary,Newtonsoft.Json.JsonReader,Newtonsoft.Json.Serialization.JsonDictionaryContract,Newtonsoft.Json.Serialization.JsonProperty,System.String):System.Object:this 42.20 ( 1.28% of base) : 146211.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException 16.40 ( 0.23% of base) : 89923.dasm - <ParseAttributesAsync>d__531:MoveNext():this 14.60 ( 0.72% of base) : 96456.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext:FindBestMethod(System.Reflection.MethodInfo[],bool,bool,System.String,System.Xml.XPath.XPathResultType[]):System.Reflection.MethodInfo:this 9.40 ( 2.49% of base) : 52269.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetDeclarationName(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):System.String:this 8.40 ( 0.75% of base) : 68568.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportNameCollisionDiagnosticsForAddedModules(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,Microsoft.CodeAnalysis.DiagnosticBag):this 7.40 ( 0.02% of base) : 102083.dasm - System.ComponentModel.Composition.Hosting.ImportEngine:TrySatisfyImportSubset(PartManager,System.Collections.Generic.IEnumerable`1[[System.ComponentModel.Composition.Primitives.ImportDefinition, System.ComponentModel.Composition, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]],System.ComponentModel.Composition.Hosting.AtomicComposition):System.ComponentModel.Composition.CompositionResult:this 6.25 ( 9.96% of base) : 138955.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:MarkReachableFromBranch(Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],BasicBlock) 6.20 ( 3.12% of base) : 18820.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodToClassRewriter`1[__Canon][System.__Canon]:SubstituteMethodForMyBaseOrMyClassCall(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol):Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this 6.20 ( 1.43% of base) : 89653.dasm - System.Xml.XmlTextReaderImpl:DetectEncoding():System.Text.Encoding:this 6.20 ( 3.11% of base) : 18834.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodToClassRewriter`1[__Canon][System.__Canon]:VisitMethodSymbol(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol):Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this 6.20 ( 3.12% of base) : 18849.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodToClassRewriter`1[Byte][System.Byte]:SubstituteMethodForMyBaseOrMyClassCall(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol):Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this 6.20 ( 3.11% of base) : 18863.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodToClassRewriter`1[Byte][System.Byte]:VisitMethodSymbol(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol):Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this 6.00 (10.74% of base) : 183973.dasm - System.Security.Cryptography.ECOpenSsl:ImportNamedCurveParameters(System.Security.Cryptography.ECParameters):Microsoft.Win32.SafeHandles.SafeEcKeyHandle 6.00 (10.74% of base) : 192040.dasm - System.Security.Cryptography.ECOpenSsl:ImportNamedCurveParameters(System.Security.Cryptography.ECParameters):Microsoft.Win32.SafeHandles.SafeEcKeyHandle 6.00 ( 0.29% of base) : 190012.dasm - System.Numerics.BigIntegerCalculator:Gcd(byref,byref) 6.00 ( 2.38% of base) : 140841.dasm - <GetTopLevelTypes>d__8:MoveNext():bool:this 5.75 (10.50% of base) : 177359.dasm - System.Reflection.TypeLoading.RoConstructor:ToString():System.String:this 5.75 ( 3.20% of base) : 35436.dasm - ComClassData:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData):this 5.75 (31.34% of base) : 135094.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider:GetStrongNameInterface():Microsoft.CodeAnalysis.Interop.IClrStrongName:this Top method improvements (PerfScoreUnits): -33652820.00 (-0.00% of base) : 15387.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberFieldSymbol:Create(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.FieldDeclarationSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,MembersAndInitializersBuilder,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag) -524288.40 (-1.50% of base) : 68958.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:MergePartialMethods(System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],Microsoft.CodeAnalysis.DiagnosticBag) -23902.00 (-0.05% of base) : 11334.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeParameterList(Microsoft.CodeAnalysis.VisualBasic.Symbol,bool,int,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.ParameterSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],CheckParameterModifierDelegate,Microsoft.CodeAnalysis.DiagnosticBag):this -20480.80 (-0.21% of base) : 100367.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteEnumAndArrayTypes():this -4198.90 (-0.53% of base) : 1001.dasm - Internal.Cryptography.Pal.X500NameEncoder:ParseDistinguishedName(System.String,System.Collections.Generic.List`1[Char],bool):System.Collections.Generic.List`1[[System.Byte[], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]] -1618.80 (-0.41% of base) : 100628.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteEnumAndArrayTypes():this -1289.60 (-0.20% of base) : 69336.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this -1095.00 (-0.79% of base) : 2321.dasm - System.Data.Common.MultipartIdentifier:ParseMultipartIdentifier(System.String,System.String,System.String,ushort,int,bool,System.String,bool):System.String[] -1049.70 (-0.00% of base) : 41713.dasm - System.Data.XmlTreeGen:HandleTable(System.Data.DataTable,System.Xml.XmlDocument,System.Xml.XmlElement,bool):System.Xml.XmlElement:this -1026.20 (-0.15% of base) : 49782.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindInterpolatedString(Microsoft.CodeAnalysis.CSharp.Syntax.InterpolatedStringExpressionSyntax,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this -530.10 (-0.44% of base) : 194117.dasm - System.Net.TimerThread:ThreadProc() -473.90 (-7.36% of base) : 163043.dasm - Newtonsoft.Json.Utilities.ConvertUtils:DecimalTryParse(System.Char[],int,int,byref):int -280.55 (-0.17% of base) : 11801.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindAttribute(Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundAttribute:this -279.90 (-2.54% of base) : 9325.dasm - System.Net.Security.TlsCipherSuiteData:.cctor() -259.70 (-3.45% of base) : 176536.dasm - <InternalReadAllTextAsync>d__68:MoveNext():this -242.00 (-0.48% of base) : 100315.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteMemberBegin(System.Xml.Serialization.XmlSerializationReaderILGen+Member[]):this -193.70 (-0.24% of base) : 11669.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindInterpolatedStringExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.InterpolatedStringExpressionSyntax,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this -189.20 (-0.29% of base) : 11659.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindFieldAndPropertyInitializers(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,System.Collections.Immutable.ImmutableArray`1[ImmutableArray`1],Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.BoundInitializer, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] -170.36 (-1.94% of base) : 143630.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:CollectOverloadCandidates(System.Reflection.MemberInfo[],System.Object[],int,System.String[],System.Type[],bool,System.Type,byref,byref,Container):System.Collections.Generic.List`1[[Microsoft.VisualBasic.CompilerServices.Symbols+Method, Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]] -140.80 (-0.02% of base) : 144011.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this Top method regressions (percentages): 5.35 (37.15% of base) : 172194.dasm - System.Diagnostics.Activity:GetTagItem(System.String):System.Object:this 5.35 (32.62% of base) : 168068.dasm - <>c:<GetData>b__17_1(System.Object):System.String:this 5.75 (31.34% of base) : 135094.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider:GetStrongNameInterface():Microsoft.CodeAnalysis.Interop.IClrStrongName:this 5.35 (25.36% of base) : 137070.dasm - Microsoft.CodeAnalysis.SyntaxToken:GetAnnotations(System.String):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxAnnotation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 5.35 (25.36% of base) : 137072.dasm - Microsoft.CodeAnalysis.SyntaxToken:GetAnnotations(System.Collections.Generic.IEnumerable`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxAnnotation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 5.35 (24.60% of base) : 136919.dasm - Microsoft.CodeAnalysis.SyntaxNode:Ancestors(bool):System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 5.35 (23.21% of base) : 107850.dasm - System.Configuration.ConfigurationException:GetXmlNodeFilename(System.Xml.XmlNode):System.String 5.35 (22.96% of base) : 137096.dasm - Microsoft.CodeAnalysis.SyntaxToken:get_Language():System.String:this 5.35 (22.96% of base) : 137189.dasm - Microsoft.CodeAnalysis.SyntaxTrivia:get_Language():System.String:this 5.35 (22.86% of base) : 51898.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:FreezeDeclarationDiagnostics():System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.Diagnostic, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this 5.35 (21.44% of base) : 185204.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(System.__Canon):System.IDisposable:this 5.35 (18.97% of base) : 89319.dasm - System.Xml.XmlTextReader:LookupNamespace(System.String):System.String:this 5.35 (17.89% of base) : 75171.dasm - System.Threading.Tasks.Task`1[Byte][System.Byte]:get_DebuggerDisplayMethodDescription():System.String:this 5.35 (16.93% of base) : 90134.dasm - System.Xml.XmlValidatingReader:LookupNamespace(System.String):System.String:this 5.35 (16.19% of base) : 185205.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(ubyte):System.IDisposable:this 5.35 (16.19% of base) : 185206.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(short):System.IDisposable:this 5.35 (16.19% of base) : 185207.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(int):System.IDisposable:this 5.35 (16.19% of base) : 185210.dasm - Microsoft.Extensions.Logging.Console.ConsoleLogger:BeginScope(long):System.IDisposable:this 5.50 (12.44% of base) : 11913.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:get_ContainingModule():Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol:this 6.00 (10.74% of base) : 183973.dasm - System.Security.Cryptography.ECOpenSsl:ImportNamedCurveParameters(System.Security.Cryptography.ECParameters):Microsoft.Win32.SafeHandles.SafeEcKeyHandle Top method improvements (percentages): -5.00 (-25.58% of base) : 83165.dasm - System.Text.Json.JsonEncodedText:get_EncodedUtf8Bytes():System.ReadOnlySpan`1[Byte]:this -4.10 (-24.05% of base) : 141861.dasm - Internal.Cryptography.PkcsHelpers:ToSkiString(System.Byte[]):System.String -4.10 (-24.05% of base) : 183365.dasm - System.Security.Cryptography.Xml.Utils:EncodeHexString(System.Byte[]):System.String -24.60 (-23.77% of base) : 191782.dasm - System.Security.Cryptography.RSA:ClearPrivateParameters(byref) -4.10 (-23.36% of base) : 83991.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.ReadOnlySpan`1[Char]):this -4.10 (-23.36% of base) : 83995.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.ReadOnlySpan`1[Byte]):this -4.10 (-23.36% of base) : 83999.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.ReadOnlySpan`1[Char],System.Text.Json.JsonEncodedText):this -4.10 (-23.36% of base) : 84002.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.ReadOnlySpan`1[Byte],System.Text.Json.JsonEncodedText):this -4.10 (-20.97% of base) : 174672.dasm - System.Net.SocketAddress:get_Family():int:this -4.10 (-20.97% of base) : 191287.dasm - System.Security.Cryptography.AesCcm:Dispose():this -4.10 (-20.97% of base) : 208950.dasm - System.Net.Internals.SocketAddress:get_Family():int:this -2.90 (-20.86% of base) : 142571.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeContents:Decrypt(System.ReadOnlySpan`1[Byte]):this -11.20 (-18.41% of base) : 83984.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.Text.Json.JsonEncodedText,System.Text.Json.JsonEncodedText):this -4.68 (-17.64% of base) : 8953.dasm - System.Net.Security.SslApplicationProtocol:op_Equality(System.Net.Security.SslApplicationProtocol,System.Net.Security.SslApplicationProtocol):bool -4.10 (-17.34% of base) : 177280.dasm - System.Reflection.NameFilterCaseSensitive:Matches(System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.MetadataReader):bool:this -4.68 (-16.52% of base) : 8954.dasm - System.Net.Security.SslApplicationProtocol:op_Inequality(System.Net.Security.SslApplicationProtocol,System.Net.Security.SslApplicationProtocol):bool -4.20 (-16.17% of base) : 107598.dasm - System.Configuration.ClientConfigurationHost:get_HasRoamingConfig():bool:this -4.20 (-16.17% of base) : 107599.dasm - System.Configuration.ClientConfigurationHost:get_HasLocalConfig():bool:this -4.10 (-15.56% of base) : 84229.dasm - System.Text.Json.Utf8JsonWriter:WriteStartArray(System.Text.Json.JsonEncodedText):this -4.10 (-15.56% of base) : 84230.dasm - System.Text.Json.Utf8JsonWriter:WriteStartObject(System.Text.Json.JsonEncodedText):this 8990 total methods with Perf Score differences (8457 improved, 533 regressed), 21467 unchanged. 

@kunalspathak
Copy link
Contributor Author

Here is some analysis from the regression:

Earlier, the code "mov XXX, #0" had RefTypeDef followed by (last) RefTypeUse and thus would end up assigning x0/x1 registers (using PREFERENCE_SET heuristics). Now, we would generate "mov XXX, xzr", and it is tied to a single refposition (vs. Use/Defs earlier) and that sometimes come in a way of heuristic because of which we end up selecting the first available free register (REG_NUM heuristics). Mostly, those are x20 and above. In the regression, we occasionally have to do extra moves to get the value from x20 or any other register to x0 or x1 before doing a call. For such regressions, sometimes the stack space is increased because now we need to store/load the value of register that will be allocated for storing zero in prolog/epilog. There is also a side effect of marking the register as having GC ref sometimes because of the added moves.

Overall, the code size improved with better CQ and we can tolerate the regression.

@kunalspathak
Copy link
Contributor Author

Failures are unrelated.

@kunalspathak kunalspathak marked this pull request as ready for review May 5, 2021 06:31
@kunalspathak
Copy link
Contributor Author

@dotnet/jit-contrib

Copy link
Contributor

@echesakov echesakov left a comment

Choose a reason for hiding this comment

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

@kunalspathak Have you confirmed that strb and strh work properly with this change?

@kunalspathak
Copy link
Contributor Author

@kunalspathak Have you confirmed that strb and strh work properly with this change?

@echesakov - No, this doesn't address strb and strh cases because we do not constant propagate for anything whose size is is less than TYP_INT as seen here, for the following test scenario 0 is of type TYP_INT.

struct MyMemory1 { byte x1; byte x2; private MyMemory1(byte x, byte y) { x1 = x; x2 = y; } public MyMemory1 Slice() { return new MyMemory1(0, 0); } } [MethodImpl(MethodImplOptions.NoInlining)] public MyMemory1 Test1() { var m = new MyMemory1().Slice(); Consume(m); return m; }

The code we generate is:

G_M31828_IG01: ;; offset=0000H  A9BE7BFD stp fp, lr, [sp,#-32]!  910003FD mov fp, sp  F9000FBF str xzr, [fp,#24] // [V01 loc0]  F9000BBF str xzr, [fp,#16] // [V02 loc1]  ;; bbWeight=1 PerfScore 3.50 G_M31828_IG02: ;; offset=0010H  910043A0 add x0, fp, #16 // [V02 loc1]  7900001F strh wzr, [x0]  2A1F03E0 mov w0, wzr  390063A0 strb w0, [fp,#24] // [V06 tmp3]  390067A0 strb w0, [fp,#25] // [V07 tmp4]  910063A0 add x0, fp, #24 // [V01 loc0]  94000000 bl MiniBench.Slice:Consume(byref)  B9401BA0 ldr w0, [fp,#24] // [V01 loc0]  ;; bbWeight=1 PerfScore 7.50 G_M31828_IG03: ;; offset=0030H  A8C27BFD ldp fp, lr, [sp],#32  D65F03C0 ret lr
Related JitDump
DefList: { } N015 ( 1, 2) [000040] -c---------- * CNS_INT int 0 REG NA $80 Contained DefList: { } N017 ( 1, 3) [000042] DA---------- * STORE_LCL_VAR ubyte V11 tmp8 d:2 NA REG NA <RefPosition #5 @18 RefTypeDef <Ivl:1 V11> STORE_LCL_VAR BB01 regmask=[x0-xip0 x19-x28] minReg=1 last> DefList: { } N019 ( 2, 2) [000052] ------------ * LCL_VAR ubyte V11 tmp8 u:2 NA REG NA $80 DefList: { } N021 ( 7, 6) [000053] DA--G------- * STORE_LCL_VAR ubyte (AX) V06 tmp3 NA REG NA <RefPosition #6 @21 RefTypeUse <Ivl:1 V11> LCL_VAR BB01 regmask=[x0-xip0 x19-x28] minReg=1 last> DefList: { } N023 ( 2, 2) [000055] ------------ * LCL_VAR ubyte V11 tmp8 u:2 NA (last use) REG NA $80 DefList: { } N025 ( 7, 6) [000056] DA--G------- * STORE_LCL_VAR ubyte (AX) V07 tmp4 NA REG NA <RefPosition #7 @25 RefTypeUse <Ivl:1 V11> LCL_VAR BB01 regmask=[x0-xip0 x19-x28] minReg=1 last>

Register allocation has an ability to reuse the register having constant value, but in this case, we don't mark the STORE_LCL_VAR node that way. In future, (at least for ARM64, xzr case) we can probably mark such nodes as having constants so we do not create extra mov for a constant value, but at this time I do not want to point fix it but instead think through a general solution.

@echesakov
Copy link
Contributor

@kunalspathak Okay, makes sense. Wonder if it's worth asserting assert(!varTypeIsSmall(type)) since as you explained we don't expect STORE_LCL_VAR containment for small types?

@kunalspathak
Copy link
Contributor Author

@kunalspathak Okay, makes sense. Wonder if it's worth asserting assert(!varTypeIsSmall(type)) since as you explained we don't expect STORE_LCL_VAR containment for small types?

That won't be the case always. The earlier code before my change was actually marking op1 as contained when varTypeIsSmall(type).

@kunalspathak kunalspathak merged commit 3b2b185 into dotnet:main May 6, 2021
@karelz karelz added this to the 6.0.0 milestone May 20, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Jun 19, 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

3 participants