MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff X64] MichalPetryka/runtime/patch-45 #764

Open MihuBot opened 1 month ago

MihuBot commented 1 month ago

Job completed in 19 minutes 42 seconds. https://github.com/MichalPetryka/runtime/tree/patch-45

Diffs

Diffs ``` Found 297 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 39580016 Total bytes of diff: 39722537 Total bytes of delta: 142521 (0.36 % of base) Total relative delta: 790.01 diff is a regression. relative diff is a regression. Total byte diff includes 25 bytes from reconciling methods Base had 0 unique methods, 0 unique bytes Diff had 2 unique methods, 25 unique bytes Top file regressions (bytes): 33069 : System.Private.Xml.dasm (0.81 % of base) 29434 : System.Text.RegularExpressions.dasm (3.95 % of base) 19492 : System.Private.DataContractSerialization.dasm (2.00 % of base) 15496 : System.Security.Cryptography.dasm (1.43 % of base) 13227 : System.Data.Common.dasm (0.81 % of base) 10746 : System.Security.Cryptography.Pkcs.dasm (2.81 % of base) 4502 : System.Linq.Expressions.dasm (0.49 % of base) 3781 : System.Reflection.Metadata.dasm (0.68 % of base) 1895 : System.Private.CoreLib.dasm (0.03 % of base) 1148 : System.ComponentModel.Composition.dasm (0.27 % of base) 1115 : System.Net.Requests.dasm (0.77 % of base) 818 : System.Net.Mail.dasm (0.45 % of base) 723 : System.Transactions.Local.dasm (0.49 % of base) 723 : System.Net.HttpListener.dasm (0.70 % of base) 705 : Microsoft.VisualBasic.Core.dasm (0.13 % of base) 687 : System.Net.Primitives.dasm (0.67 % of base) 661 : System.ServiceModel.Syndication.dasm (0.40 % of base) 626 : System.Formats.Asn1.dasm (0.72 % of base) 558 : System.Net.Http.dasm (0.07 % of base) 541 : System.Configuration.ConfigurationManager.dasm (0.13 % of base) 533 : System.Reflection.Emit.dasm (0.44 % of base) 524 : System.Reflection.MetadataLoadContext.dasm (0.24 % of base) 523 : System.ComponentModel.TypeConverter.dasm (0.17 % of base) 428 : System.Reflection.DispatchProxy.dasm (2.16 % of base) 425 : System.Formats.Nrbf.dasm (0.91 % of base) 393 : System.Net.WebProxy.dasm (7.29 % of base) 311 : System.IO.Pipelines.dasm (0.39 % of base) 89 : ILCompiler.Reflection.ReadyToRun.dasm (0.04 % of base) 41 : System.Text.Json.dasm (0.00 % of base) 18 : Microsoft.Extensions.DependencyInjection.dasm (0.03 % of base) 14 : System.Data.Odbc.dasm (0.01 % of base) 8 : System.Diagnostics.FileVersionInfo.dasm (0.08 % of base) 8 : System.Runtime.Caching.dasm (0.01 % of base) Top file improvements (bytes): -401 : System.Runtime.Numerics.dasm (-0.34 % of base) -333 : System.Threading.RateLimiting.dasm (-0.19 % of base) -7 : System.Diagnostics.TraceSource.dasm (-0.01 % of base) 36 total files with Code Size differences (3 improved, 33 regressed), 223 unchanged. Top method regressions (bytes): 3347 (35.60 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (FullOpts) 2194 (63.85 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:HandleFilterPatterns(System.Xml.Xsl.Qil.QilLoop):ubyte:this (FullOpts) 1718 (60.47 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler:g__EmitAnchors|157_0(byref):ubyte:this (FullOpts) 1695 (47.64 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitSingleCharLazy|22(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (FullOpts) 1401 (48.97 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitSingleCharAtomicLoop|25(System.Text.RegularExpressions.RegexNode):this (FullOpts) 1383 (96.31 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitAnchors|18(System.Text.RegularExpressions.RegexNode):this (FullOpts) 1366 (43.08 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitLoop|28(System.Text.RegularExpressions.RegexNode):this (FullOpts) 1044 (17.89 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler:g__EmitFixedSet_LeftToRight|157_3(byref):this (FullOpts) 978 (31.37 % of base) : System.Data.Common.dasm - System.Data.Common.SqlDecimalStorage:Aggregate(int[],int):System.Object:this (FullOpts) 967 (29.94 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitLazy|23(System.Text.RegularExpressions.RegexNode):this (FullOpts) 941 (168.34 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.PkcsHelpers:EncodeUtcTime(System.DateTime):ubyte[] (FullOpts) 940 (27.16 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlFormatWriterGenerator+CriticalHelper:WriteValue(System.Reflection.Emit.LocalBuilder,ubyte):this (FullOpts) 920 (33.14 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitBackreference|5(System.Text.RegularExpressions.RegexNode):this (FullOpts) 913 (27.04 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.Json.JsonFormatWriterGenerator+CriticalHelper:WriteValue(System.Reflection.Emit.LocalBuilder):this (FullOpts) 769 (54.62 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler:EmitScan(int,System.Reflection.MethodInfo,System.Reflection.MethodInfo):this (FullOpts) 752 (29.55 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitGlobalValues(System.Xml.Xsl.Qil.QilList):this (FullOpts) 730 (29.86 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler:g__EmitLiteralAfterAtomicLoop|157_5(byref):this (FullOpts) 714 (24.26 % of base) : System.Data.Common.dasm - System.Data.Common.SqlMoneyStorage:Aggregate(int[],int):System.Object:this (FullOpts) 704 (54.11 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitChoice(System.Xml.Xsl.Qil.QilChoice):System.Xml.Xsl.Qil.QilNode:this (FullOpts) 702 (33.69 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitSingleCharRepeater|24(System.Text.RegularExpressions.RegexNode,ubyte):this (FullOpts) 696 (13.54 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlFormatWriterGenerator+CriticalHelper:WriteCollection(System.Runtime.Serialization.DataContracts.CollectionDataContract):this (FullOpts) 696 (78.91 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitAtomicSingleCharZeroOrOne|26(System.Text.RegularExpressions.RegexNode):this (FullOpts) 686 (104.41 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitSingleChar|16(System.Text.RegularExpressions.RegexNode,ubyte,System.Reflection.Emit.LocalBuilder):this (FullOpts) 636 (69.36 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitMultiCharString|20(System.String,ubyte,ubyte):this (FullOpts) 635 (32.63 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:HandleDodPatterns(System.Xml.Xsl.Qil.QilUnary):ubyte:this (FullOpts) 631 (11.97 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.MetadataViewGenerator:GenerateInterfaceViewProxyType(System.Type):System.Type (FullOpts) 631 (31.27 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitSingleCharLoop|21(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (FullOpts) 619 (55.87 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitIndexOf|30(System.Text.RegularExpressions.RegexNode,ubyte,ubyte):this (FullOpts) 617 (37.24 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryMatchAtCurrentPosition():this (FullOpts) 600 (27.40 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[System.__Canon]:DecodeValue(System.Reflection.Metadata.EntityHandle,System.Reflection.Metadata.BlobHandle):System.Reflection.Metadata.CustomAttributeValue`1[System.__Canon]:this (FullOpts) 588 (52.69 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts) 576 (13.19 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.Asn1.TbsCertificateAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) 574 (55.84 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.CodeGenerator:Ldc(System.Object):this (FullOpts) 569 (44.63 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitCapture|8(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode):this (FullOpts) 563 (15.60 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlFormatReaderGenerator+CriticalHelper:ReadValue(System.Type,System.String,System.String):System.Reflection.Emit.LocalBuilder:this (FullOpts) 557 (27.91 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitExpressionConditional|7(System.Text.RegularExpressions.RegexNode):this (FullOpts) 549 (11.66 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.Json.JsonFormatReaderGenerator+CriticalHelper:ReadCollection(System.Runtime.Serialization.DataContracts.CollectionDataContract):this (FullOpts) 539 (19.28 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlFormatWriterGenerator+CriticalHelper:WriteMembers(System.Runtime.Serialization.DataContracts.ClassDataContract,System.Reflection.Emit.LocalBuilder,System.Runtime.Serialization.DataContracts.ClassDataContract):int:this (FullOpts) 538 (12.49 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.Json.JsonFormatReaderGenerator+CriticalHelper:ReadValue(System.Type,System.String):System.Reflection.Emit.LocalBuilder:this (FullOpts) 513 (31.98 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSchemaImporter:GatherGroupChoices(System.Xml.Schema.XmlSchemaParticle,System.Xml.Serialization.NameTable,System.String,System.String,byref,ubyte):ubyte:this (FullOpts) 504 (28.78 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlFormatWriterGenerator+CriticalHelper:WriteClass(System.Runtime.Serialization.DataContracts.ClassDataContract):this (FullOpts) 500 (112.61 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:AddToBuckets(System.Collections.Generic.List`1[System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+SwitchLabel]],System.Linq.Expressions.Compiler.LambdaCompiler+SwitchLabel) (FullOpts) 478 (53.29 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler:g__EmitFixedSet_RightToLeft|157_4(byref):this (FullOpts) 471 (461.76 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.DecimalConverter:FromString(System.String,int):System.Object:this (FullOpts) 459 (15.44 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.Json.JsonFormatWriterGenerator+CriticalHelper:WriteMembers(System.Runtime.Serialization.DataContracts.ClassDataContract,System.Reflection.Emit.LocalBuilder,System.Runtime.Serialization.DataContracts.ClassDataContract):int:this (FullOpts) 459 (23.67 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.SpecifiedECDomain:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) 455 (38.69 % of base) : System.ComponentModel.Composition.dasm - Microsoft.Internal.GenerationServices:LoadValue(System.Reflection.Emit.ILGenerator,System.Object) (FullOpts) 453 (23.82 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlFormatReaderGenerator+CriticalHelper:GenerateClassReader(System.Runtime.Serialization.DataContracts.ClassDataContract):System.Runtime.Serialization.XmlFormatClassReaderDelegate:this (FullOpts) 447 (27.07 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:Function(System.Xml.Xsl.Qil.QilFunction):this (FullOpts) 445 (7.65 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlFormatReaderGenerator+CriticalHelper:ReadCollection(System.Runtime.Serialization.DataContracts.CollectionDataContract):this (FullOpts) 441 (42.36 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:GenerateContainerIterator(System.Xml.Xsl.Qil.QilNode,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.Label,System.Reflection.MethodInfo,System.Reflection.MethodInfo,System.Type):this (FullOpts) 439 (58.93 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.KeyAgreeRecipientInfoAsn:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts) 428 (13.15 % of base) : System.Reflection.DispatchProxy.dasm - System.Reflection.DispatchProxyGenerator+ProxyBuilder:AddMethodImpl(System.Reflection.MethodInfo,int):System.Reflection.Emit.MethodBuilder:this (FullOpts) 426 (23.23 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.PssParamsAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) 423 (450.00 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlString:ToSqlMoney():System.Data.SqlTypes.SqlMoney:this (FullOpts) 413 (29.63 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder:AddEntry(System.ReadOnlySpan`1[ubyte],System.Nullable`1[System.DateTimeOffset],System.Nullable`1[int]):this (FullOpts) 409 (18.15 % of base) : System.Data.Common.dasm - System.Data.Common.SqlConvert:ConvertToSqlDouble(System.Object):System.Data.SqlTypes.SqlDouble (FullOpts) 405 (21.53 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.PssParamsAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) 403 (19.71 % of base) : System.Data.Common.dasm - System.Data.Common.SqlConvert:ConvertToSqlSingle(System.Object):System.Data.SqlTypes.SqlSingle (FullOpts) 399 (97.79 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitBoundary|17(System.Text.RegularExpressions.RegexNode):this (FullOpts) 398 (2,487.50 % of base) : System.ServiceModel.Syndication.dasm - System.ServiceModel.Syndication.SyndicationFeed:.ctor(System.String,System.String,System.Uri):this (FullOpts) 397 (75.33 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:CopySequence(System.Xml.Xsl.Qil.QilNode):this (FullOpts) 393 (153.52 % of base) : System.Net.WebProxy.dasm - System.Net.WebProxy:UpdateRegexList():this (FullOpts) 386 (3.95 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts) 384 (30.36 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSchemaImporter:ImportGroupMembers(System.Xml.Schema.XmlSchemaParticle,System.String,System.Xml.Serialization.CodeIdentifiers,System.Xml.Serialization.CodeIdentifiers,System.Xml.Serialization.INameScope,System.String,ubyte,byref,byref,ubyte,ubyte):this (FullOpts) 383 (42.94 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.Json.JsonFormatReaderGenerator+CriticalHelper:HandleUnexpectedItemInCollection(System.Reflection.Emit.LocalBuilder):this (FullOpts) 383 (42.94 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlFormatReaderGenerator+CriticalHelper:HandleUnexpectedItemInCollection(System.Reflection.Emit.LocalBuilder):this (FullOpts) 379 (123.86 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.CodeGenerator:LoadDefaultValue(System.Type):this (FullOpts) 376 (17.53 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[System.Numerics.Vector`1[float]]:DecodeValue(System.Reflection.Metadata.EntityHandle,System.Reflection.Metadata.BlobHandle):System.Reflection.Metadata.CustomAttributeValue`1[System.Numerics.Vector`1[float]]:this (FullOpts) 368 (41.26 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitNonBacktrackingRepeater|27(System.Text.RegularExpressions.RegexNode):this (FullOpts) 368 (7.79 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteEnumMethod(System.Xml.Serialization.EnumMapping):this (FullOpts) 366 (10.08 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlFormatReaderGenerator+CriticalHelper:ReadMembers(System.Runtime.Serialization.DataContracts.ClassDataContract,System.Reflection.Emit.LocalBuilder):this (FullOpts) 364 (14.50 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.Json.JsonFormatReaderGenerator+CriticalHelper:ReadMembers(System.Runtime.Serialization.DataContracts.ClassDataContract,System.Reflection.Emit.LocalBuilder):this (FullOpts) 362 (21.41 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitConditional(System.Xml.Xsl.Qil.QilTernary):System.Xml.Xsl.Qil.QilNode:this (FullOpts) 358 (238.67 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.RegexStringValidator:.ctor(System.String):this (FullOpts) 358 (34.76 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (FullOpts) 357 (21.39 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlFormatReaderGenerator+CriticalHelper:ReadMembers(System.Runtime.Serialization.DataContracts.ClassDataContract,ubyte[],System.Reflection.Emit.Label[],System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.LocalBuilder):int:this (FullOpts) 350 (43.26 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:CreateAggregator(System.Xml.Xsl.Qil.QilUnary,System.String,System.Xml.Xsl.IlGen.XmlILStorageMethods,System.Reflection.MethodInfo,System.Reflection.MethodInfo):System.Xml.Xsl.Qil.QilUnary:this (FullOpts) 347 (18.94 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitAlternation|4(System.Text.RegularExpressions.RegexNode):this (FullOpts) 346 (652.83 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.IteratorDescriptor:LoopToEnd(System.Reflection.Emit.Label):this (FullOpts) 346 (20.97 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:Sequence(System.Xml.Xsl.Qil.QilList):this (FullOpts) 343 (37.49 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitSortKey(System.Xml.Xsl.Qil.QilSortKey,System.Reflection.Emit.LocalBuilder):this (FullOpts) 342 (44.07 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitXsltGenerateId(System.Xml.Xsl.Qil.QilUnary):System.Xml.Xsl.Qil.QilNode:this (FullOpts) 340 (15.85 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[short]:DecodeValue(System.Reflection.Metadata.EntityHandle,System.Reflection.Metadata.BlobHandle):System.Reflection.Metadata.CustomAttributeValue`1[short]:this (FullOpts) 340 (20.53 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.RSAPrivateKeyAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,byref) (FullOpts) 338 (30.48 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitNegativeLookaroundAssertion|11(System.Text.RegularExpressions.RegexNode):this (FullOpts) 336 (41.33 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.GenerateHelper:ConstructLiteralDecimal(System.Decimal):this (FullOpts) 336 (93.33 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitLoop(System.Xml.Xsl.Qil.QilLoop):System.Xml.Xsl.Qil.QilNode:this (FullOpts) 335 (15.62 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[double]:DecodeValue(System.Reflection.Metadata.EntityHandle,System.Reflection.Metadata.BlobHandle):System.Reflection.Metadata.CustomAttributeValue`1[double]:this (FullOpts) 335 (12.57 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.Json.JsonFormatReaderGenerator+CriticalHelper:ReadSimpleDictionary(System.Runtime.Serialization.DataContracts.CollectionDataContract,System.Type):this (FullOpts) 335 (197.06 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:EndWriterLoop(System.Xml.Xsl.Qil.QilNode,ubyte,System.Reflection.Emit.Label):this (FullOpts) 333 (26.92 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.Pkcs12.MacData:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) 331 (15.43 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[long]:DecodeValue(System.Reflection.Metadata.EntityHandle,System.Reflection.Metadata.BlobHandle):System.Reflection.Metadata.CustomAttributeValue`1[long]:this (FullOpts) 330 (868.42 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlSingle():System.Data.SqlTypes.SqlSingle:this (FullOpts) 330 (37.12 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (FullOpts) 329 (243.70 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitNodeRange(System.Xml.Xsl.Qil.QilBinary):System.Xml.Xsl.Qil.QilNode:this (FullOpts) 328 (22.64 % of base) : System.Private.Xml.dasm - System.Xml.XmlDownloadManager+d__2:MoveNext():this (FullOpts) 327 (25.49 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.Json.JsonFormatWriterGenerator+CriticalHelper:WriteClass(System.Runtime.Serialization.DataContracts.ClassDataContract):this (FullOpts) 325 (42.99 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitSwitchCases(System.Linq.Expressions.SwitchExpression,System.Reflection.Emit.Label[],ubyte[],System.Reflection.Emit.Label,System.Reflection.Emit.Label,int):this (FullOpts) 325 (15.15 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[int]:DecodeValue(System.Reflection.Metadata.EntityHandle,System.Reflection.Metadata.BlobHandle):System.Reflection.Metadata.CustomAttributeValue`1[int]:this (FullOpts) Top method improvements (bytes): -126 (-2.45 % of base) : System.ServiceModel.Syndication.dasm - System.ServiceModel.Syndication.Rss20FeedFormatter:ReadItemFrom(System.Xml.XmlReader,System.ServiceModel.Syndication.SyndicationItem,System.Uri):this (FullOpts) -73 (-10.11 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnWriter:ParseSubIdentifier(byref):System.Numerics.BigInteger (FullOpts) -60 (-2.33 % of base) : System.Data.Common.dasm - System.Data.Common.SqlDoubleStorage:Aggregate(int[],int):System.Object:this (FullOpts) -55 (-45.08 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.TypeNameParser:.ctor(System.ReadOnlySpan`1[ushort],ubyte,System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):this (FullOpts) -50 (-2.33 % of base) : System.Data.Common.dasm - System.Data.Common.SqlInt32Storage:Aggregate(int[],int):System.Object:this (FullOpts) -49 (-4.47 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -42 (-2.25 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:DivRem(System.Numerics.BigInteger,System.Numerics.BigInteger,byref):System.Numerics.BigInteger (FullOpts) -35 (-6.39 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnWriter:EncodeSubIdentifier(System.Span`1[ubyte],byref):int (FullOpts) -33 (-2.46 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_BitwiseAnd(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger (FullOpts) -33 (-2.38 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_BitwiseOr(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger (FullOpts) -32 (-2.92 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -30 (-3.31 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:LoadNameAndType(int,System.Xml.Xsl.Qil.QilNode,ubyte,ubyte):int:this (FullOpts) -29 (-2.26 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_ExclusiveOr(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger (FullOpts) -28 (-1.30 % of base) : System.Data.Common.dasm - System.Data.Common.SqlByteStorage:Aggregate(int[],int):System.Object:this (FullOpts) -27 (-28.12 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlString:ToSqlDouble():System.Data.SqlTypes.SqlDouble:this (FullOpts) -27 (-50.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexRunner:InitializeTimeout(System.TimeSpan):this (FullOpts) (2 base, 1 diff methods) -26 (-1.21 % of base) : System.Data.Common.dasm - System.Data.Common.SqlInt16Storage:Aggregate(int[],int):System.Object:this (FullOpts) -26 (-23.21 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Implicit(ushort):System.Numerics.BigInteger (FullOpts) (2 methods) -24 (-22.64 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlString:ToSqlDateTime():System.Data.SqlTypes.SqlDateTime:this (FullOpts) -23 (-7.59 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.FindPal:LaxParseDecimalBigInteger(System.String):System.Numerics.BigInteger (FullOpts) -20 (-0.86 % of base) : System.Data.Common.dasm - System.Data.Common.SqlSingleStorage:Aggregate(int[],int):System.Object:this (FullOpts) -20 (-14.39 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:CompareTo(System.Data.SqlTypes.SqlInt64):int:this (FullOpts) -20 (-14.39 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:CompareTo(System.Data.SqlTypes.SqlMoney):int:this (FullOpts) -20 (-25.32 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlString:ToSqlSingle():System.Data.SqlTypes.SqlSingle:this (FullOpts) -20 (-0.70 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Pkcs12Builder:SealWithMac(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.HashAlgorithmName,int):this (FullOpts) -19 (-13.48 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:CompareTo(System.Data.SqlTypes.SqlDouble):int:this (FullOpts) -19 (-16.10 % of base) : System.Data.Odbc.dasm - System.Text.RegularExpressions.Generated.F0441267B09271A6B48EAE6A39F91CAA934DFECA0097D1A96331686EEB70E4A73__CreateConnectionStringQuoteOdbcValueRegex_2:.ctor():this (FullOpts) -19 (-16.38 % of base) : System.Data.Odbc.dasm - System.Text.RegularExpressions.Generated.F0441267B09271A6B48EAE6A39F91CAA934DFECA0097D1A96331686EEB70E4A73__CreateConnectionStringQuoteValueRegex_1:.ctor():this (FullOpts) -19 (-16.10 % of base) : System.Data.Common.dasm - System.Text.RegularExpressions.Generated.F60EFD13DC7CD536D3A020F55BA4BA03EA43EC20F5B4D014977C1BFAB3201AEC6__CreateConnectionStringQuoteOdbcValueRegex_2:.ctor():this (FullOpts) -19 (-16.38 % of base) : System.Data.Common.dasm - System.Text.RegularExpressions.Generated.F60EFD13DC7CD536D3A020F55BA4BA03EA43EC20F5B4D014977C1BFAB3201AEC6__CreateConnectionStringQuoteValueRegex_1:.ctor():this (FullOpts) -19 (-16.38 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__EncodeCharRegex_1:.ctor():this (FullOpts) -19 (-16.10 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__LanguageRegex_2:.ctor():this (FullOpts) -17 (-16.04 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:LeadingZeroCount(System.Numerics.BigInteger):System.Numerics.BigInteger (FullOpts) -15 (-0.71 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension:Decode(System.ReadOnlySpan`1[ubyte]):this (FullOpts) -14 (-25.00 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateChecked[int](int):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateChecked[short](short):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateChecked[ubyte](ubyte):System.Numerics.BigInteger (FullOpts) -14 (-25.00 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateSaturating[int](int):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateSaturating[short](short):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateSaturating[ubyte](ubyte):System.Numerics.BigInteger (FullOpts) -14 (-25.00 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateTruncating[int](int):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateTruncating[short](short):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateTruncating[ubyte](ubyte):System.Numerics.BigInteger (FullOpts) -13 (-22.81 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Implicit(byte):System.Numerics.BigInteger (FullOpts) -13 (-22.81 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Implicit(short):System.Numerics.BigInteger (FullOpts) -13 (-22.81 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Implicit(ubyte):System.Numerics.BigInteger (FullOpts) -13 (-1.04 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.Pkcs7.EncryptedDataAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[double]:b__0(double):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[int]:b__0(int):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[long]:b__0(long):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[short]:b__0(short):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[System.__Canon]:b__0(System.__Canon):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-7.83 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[System.Nullable`1[int]]:b__0(System.Nullable`1[int]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-7.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[System.Numerics.Vector`1[float]]:b__0(System.Numerics.Vector`1[float]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[ubyte]:b__0(ubyte):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[double]:b__0(double):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[int]:b__0(int):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[long]:b__0(long):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[short]:b__0(short):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[System.__Canon]:b__0(System.__Canon):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-7.83 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[System.Nullable`1[int]]:b__0(System.Nullable`1[int]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-7.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[System.Numerics.Vector`1[float]]:b__0(System.Numerics.Vector`1[float]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[ubyte]:b__0(ubyte):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-21.82 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Implicit(int):System.Numerics.BigInteger (FullOpts) -12 (-8.39 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[double]:b__0(double):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-8.39 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[int]:b__0(int):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-8.39 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[long]:b__0(long):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-8.16 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[short]:b__0(short):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-8.39 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[System.__Canon]:b__0(System.__Canon):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-7.55 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[System.Nullable`1[int]]:b__0(System.Nullable`1[int]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-7.45 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[System.Numerics.Vector`1[float]]:b__0(System.Numerics.Vector`1[float]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-8.16 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[ubyte]:b__0(ubyte):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-1.06 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.SlidingWindowRateLimiter:.ctor(System.Threading.RateLimiting.SlidingWindowRateLimiterOptions):this (FullOpts) -11 (-1.69 % of base) : System.Net.HttpListener.dasm - System.Net.HttpListener:.ctor():this (FullOpts) -9 (-0.92 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:TraceEvent(int,int,System.String,System.Object[]):this (FullOpts) -9 (-0.74 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.Pkcs7.EncryptedDataAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -9 (-0.81 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.TokenBucketRateLimiter:.ctor(System.Threading.RateLimiting.TokenBucketRateLimiterOptions):this (FullOpts) -8 (-0.86 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.FixedWindowRateLimiter:.ctor(System.Threading.RateLimiting.FixedWindowRateLimiterOptions):this (FullOpts) -7 (-1.18 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__EnsureArrayIndexRegex_5:.ctor():this (FullOpts) -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__P0Regex_6:.ctor():this (FullOpts) -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__ParamsReadRegex_11:.ctor():this (FullOpts) -7 (-1.32 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__Regex1_3:.ctor():this (FullOpts) -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__Regex2_4:.ctor():this (FullOpts) -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeNullAnyTypeRegex_7:.ctor():this (FullOpts) -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeObjectEmptyRegex_8:.ctor():this (FullOpts) -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeObjectNullRegex_9:.ctor():this (FullOpts) -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeObjectRegex_10:.ctor():this (FullOpts) -6 (-6.74 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlString:ToSqlDecimal():System.Data.SqlTypes.SqlDecimal:this (FullOpts) -6 (-0.59 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Division(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger (FullOpts) -6 (-0.45 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.OriginatorIdentifierOrKeyAsn:DecodeCore(byref,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -5 (-3.31 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:Equals(System.Data.SqlTypes.SqlInt64):ubyte:this (FullOpts) -5 (-3.31 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:Equals(System.Data.SqlTypes.SqlMoney):ubyte:this (FullOpts) -5 (-6.49 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromChecked[int](int,byref):ubyte (FullOpts) -5 (-6.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromChecked[short](short,byref):ubyte (FullOpts) -5 (-6.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromChecked[ubyte](ubyte,byref):ubyte (FullOpts) -5 (-6.49 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromSaturating[int](int,byref):ubyte (FullOpts) -5 (-6.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromSaturating[short](short,byref):ubyte (FullOpts) -5 (-6.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromSaturating[ubyte](ubyte,byref):ubyte (FullOpts) -5 (-6.49 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromTruncating[int](int,byref):ubyte (FullOpts) -5 (-6.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromTruncating[short](short,byref):ubyte (FullOpts) Top method regressions (percentages): 20 (Infinity of base) : System.Private.Xml.dasm - System.Xml.Xsl.SourceLineInfo:get_IsNoSource():ubyte:this (FullOpts) (0 base, 1 diff methods) 5 (Infinity of base) : System.Private.Xml.dasm - System.Xml.Xsl.SourceLineInfo:get_Uri():System.String:this (FullOpts) (0 base, 1 diff methods) 398 (2,487.50 % of base) : System.ServiceModel.Syndication.dasm - System.ServiceModel.Syndication.SyndicationFeed:.ctor(System.String,System.String,System.Uri):this (FullOpts) 314 (1,744.44 % of base) : System.Net.Http.dasm - System.Net.Http.HttpClient:.ctor(System.Net.Http.HttpMessageHandler):this (FullOpts) 311 (1,480.95 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.SequencePipeReader:AdvanceTo(System.SequencePosition):this (FullOpts) 133 (1,023.08 % of base) : System.Private.Xml.dasm - System.Xml.Schema.XmlSchemaChoice:get_IsEmpty():ubyte:this (FullOpts) 226 (982.61 % of base) : System.Net.Mail.dasm - System.Net.Mime.ContentDisposition:get_CreationDate():System.DateTime:this (FullOpts) 226 (982.61 % of base) : System.Net.Mail.dasm - System.Net.Mime.ContentDisposition:get_ModificationDate():System.DateTime:this (FullOpts) 226 (982.61 % of base) : System.Net.Mail.dasm - System.Net.Mime.ContentDisposition:get_ReadDate():System.DateTime:this (FullOpts) 214 (930.43 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:ToSqlSingle():System.Data.SqlTypes.SqlSingle:this (FullOpts) 239 (919.23 % of base) : System.Net.Requests.dasm - System.Net.HttpWebRequest:set_Date(System.DateTime):this (FullOpts) 239 (919.23 % of base) : System.Net.Requests.dasm - System.Net.HttpWebRequest:set_IfModifiedSince(System.DateTime):this (FullOpts) 330 (868.42 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlSingle():System.Data.SqlTypes.SqlSingle:this (FullOpts) 135 (750.00 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.TypeName:MakeByRefTypeName():System.Reflection.Metadata.TypeName:this (FullOpts) 135 (750.00 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.TypeName:MakePointerTypeName():System.Reflection.Metadata.TypeName:this (FullOpts) 135 (750.00 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.TypeName:MakeSZArrayTypeName():System.Reflection.Metadata.TypeName:this (FullOpts) 165 (717.39 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:ToSqlDouble():System.Data.SqlTypes.SqlDouble:this (FullOpts) 167 (695.83 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:ToSqlSingle():System.Data.SqlTypes.SqlSingle:this (FullOpts) 90 (692.31 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:Equals(System.Data.SqlTypes.SqlDouble,System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlBoolean (FullOpts) 87 (669.23 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:GreaterThan(System.Data.SqlTypes.SqlDouble,System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlBoolean (FullOpts) 87 (669.23 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:GreaterThanOrEqual(System.Data.SqlTypes.SqlDouble,System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlBoolean (FullOpts) 87 (669.23 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:LessThan(System.Data.SqlTypes.SqlDouble,System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlBoolean (FullOpts) 87 (669.23 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:LessThanOrEqual(System.Data.SqlTypes.SqlDouble,System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlBoolean (FullOpts) 85 (653.85 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:Equals(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlBoolean (FullOpts) 85 (653.85 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:GreaterThan(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlBoolean (FullOpts) 85 (653.85 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:GreaterThanOrEqual(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlBoolean (FullOpts) 85 (653.85 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:LessThan(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlBoolean (FullOpts) 85 (653.85 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:LessThanOrEqual(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlBoolean (FullOpts) 85 (653.85 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:Equals(System.Data.SqlTypes.SqlMoney,System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlBoolean (FullOpts) 85 (653.85 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:GreaterThan(System.Data.SqlTypes.SqlMoney,System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlBoolean (FullOpts) 85 (653.85 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:GreaterThanOrEqual(System.Data.SqlTypes.SqlMoney,System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlBoolean (FullOpts) 85 (653.85 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:LessThan(System.Data.SqlTypes.SqlMoney,System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlBoolean (FullOpts) 85 (653.85 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:LessThanOrEqual(System.Data.SqlTypes.SqlMoney,System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlBoolean (FullOpts) 346 (652.83 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.IteratorDescriptor:LoopToEnd(System.Reflection.Emit.Label):this (FullOpts) 161 (619.23 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:ToSqlDecimal():System.Data.SqlTypes.SqlDecimal:this (FullOpts) 132 (573.91 % of base) : System.Private.CoreLib.dasm - System.Decimal:System.IConvertible.ToBoolean(System.IFormatProvider):ubyte:this (FullOpts) 216 (568.42 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlGuid:ToSqlBinary():System.Data.SqlTypes.SqlBinary:this (FullOpts) 68 (523.08 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.ILGen:EmitPrimitive(System.Reflection.Emit.ILGenerator,uint) (FullOpts) 308 (522.03 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlDouble():System.Data.SqlTypes.SqlDouble:this (FullOpts) 77 (513.33 % of base) : System.Net.Requests.dasm - System.Net.Cache.HttpRequestCachePolicy:.ctor():this (FullOpts) 117 (487.50 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:ToSqlMoney():System.Data.SqlTypes.SqlMoney:this (FullOpts) 122 (469.23 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:ToSqlDecimal():System.Data.SqlTypes.SqlDecimal:this (FullOpts) 471 (461.76 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.DecimalConverter:FromString(System.String,int):System.Object:this (FullOpts) 423 (450.00 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlString:ToSqlMoney():System.Data.SqlTypes.SqlMoney:this (FullOpts) 197 (410.42 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlString():System.Data.SqlTypes.SqlString:this (FullOpts) 197 (410.42 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlGuid:ToSqlString():System.Data.SqlTypes.SqlString:this (FullOpts) 65 (406.25 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.CodeGenerator:Ldarg(System.Runtime.Serialization.ArgBuilder):this (FullOpts) 65 (406.25 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.CodeGenerator:Ldarga(System.Runtime.Serialization.ArgBuilder):this (FullOpts) 65 (406.25 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.CodeGenerator:Starg(System.Runtime.Serialization.ArgBuilder):this (FullOpts) 90 (391.30 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:ToSqlBoolean():System.Data.SqlTypes.SqlBoolean:this (FullOpts) 73 (384.21 % of base) : System.ServiceModel.Syndication.dasm - System.ServiceModel.Syndication.SyndicationItem:.ctor():this (FullOpts) 88 (382.61 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:ToSqlMoney():System.Data.SqlTypes.SqlMoney:this (FullOpts) 81 (368.18 % of base) : System.ServiceModel.Syndication.dasm - System.ServiceModel.Syndication.SyndicationFeed:.ctor(System.Collections.Generic.IEnumerable`1[System.ServiceModel.Syndication.SyndicationItem]):this (FullOpts) 132 (338.46 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDateTime:Add(System.Data.SqlTypes.SqlDateTime,System.TimeSpan):System.Data.SqlTypes.SqlDateTime (FullOpts) 132 (338.46 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDateTime:Subtract(System.Data.SqlTypes.SqlDateTime,System.TimeSpan):System.Data.SqlTypes.SqlDateTime (FullOpts) 244 (334.25 % of base) : System.Net.Http.dasm - System.Net.Http.HttpClient:.ctor():this (FullOpts) 86 (318.52 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:ToSqlDecimal():System.Data.SqlTypes.SqlDecimal:this (FullOpts) 70 (318.18 % of base) : System.ServiceModel.Syndication.dasm - System.ServiceModel.Syndication.SyndicationFeed:.ctor():this (FullOpts) 60 (315.79 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitClosureArgument():this (FullOpts) 40 (307.69 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlBoolean:And(System.Data.SqlTypes.SqlBoolean,System.Data.SqlTypes.SqlBoolean):System.Data.SqlTypes.SqlBoolean (FullOpts) 40 (307.69 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlBoolean:Or(System.Data.SqlTypes.SqlBoolean,System.Data.SqlTypes.SqlBoolean):System.Data.SqlTypes.SqlBoolean (FullOpts) 63 (262.50 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:b__49():this (FullOpts) 63 (262.50 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:b__53():this (FullOpts) 63 (262.50 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:b__60():this (FullOpts) 149 (252.54 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.BooleanType:DecimalToBoolean(System.IConvertible):ubyte (FullOpts) 316 (248.82 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitAncestor(System.Xml.Xsl.Qil.QilUnary):System.Xml.Xsl.Qil.QilNode:this (FullOpts) 316 (248.82 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitDescendant(System.Xml.Xsl.Qil.QilUnary):System.Xml.Xsl.Qil.QilNode:this (FullOpts) 57 (247.83 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:ToSqlInt32():System.Data.SqlTypes.SqlInt32:this (FullOpts) 329 (243.70 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitNodeRange(System.Xml.Xsl.Qil.QilBinary):System.Xml.Xsl.Qil.QilNode:this (FullOpts) 82 (241.18 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:NotEquals(System.Data.SqlTypes.SqlDouble,System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlBoolean (FullOpts) 82 (241.18 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:op_Inequality(System.Data.SqlTypes.SqlDouble,System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlBoolean (FullOpts) 358 (238.67 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.RegexStringValidator:.ctor(System.String):this (FullOpts) 312 (238.17 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitAncestorOrSelf(System.Xml.Xsl.Qil.QilUnary):System.Xml.Xsl.Qil.QilNode:this (FullOpts) 312 (238.17 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitDescendantOrSelf(System.Xml.Xsl.Qil.QilUnary):System.Xml.Xsl.Qil.QilNode:this (FullOpts) 121 (237.25 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDecimal:GreaterThanOrEqual(System.Data.SqlTypes.SqlDecimal,System.Data.SqlTypes.SqlDecimal):System.Data.SqlTypes.SqlBoolean (FullOpts) 121 (237.25 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlGuid:GreaterThanOrEqual(System.Data.SqlTypes.SqlGuid,System.Data.SqlTypes.SqlGuid):System.Data.SqlTypes.SqlBoolean (FullOpts) 120 (235.29 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDecimal:LessThanOrEqual(System.Data.SqlTypes.SqlDecimal,System.Data.SqlTypes.SqlDecimal):System.Data.SqlTypes.SqlBoolean (FullOpts) 120 (235.29 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlGuid:LessThanOrEqual(System.Data.SqlTypes.SqlGuid,System.Data.SqlTypes.SqlGuid):System.Data.SqlTypes.SqlBoolean (FullOpts) 77 (226.47 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:NotEquals(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlBoolean (FullOpts) 77 (226.47 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:op_Inequality(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlBoolean (FullOpts) 77 (226.47 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:NotEquals(System.Data.SqlTypes.SqlMoney,System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlBoolean (FullOpts) 77 (226.47 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:op_Inequality(System.Data.SqlTypes.SqlMoney,System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlBoolean (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_1:b__36():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_1:b__37():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_3:b__38():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_4:b__39():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_5:b__40():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_6:b__43():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_6:b__44():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_7:b__46():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_7:b__47():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_7:b__48():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_8:b__50():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_8:b__51():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_8:b__54():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_8:b__55():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_8:b__56():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_9:b__59():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_9:b__61():this (FullOpts) 63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_9:b__62():this (FullOpts) Top method improvements (percentages): -27 (-50.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexRunner:InitializeTimeout(System.TimeSpan):this (FullOpts) (2 base, 1 diff methods) -55 (-45.08 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.TypeNameParser:.ctor(System.ReadOnlySpan`1[ushort],ubyte,System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):this (FullOpts) -27 (-28.12 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlString:ToSqlDouble():System.Data.SqlTypes.SqlDouble:this (FullOpts) -20 (-25.32 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlString:ToSqlSingle():System.Data.SqlTypes.SqlSingle:this (FullOpts) -14 (-25.00 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateChecked[int](int):System.Numerics.BigInteger (FullOpts) -14 (-25.00 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateSaturating[int](int):System.Numerics.BigInteger (FullOpts) -14 (-25.00 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateTruncating[int](int):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateChecked[short](short):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateChecked[ubyte](ubyte):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateSaturating[short](short):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateSaturating[ubyte](ubyte):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateTruncating[short](short):System.Numerics.BigInteger (FullOpts) -14 (-24.14 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:CreateTruncating[ubyte](ubyte):System.Numerics.BigInteger (FullOpts) -26 (-23.21 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Implicit(ushort):System.Numerics.BigInteger (FullOpts) (2 methods) -13 (-22.81 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Implicit(byte):System.Numerics.BigInteger (FullOpts) -13 (-22.81 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Implicit(short):System.Numerics.BigInteger (FullOpts) -13 (-22.81 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Implicit(ubyte):System.Numerics.BigInteger (FullOpts) -24 (-22.64 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlString:ToSqlDateTime():System.Data.SqlTypes.SqlDateTime:this (FullOpts) -12 (-21.82 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Implicit(int):System.Numerics.BigInteger (FullOpts) -19 (-16.38 % of base) : System.Data.Odbc.dasm - System.Text.RegularExpressions.Generated.F0441267B09271A6B48EAE6A39F91CAA934DFECA0097D1A96331686EEB70E4A73__CreateConnectionStringQuoteValueRegex_1:.ctor():this (FullOpts) -19 (-16.38 % of base) : System.Data.Common.dasm - System.Text.RegularExpressions.Generated.F60EFD13DC7CD536D3A020F55BA4BA03EA43EC20F5B4D014977C1BFAB3201AEC6__CreateConnectionStringQuoteValueRegex_1:.ctor():this (FullOpts) -19 (-16.38 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__EncodeCharRegex_1:.ctor():this (FullOpts) -19 (-16.10 % of base) : System.Data.Odbc.dasm - System.Text.RegularExpressions.Generated.F0441267B09271A6B48EAE6A39F91CAA934DFECA0097D1A96331686EEB70E4A73__CreateConnectionStringQuoteOdbcValueRegex_2:.ctor():this (FullOpts) -19 (-16.10 % of base) : System.Data.Common.dasm - System.Text.RegularExpressions.Generated.F60EFD13DC7CD536D3A020F55BA4BA03EA43EC20F5B4D014977C1BFAB3201AEC6__CreateConnectionStringQuoteOdbcValueRegex_2:.ctor():this (FullOpts) -19 (-16.10 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__LanguageRegex_2:.ctor():this (FullOpts) -17 (-16.04 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:LeadingZeroCount(System.Numerics.BigInteger):System.Numerics.BigInteger (FullOpts) -20 (-14.39 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:CompareTo(System.Data.SqlTypes.SqlInt64):int:this (FullOpts) -20 (-14.39 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:CompareTo(System.Data.SqlTypes.SqlMoney):int:this (FullOpts) -19 (-13.48 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDouble:CompareTo(System.Data.SqlTypes.SqlDouble):int:this (FullOpts) -73 (-10.11 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnWriter:ParseSubIdentifier(byref):System.Numerics.BigInteger (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[double]:b__0(double):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[int]:b__0(int):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[long]:b__0(long):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[System.__Canon]:b__0(System.__Canon):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[double]:b__0(double):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[int]:b__0(int):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[long]:b__0(long):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.67 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[System.__Canon]:b__0(System.__Canon):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[short]:b__0(short):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[ubyte]:b__0(ubyte):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[short]:b__0(short):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-8.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[ubyte]:b__0(ubyte):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-8.39 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[double]:b__0(double):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-8.39 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[int]:b__0(int):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-8.39 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[long]:b__0(long):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-8.39 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[System.__Canon]:b__0(System.__Canon):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-8.16 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[short]:b__0(short):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-8.16 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[ubyte]:b__0(ubyte):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-7.83 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[System.Nullable`1[int]]:b__0(System.Nullable`1[int]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-7.83 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[System.Nullable`1[int]]:b__0(System.Nullable`1[int]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-7.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass3_0`1[System.Numerics.Vector`1[float]]:b__0(System.Numerics.Vector`1[float]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -13 (-7.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass4_0`1[System.Numerics.Vector`1[float]]:b__0(System.Numerics.Vector`1[float]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -23 (-7.59 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.FindPal:LaxParseDecimalBigInteger(System.String):System.Numerics.BigInteger (FullOpts) -12 (-7.55 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[System.Nullable`1[int]]:b__0(System.Nullable`1[int]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -12 (-7.45 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.RateLimitPartition+<>c__DisplayClass5_0`1[System.Numerics.Vector`1[float]]:b__0(System.Numerics.Vector`1[float]):System.Threading.RateLimiting.RateLimiter:this (FullOpts) -6 (-6.74 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlString:ToSqlDecimal():System.Data.SqlTypes.SqlDecimal:this (FullOpts) -3 (-6.67 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.SectionInformation:get_LocationAttributesAreDefault():ubyte:this (FullOpts) -5 (-6.49 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromChecked[int](int,byref):ubyte (FullOpts) -5 (-6.49 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromSaturating[int](int,byref):ubyte (FullOpts) -5 (-6.49 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromTruncating[int](int,byref):ubyte (FullOpts) -35 (-6.39 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnWriter:EncodeSubIdentifier(System.Span`1[ubyte],byref):int (FullOpts) -5 (-6.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromChecked[short](short,byref):ubyte (FullOpts) -5 (-6.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromChecked[ubyte](ubyte,byref):ubyte (FullOpts) -5 (-6.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromSaturating[short](short,byref):ubyte (FullOpts) -5 (-6.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromSaturating[ubyte](ubyte,byref):ubyte (FullOpts) -5 (-6.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromTruncating[short](short,byref):ubyte (FullOpts) -5 (-6.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:TryConvertFromTruncating[ubyte](ubyte,byref):ubyte (FullOpts) -49 (-4.47 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -5 (-3.31 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlInt64:Equals(System.Data.SqlTypes.SqlInt64):ubyte:this (FullOpts) -5 (-3.31 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlMoney:Equals(System.Data.SqlTypes.SqlMoney):ubyte:this (FullOpts) -30 (-3.31 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:LoadNameAndType(int,System.Xml.Xsl.Qil.QilNode,ubyte,ubyte):int:this (FullOpts) -32 (-2.92 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -33 (-2.46 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_BitwiseAnd(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger (FullOpts) -126 (-2.45 % of base) : System.ServiceModel.Syndication.dasm - System.ServiceModel.Syndication.Rss20FeedFormatter:ReadItemFrom(System.Xml.XmlReader,System.ServiceModel.Syndication.SyndicationItem,System.Uri):this (FullOpts) -33 (-2.38 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_BitwiseOr(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger (FullOpts) -60 (-2.33 % of base) : System.Data.Common.dasm - System.Data.Common.SqlDoubleStorage:Aggregate(int[],int):System.Object:this (FullOpts) -50 (-2.33 % of base) : System.Data.Common.dasm - System.Data.Common.SqlInt32Storage:Aggregate(int[],int):System.Object:this (FullOpts) -29 (-2.26 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_ExclusiveOr(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger (FullOpts) -42 (-2.25 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:DivRem(System.Numerics.BigInteger,System.Numerics.BigInteger,byref):System.Numerics.BigInteger (FullOpts) -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__ParamsReadRegex_11:.ctor():this (FullOpts) -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeNullAnyTypeRegex_7:.ctor():this (FullOpts) -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeObjectNullRegex_9:.ctor():this (FullOpts) -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeObjectRegex_10:.ctor():this (FullOpts) -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__P0Regex_6:.ctor():this (FullOpts) -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__Regex2_4:.ctor():this (FullOpts) -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeObjectEmptyRegex_8:.ctor():this (FullOpts) -11 (-1.69 % of base) : System.Net.HttpListener.dasm - System.Net.HttpListener:.ctor():this (FullOpts) -7 (-1.32 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__Regex1_3:.ctor():this (FullOpts) -28 (-1.30 % of base) : System.Data.Common.dasm - System.Data.Common.SqlByteStorage:Aggregate(int[],int):System.Object:this (FullOpts) -26 (-1.21 % of base) : System.Data.Common.dasm - System.Data.Common.SqlInt16Storage:Aggregate(int[],int):System.Object:this (FullOpts) -4 (-1.20 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509Certificate:.ctor(System.String,System.Security.SecureString,int):this (FullOpts) -7 (-1.18 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__EnsureArrayIndexRegex_5:.ctor():this (FullOpts) -2 (-1.08 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDateTime:Equals(System.Object):ubyte:this (FullOpts) -12 (-1.06 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.SlidingWindowRateLimiter:.ctor(System.Threading.RateLimiting.SlidingWindowRateLimiterOptions):this (FullOpts) -13 (-1.04 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.Pkcs7.EncryptedDataAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -9 (-0.92 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:TraceEvent(int,int,System.String,System.Object[]):this (FullOpts) -20 (-0.86 % of base) : System.Data.Common.dasm - System.Data.Common.SqlSingleStorage:Aggregate(int[],int):System.Object:this (FullOpts) -8 (-0.86 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.FixedWindowRateLimiter:.ctor(System.Threading.RateLimiting.FixedWindowRateLimiterOptions):this (FullOpts) -9 (-0.81 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.TokenBucketRateLimiter:.ctor(System.Threading.RateLimiting.TokenBucketRateLimiterOptions):this (FullOpts) -9 (-0.74 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.Pkcs7.EncryptedDataAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) 1214 total methods with Code Size differences (113 improved, 1101 regressed), 231443 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 1 month ago

Top method regressions

941 (168.34 % of base) - Internal.Cryptography.PkcsHelpers:EncodeUtcTime(System.DateTime):ubyte[] ```diff ; Assembly listing for method Internal.Cryptography.PkcsHelpers:EncodeUtcTime(System.DateTime):ubyte[] (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data -; 0 inlinees with PGO data; 10 single block inlinees; 8 inlinees without PGO data +; 0 inlinees with PGO data; 38 single block inlinees; 18 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00 ] ( 6, 5 ) struct ( 8) [rbp-0x28] do-not-enreg[XS] addr-exposed ld-addr-op single-def ;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def -;* V02 loc1 [V02,T15] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SA] multireg-arg ld-addr-op -; V03 loc2 [V03,T09] ( 2, 2 ) ref -> rax class-hnd single-def +;* V02 loc1 [V02 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op +; V03 loc2 [V03,T19] ( 2, 2 ) ref -> rax class-hnd single-def ;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V06 tmp1 [V06,T00] ( 5, 8 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" ;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V08 tmp3 [V08 ] ( 0, 0 ) struct ( 8) zero-ref multireg-ret "spilled call-like call argument" ;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" -; V10 tmp5 [V10,T24] ( 4, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" -; V11 tmp6 [V11,T25] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" -; V12 tmp7 [V12,T12] ( 2, 2 ) long -> rax single-def "Inline stloc first use temp" +; V10 tmp5 [V10,T51] ( 4, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" +; V11 tmp6 [V11,T52] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" +; V12 tmp7 [V12,T24] ( 2, 2 ) long -> rax single-def "Inline stloc first use temp" ;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V14 tmp9 [V14 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" +;* V14 tmp9 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V15 tmp10 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" ;* V16 tmp11 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V17 tmp12 [V17,T13] ( 3, 1.50) long -> rdi single-def "Inline stloc first use temp" +; V17 tmp12 [V17,T25] ( 3, 1.50) long -> rdi single-def "Inline stloc first use temp" ;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V19 tmp14 [V19 ] ( 0, 0 ) struct ( 8) zero-ref single-def "Inline return value spill temp" -; V20 tmp15 [V20,T02] ( 4, 2 ) ref -> r14 class-hnd exact single-def "Inline stloc first use temp" +; V20 tmp15 [V20,T04] ( 4, 2 ) ref -> r14 class-hnd exact single-def "Inline stloc first use temp" ;* V21 tmp16 [V21 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" -; V22 tmp17 [V22,T10] ( 2, 2 ) ref -> rdi class-hnd exact single-def "dup spill" -; V23 tmp18 [V23,T03] ( 4, 2 ) ref -> rdi -;* V24 tmp19 [V24 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" -;* V25 tmp20 [V25 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" -;* V26 tmp21 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" -;* V27 tmp22 [V27 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V28 tmp23 [V28,T16] ( 2, 1 ) long -> rdi single-def "Inline stloc first use temp" -;* V29 tmp24 [V29 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V30 tmp25 [V30 ] ( 0, 0 ) struct ( 8) zero-ref single-def "Inline return value spill temp" -; V31 tmp26 [V31,T04] ( 4, 2 ) ref -> r14 class-hnd exact single-def "Inline stloc first use temp" -;* V32 tmp27 [V32 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" -; V33 tmp28 [V33,T11] ( 2, 2 ) ref -> rdi class-hnd exact single-def "dup spill" -; V34 tmp29 [V34,T05] ( 4, 2 ) ref -> rdi -; V35 tmp30 [V35 ] ( 6, 5 ) long -> [rbp-0x28] do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP -;* V36 tmp31 [V36 ] ( 0, 0 ) short -> zero-ref single-def "field V07._offsetMinutes (fldOffset=0x0)" P-INDEP -;* V37 tmp32 [V37 ] ( 0, 0 ) long -> zero-ref single-def "field V07._dateTime (fldOffset=0x8)" P-INDEP -; V38 tmp33 [V38,T06] ( 4, 2 ) long -> r15 "field V08._dateData (fldOffset=0x0)" P-INDEP -;* V39 tmp34 [V39 ] ( 0, 0 ) short -> zero-ref single-def "field V09._offsetMinutes (fldOffset=0x0)" P-INDEP -;* V40 tmp35 [V40 ] ( 0, 0 ) long -> zero-ref single-def "field V09._dateTime (fldOffset=0x8)" P-INDEP -; V41 tmp36 [V41,T17] ( 2, 1 ) short -> r13 single-def "field V14._offsetMinutes (fldOffset=0x0)" P-INDEP -; V42 tmp37 [V42,T18] ( 2, 1 ) long -> [rbp-0x30] do-not-enreg[F] "field V14._dateTime (fldOffset=0x8)" P-INDEP -;* V43 tmp38 [V43 ] ( 0, 0 ) long -> zero-ref single-def "field V15._dateData (fldOffset=0x0)" P-INDEP -; V44 tmp39 [V44,T07] ( 4, 2 ) long -> r14 "field V16._ticks (fldOffset=0x0)" P-INDEP -; V45 tmp40 [V45,T19] ( 2, 1 ) long -> r14 "field V19._ticks (fldOffset=0x0)" P-INDEP -;* V46 tmp41 [V46 ] ( 0, 0 ) long -> zero-ref single-def "field V21._dateData (fldOffset=0x0)" P-INDEP -;* V47 tmp42 [V47 ] ( 0, 0 ) long -> zero-ref "field V24._dateData (fldOffset=0x0)" P-INDEP -; V48 tmp43 [V48,T20] ( 2, 1 ) short -> r13 single-def "field V25._offsetMinutes (fldOffset=0x0)" P-INDEP -; V49 tmp44 [V49,T21] ( 2, 1 ) long -> [rbp-0x38] do-not-enreg[F] "field V25._dateTime (fldOffset=0x8)" P-INDEP -; V50 tmp45 [V50,T14] ( 3, 1.50) long -> r15 single-def "field V26._dateData (fldOffset=0x0)" P-INDEP -; V51 tmp46 [V51,T08] ( 4, 2 ) long -> r14 "field V27._ticks (fldOffset=0x0)" P-INDEP -; V52 tmp47 [V52,T22] ( 2, 1 ) long -> r14 "field V30._ticks (fldOffset=0x0)" P-INDEP -;* V53 tmp48 [V53 ] ( 0, 0 ) long -> zero-ref single-def "field V32._dateData (fldOffset=0x0)" P-INDEP -; V54 tmp49 [V54,T26] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -; V55 PSPSym [V55,T23] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym" -; V56 cse0 [V56,T01] ( 3, 2.50) long -> rdi "CSE #01: moderate" +; V22 tmp17 [V22,T20] ( 2, 2 ) ref -> rdi class-hnd exact single-def "dup spill" +; V23 tmp18 [V23,T05] ( 4, 2 ) ref -> rdi +;* V24 tmp19 [V24,T48] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" +; V25 tmp20 [V25 ] ( 9, 9 ) struct (16) [rbp-0x38] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "Inlining Arg" +; V26 tmp21 [V26,T53] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" +;* V27 tmp22 [V27 ] ( 0, 0 ) ref -> zero-ref single-def +;* V28 tmp23 [V28 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" +;* V29 tmp24 [V29 ] ( 0, 0 ) ref -> zero-ref +;* V30 tmp25 [V30 ] ( 0, 0 ) struct ( 8) zero-ref +;* V31 tmp26 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +;* V32 tmp27 [V32 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" +;* V33 tmp28 [V33 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" +;* V34 tmp29 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" +;* V35 tmp30 [V35 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V36 tmp31 [V36 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" +;* V37 tmp32 [V37 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +; V38 tmp33 [V38,T26] ( 3, 1.50) long -> rdi single-def "Inline stloc first use temp" +;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V40 tmp35 [V40 ] ( 0, 0 ) struct ( 8) zero-ref single-def "Inline return value spill temp" +; V41 tmp36 [V41,T06] ( 4, 2 ) ref -> r14 class-hnd exact single-def "Inline stloc first use temp" +;* V42 tmp37 [V42 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" +; V43 tmp38 [V43,T21] ( 2, 2 ) ref -> rdi class-hnd exact single-def "dup spill" +; V44 tmp39 [V44,T07] ( 4, 2 ) ref -> rdi +; V45 tmp40 [V45 ] ( 2, 1 ) struct ( 8) [rbp-0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" +; V46 tmp41 [V46 ] ( 2, 1 ) struct ( 8) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" +;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" +;* V48 tmp43 [V48 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" +;* V49 tmp44 [V49 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V50 tmp45 [V50 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" +;* V51 tmp46 [V51 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" +;* V52 tmp47 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +;* V53 tmp48 [V53 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" +;* V54 tmp49 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +; V55 tmp50 [V55,T29] ( 2, 1 ) long -> rdi single-def "Inline stloc first use temp" +;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V57 tmp52 [V57 ] ( 0, 0 ) struct ( 8) zero-ref single-def "Inline return value spill temp" +; V58 tmp53 [V58,T08] ( 4, 2 ) ref -> r14 class-hnd exact single-def "Inline stloc first use temp" +;* V59 tmp54 [V59 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" +; V60 tmp55 [V60,T22] ( 2, 2 ) ref -> rdi class-hnd exact single-def "dup spill" +; V61 tmp56 [V61,T09] ( 4, 2 ) ref -> rdi +;* V62 tmp57 [V62,T49] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" +; V63 tmp58 [V63 ] ( 9, 9 ) struct (16) [rbp-0x58] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "Inlining Arg" +; V64 tmp59 [V64,T54] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" +;* V65 tmp60 [V65 ] ( 0, 0 ) ref -> zero-ref single-def +;* V66 tmp61 [V66 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" +;* V67 tmp62 [V67 ] ( 0, 0 ) ref -> zero-ref +;* V68 tmp63 [V68 ] ( 0, 0 ) struct ( 8) zero-ref +;* V69 tmp64 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +;* V70 tmp65 [V70 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" +;* V71 tmp66 [V71 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" +;* V72 tmp67 [V72 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" +;* V73 tmp68 [V73 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V74 tmp69 [V74 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" +;* V75 tmp70 [V75 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +; V76 tmp71 [V76,T27] ( 3, 1.50) long -> rdi single-def "Inline stloc first use temp" +;* V77 tmp72 [V77 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V78 tmp73 [V78 ] ( 0, 0 ) struct ( 8) zero-ref single-def "Inline return value spill temp" +; V79 tmp74 [V79,T10] ( 4, 2 ) ref -> r14 class-hnd exact single-def "Inline stloc first use temp" +;* V80 tmp75 [V80 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" +; V81 tmp76 [V81,T23] ( 2, 2 ) ref -> rdi class-hnd exact single-def "dup spill" +; V82 tmp77 [V82,T11] ( 4, 2 ) ref -> rdi +; V83 tmp78 [V83 ] ( 2, 1 ) struct ( 8) [rbp-0x60] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" +; V84 tmp79 [V84 ] ( 2, 1 ) struct ( 8) [rbp-0x68] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" +;* V85 tmp80 [V85 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" +;* V86 tmp81 [V86 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" +;* V87 tmp82 [V87 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V88 tmp83 [V88 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" +; V89 tmp84 [V89 ] ( 6, 5 ) long -> [rbp-0x28] do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP +;* V90 tmp85 [V90 ] ( 0, 0 ) short -> zero-ref single-def "field V07._offsetMinutes (fldOffset=0x0)" P-INDEP +;* V91 tmp86 [V91 ] ( 0, 0 ) long -> zero-ref single-def "field V07._dateTime (fldOffset=0x8)" P-INDEP +; V92 tmp87 [V92,T12] ( 4, 2 ) long -> r15 "field V08._dateData (fldOffset=0x0)" P-INDEP +;* V93 tmp88 [V93 ] ( 0, 0 ) short -> zero-ref single-def "field V09._offsetMinutes (fldOffset=0x0)" P-INDEP +;* V94 tmp89 [V94 ] ( 0, 0 ) long -> zero-ref single-def "field V09._dateTime (fldOffset=0x8)" P-INDEP +; V95 tmp90 [V95,T30] ( 2, 1 ) short -> r13 single-def "field V14._offsetMinutes (fldOffset=0x0)" P-INDEP +; V96 tmp91 [V96,T31] ( 2, 1 ) long -> [rbp-0x70] do-not-enreg[F] "field V14._dateTime (fldOffset=0x8)" P-INDEP +;* V97 tmp92 [V97 ] ( 0, 0 ) long -> zero-ref single-def "field V15._dateData (fldOffset=0x0)" P-INDEP +; V98 tmp93 [V98,T13] ( 4, 2 ) long -> r14 "field V16._ticks (fldOffset=0x0)" P-INDEP +; V99 tmp94 [V99,T32] ( 2, 1 ) long -> r14 "field V19._ticks (fldOffset=0x0)" P-INDEP +;* V100 tmp95 [V100 ] ( 0, 0 ) long -> zero-ref single-def "field V21._dateData (fldOffset=0x0)" P-INDEP +; V101 tmp96 [V101 ] ( 5, 3.50) short -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V25._offsetMinutes (fldOffset=0x0)" P-DEP +; V102 tmp97 [V102 ] ( 6, 4 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V25._dateTime (fldOffset=0x8)" P-DEP +;* V103 tmp98 [V103 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V28._controlFlags (fldOffset=0x0)" P-INDEP +;* V104 tmp99 [V104 ] ( 0, 0 ) int -> zero-ref single-def "field V28.k__BackingField (fldOffset=0x4)" P-INDEP +; V105 tmp100 [V105,T33] ( 2, 1 ) ubyte -> rsi "field V30._controlFlags (fldOffset=0x0)" P-INDEP +; V106 tmp101 [V106,T34] ( 2, 1 ) int -> rdx "field V30.k__BackingField (fldOffset=0x4)" P-INDEP +; V107 tmp102 [V107,T35] ( 2, 1 ) short -> r13 single-def "field V31._offsetMinutes (fldOffset=0x0)" P-INDEP +; V108 tmp103 [V108,T36] ( 2, 1 ) long -> [rbp-0x78] do-not-enreg[F] "field V31._dateTime (fldOffset=0x8)" P-INDEP +;* V109 tmp104 [V109 ] ( 0, 0 ) long -> zero-ref "field V32._dateData (fldOffset=0x0)" P-INDEP +; V110 tmp105 [V110,T37] ( 2, 1 ) long -> r15 single-def "field V33._dateData (fldOffset=0x0)" P-INDEP +; V111 tmp106 [V111,T14] ( 4, 2 ) long -> r15 single-def "field V34._dateData (fldOffset=0x0)" P-INDEP +;* V112 tmp107 [V112 ] ( 0, 0 ) long -> zero-ref single-def "field V36._dateData (fldOffset=0x0)" P-INDEP +; V113 tmp108 [V113,T15] ( 4, 2 ) long -> r14 "field V37._ticks (fldOffset=0x0)" P-INDEP +; V114 tmp109 [V114,T38] ( 2, 1 ) long -> r14 "field V40._ticks (fldOffset=0x0)" P-INDEP +;* V115 tmp110 [V115 ] ( 0, 0 ) long -> zero-ref single-def "field V42._dateData (fldOffset=0x0)" P-INDEP +; V116 tmp111 [V116 ] ( 2, 1 ) long -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V45._dateData (fldOffset=0x0)" P-DEP +; V117 tmp112 [V117 ] ( 2, 1 ) long -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V46._dateData (fldOffset=0x0)" P-DEP +;* V118 tmp113 [V118 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V48._controlFlags (fldOffset=0x0)" P-INDEP +;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref single-def "field V48.k__BackingField (fldOffset=0x4)" P-INDEP +;* V120 tmp115 [V120 ] ( 0, 0 ) long -> zero-ref "field V51._dateData (fldOffset=0x0)" P-INDEP +; V121 tmp116 [V121,T39] ( 2, 1 ) short -> r13 single-def "field V52._offsetMinutes (fldOffset=0x0)" P-INDEP +; V122 tmp117 [V122,T40] ( 2, 1 ) long -> [rbp-0x80] do-not-enreg[F] "field V52._dateTime (fldOffset=0x8)" P-INDEP +; V123 tmp118 [V123,T28] ( 3, 1.50) long -> r15 single-def "field V53._dateData (fldOffset=0x0)" P-INDEP +; V124 tmp119 [V124,T16] ( 4, 2 ) long -> r14 "field V54._ticks (fldOffset=0x0)" P-INDEP +; V125 tmp120 [V125,T41] ( 2, 1 ) long -> r14 "field V57._ticks (fldOffset=0x0)" P-INDEP +;* V126 tmp121 [V126 ] ( 0, 0 ) long -> zero-ref single-def "field V59._dateData (fldOffset=0x0)" P-INDEP +; V127 tmp122 [V127 ] ( 5, 3.50) short -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V63._offsetMinutes (fldOffset=0x0)" P-DEP +; V128 tmp123 [V128 ] ( 6, 4 ) long -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V63._dateTime (fldOffset=0x8)" P-DEP +;* V129 tmp124 [V129 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V66._controlFlags (fldOffset=0x0)" P-INDEP +;* V130 tmp125 [V130 ] ( 0, 0 ) int -> zero-ref single-def "field V66.k__BackingField (fldOffset=0x4)" P-INDEP +; V131 tmp126 [V131,T42] ( 2, 1 ) ubyte -> rsi "field V68._controlFlags (fldOffset=0x0)" P-INDEP +; V132 tmp127 [V132,T43] ( 2, 1 ) int -> rdx "field V68.k__BackingField (fldOffset=0x4)" P-INDEP +; V133 tmp128 [V133,T44] ( 2, 1 ) short -> r13 single-def "field V69._offsetMinutes (fldOffset=0x0)" P-INDEP +; V134 tmp129 [V134,T45] ( 2, 1 ) long -> [rbp-0x88] do-not-enreg[F] "field V69._dateTime (fldOffset=0x8)" P-INDEP +;* V135 tmp130 [V135 ] ( 0, 0 ) long -> zero-ref "field V70._dateData (fldOffset=0x0)" P-INDEP +; V136 tmp131 [V136,T46] ( 2, 1 ) long -> r15 single-def "field V71._dateData (fldOffset=0x0)" P-INDEP +; V137 tmp132 [V137,T17] ( 4, 2 ) long -> r15 single-def "field V72._dateData (fldOffset=0x0)" P-INDEP +;* V138 tmp133 [V138 ] ( 0, 0 ) long -> zero-ref single-def "field V74._dateData (fldOffset=0x0)" P-INDEP +; V139 tmp134 [V139,T18] ( 4, 2 ) long -> r14 "field V75._ticks (fldOffset=0x0)" P-INDEP +; V140 tmp135 [V140,T47] ( 2, 1 ) long -> r14 "field V78._ticks (fldOffset=0x0)" P-INDEP +;* V141 tmp136 [V141 ] ( 0, 0 ) long -> zero-ref single-def "field V80._dateData (fldOffset=0x0)" P-INDEP +; V142 tmp137 [V142 ] ( 2, 1 ) long -> [rbp-0x60] do-not-enreg[X] addr-exposed "field V83._dateData (fldOffset=0x0)" P-DEP +; V143 tmp138 [V143 ] ( 2, 1 ) long -> [rbp-0x68] do-not-enreg[X] addr-exposed "field V84._dateData (fldOffset=0x0)" P-DEP +;* V144 tmp139 [V144 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V86._controlFlags (fldOffset=0x0)" P-INDEP +;* V145 tmp140 [V145 ] ( 0, 0 ) int -> zero-ref single-def "field V86.k__BackingField (fldOffset=0x4)" P-INDEP +;* V146 tmp141 [V146 ] ( 0, 0 ) int -> zero-ref single-def "V24.[008..012)" +;* V147 tmp142 [V147 ] ( 0, 0 ) int -> zero-ref single-def "V62.[008..012)" +;* V148 tmp143 [V148 ] ( 0, 0 ) int -> zero-ref "V02.[008..012)" +; V149 tmp144 [V149,T01] ( 6, 6 ) struct ( 8) [rbp-0x90] do-not-enreg[SF] "by-value struct argument" +; V150 tmp145 [V150,T55] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V151 tmp146 [V151,T56] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V152 tmp147 [V152,T57] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V153 PSPSym [V153,T50] ( 1, 1 ) long -> [rbp-0xA0] do-not-enreg[V] "PSPSym" +; V154 cse0 [V154,T03] ( 3, 2.50) long -> rdi "CSE #03: moderate" +; V155 cse1 [V155,T02] ( 6, 3 ) long -> r15 multi-def "CSE #02: moderate" ; -; Lcl frame size = 32 +; Lcl frame size = 128 G_M26838_IG01: push rbp push r15 push r14 push r13 push rbx - sub rsp, 32 - lea rbp, [rsp+0x40] - mov qword ptr [rbp-0x40], rsp + sub rsp, 128 + lea rbp, [rsp+0xA0] + xor eax, eax + mov qword ptr [rbp-0x68], rax + vxorps xmm8, xmm8, xmm8 + vmovdqu ymmword ptr [rbp-0x60], ymm8 + mov qword ptr [rbp-0x40], rax + mov qword ptr [rbp-0xA0], rsp mov qword ptr [rbp-0x28], rdi - ;; size=25 bbWeight=1 PerfScore 7.75 + ;; size=54 bbWeight=1 PerfScore 12.33 G_M26838_IG02: mov rdi, 0xD1FFAB1E ; System.Formats.Asn1.AsnWriter call CORINFO_HELP_NEWSFAST mov rbx, rax mov dword ptr [rbx+0x20], 2 ;; size=25 bbWeight=1 PerfScore 2.50 G_M26838_IG03: mov rdi, 0xD1FFAB1E and rdi, qword ptr [rbp-0x28] mov rax, rdi test rax, rax - je G_M26838_IG08 + je G_M26838_IG13 ;; size=26 bbWeight=1 PerfScore 3.75 G_M26838_IG04: mov r15, qword ptr [rbp-0x28] mov rax, 0xD1FFAB1E cmp rdi, rax jne SHORT G_M26838_IG05 xor r14d, r14d jmp SHORT G_M26838_IG07 ;; size=24 bbWeight=0.50 PerfScore 2.38 G_M26838_IG05: mov rdi, 0xD1FFAB1E ; data for System.TimeZoneInfo:s_cachedData mov r14, gword ptr [rdi] mov rdi, gword ptr [r14+0x08] test rdi, rdi jne SHORT G_M26838_IG06 mov rdi, r14 mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this call [rax]System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this mov rdi, rax ;; size=40 bbWeight=0.50 PerfScore 4.62 G_M26838_IG06: mov rsi, r15 mov rcx, r14 mov edx, 2 mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this cmp dword ptr [rdi], edi call [rax]System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this mov r14, rax ;; size=28 bbWeight=0.50 PerfScore 3.62 G_M26838_IG07: mov rdi, r14 mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:ValidateOffset(System.TimeSpan):short call [rax]System.DateTimeOffset:ValidateOffset(System.TimeSpan):short movsx r13, ax mov rdi, r15 mov rsi, r14 mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime call [rax]System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime - mov qword ptr [rbp-0x38], rax - xor r8d, r8d - xor r9d, r9d - mov esi, r13d - mov rdx, qword ptr [rbp-0x38] - mov rdi, rbx - mov ecx, 0x801 - mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:WriteUtcTime(System.DateTimeOffset,int,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this - call [rax]System.Formats.Asn1.AsnWriter:WriteUtcTime(System.DateTimeOffset,int,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this - jmp G_M26838_IG13 - ;; size=79 bbWeight=0.50 PerfScore 8.00 -G_M26838_IG08: - lea rdi, [rbp-0x28] - mov rax, 0xD1FFAB1E ; code for System.DateTime:ToLocalTime():System.DateTime:this - call [rax]System.DateTime:ToLocalTime():System.DateTime:this - mov r15, rax + mov qword ptr [rbp-0x80], rax + mov word ptr [rbp-0x58], r13w + mov rdi, qword ptr [rbp-0x80] + mov qword ptr [rbp-0x50], rdi + xor edi, edi + xor esi, esi + mov edx, 23 + mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:CheckUniversalTag(System.Nullable`1[System.Formats.Asn1.Asn1Tag],int) + call [rax]System.Formats.Asn1.AsnWriter:CheckUniversalTag(System.Nullable`1[System.Formats.Asn1.Asn1Tag],int) + mov r15, qword ptr [rbp-0x50] + mov r14, 0xD1FFAB1E + and r15, r14 + mov r14, 0xD1FFAB1E + or r15, r14 mov rdi, 0xD1FFAB1E and rdi, r15 - je SHORT G_M26838_IG09 + je SHORT G_M26838_IG08 mov rax, 0xD1FFAB1E cmp rdi, rax - je SHORT G_M26838_IG11 - ;; size=49 bbWeight=0.50 PerfScore 3.50 -G_M26838_IG09: + je SHORT G_M26838_IG10 + ;; size=135 bbWeight=0.50 PerfScore 10.25 +G_M26838_IG08: mov rdi, 0xD1FFAB1E ; data for System.TimeZoneInfo:s_cachedData mov r14, gword ptr [rdi] mov rdi, gword ptr [r14+0x08] test rdi, rdi - jne SHORT G_M26838_IG10 + jne SHORT G_M26838_IG09 mov rdi, r14 mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this call [rax]System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this mov rdi, rax ;; size=40 bbWeight=0.50 PerfScore 4.62 -G_M26838_IG10: +G_M26838_IG09: mov rsi, r15 mov rcx, r14 mov edx, 2 mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this cmp dword ptr [rdi], edi call [rax]System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this mov r14, rax - jmp SHORT G_M26838_IG12 + jmp SHORT G_M26838_IG11 ;; size=30 bbWeight=0.50 PerfScore 4.62 -G_M26838_IG11: +G_M26838_IG10: xor r14d, r14d ;; size=3 bbWeight=0.50 PerfScore 0.12 -G_M26838_IG12: +G_M26838_IG11: mov rdi, r14 mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:ValidateOffset(System.TimeSpan):short call [rax]System.DateTimeOffset:ValidateOffset(System.TimeSpan):short movsx r13, ax mov rdi, r15 mov rsi, r14 mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime call [rax]System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime - mov qword ptr [rbp-0x30], rax - xor r8d, r8d - xor r9d, r9d - mov esi, r13d - mov rdx, qword ptr [rbp-0x30] + mov qword ptr [rbp-0x88], rax + mov word ptr [rbp-0x58], r13w + mov rdi, qword ptr [rbp-0x88] + mov qword ptr [rbp-0x50], rdi + lea rdi, [rbp-0x58] + mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:get_ClockDateTime():System.DateTime:this + call [rax]System.DateTimeOffset:get_ClockDateTime():System.DateTime:this + mov qword ptr [rbp-0x60], rax + lea rdi, [rbp-0x60] + mov rax, 0xD1FFAB1E ; code for System.DateTime:get_Year():int:this + call [rax]System.DateTime:get_Year():int:this + cmp eax, 0x801 + jg G_M26838_IG25 + lea rdi, [rbp-0x58] + mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:get_ClockDateTime():System.DateTime:this + call [rax]System.DateTimeOffset:get_ClockDateTime():System.DateTime:this + mov qword ptr [rbp-0x68], rax + lea rdi, [rbp-0x68] + mov rax, 0xD1FFAB1E ; code for System.DateTime:get_Year():int:this + call [rax]System.DateTime:get_Year():int:this + cmp eax, 0x79D + jle G_M26838_IG25 + mov rdi, 0xD1FFAB1E ; global ptr + test byte ptr [rdi], 1 + je G_M26838_IG24 + ;; size=173 bbWeight=0.50 PerfScore 17.62 +G_M26838_IG12: + mov r15, 0xD1FFAB1E ; data for System.Formats.Asn1.Asn1Tag:UtcTime + movzx rsi, byte ptr [r15] + mov edx, dword ptr [r15+0x04] + mov byte ptr [rbp-0x90], sil + mov dword ptr [rbp-0x8C], edx + mov rsi, qword ptr [rbp-0x90] + movsx rdx, word ptr [rbp-0x58] + mov rcx, qword ptr [rbp-0x50] mov rdi, rbx - mov ecx, 0x801 - mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:WriteUtcTime(System.DateTimeOffset,int,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this - call [rax]System.Formats.Asn1.AsnWriter:WriteUtcTime(System.DateTimeOffset,int,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this - ;; size=74 bbWeight=0.50 PerfScore 7.00 + mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this + call [rax]System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this + jmp G_M26838_IG23 + ;; size=67 bbWeight=0.50 PerfScore 8.38 G_M26838_IG13: + lea rdi, [rbp-0x28] + mov rax, 0xD1FFAB1E ; code for System.DateTime:ToLocalTime():System.DateTime:this + call [rax]System.DateTime:ToLocalTime():System.DateTime:this + mov r15, rax + mov rdi, 0xD1FFAB1E + and rdi, r15 + je SHORT G_M26838_IG14 + mov rax, 0xD1FFAB1E + cmp rdi, rax + je SHORT G_M26838_IG16 + ;; size=49 bbWeight=0.50 PerfScore 3.50 +G_M26838_IG14: + mov rdi, 0xD1FFAB1E ; data for System.TimeZoneInfo:s_cachedData + mov r14, gword ptr [rdi] + mov rdi, gword ptr [r14+0x08] + test rdi, rdi + jne SHORT G_M26838_IG15 + mov rdi, r14 + mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this + call [rax]System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this + mov rdi, rax + ;; size=40 bbWeight=0.50 PerfScore 4.62 +G_M26838_IG15: + mov rsi, r15 + mov rcx, r14 + mov edx, 2 + mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this + cmp dword ptr [rdi], edi + call [rax]System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this + mov r14, rax + jmp SHORT G_M26838_IG17 + ;; size=30 bbWeight=0.50 PerfScore 4.62 +G_M26838_IG16: + xor r14d, r14d + ;; size=3 bbWeight=0.50 PerfScore 0.12 +G_M26838_IG17: + mov rdi, r14 + mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:ValidateOffset(System.TimeSpan):short + call [rax]System.DateTimeOffset:ValidateOffset(System.TimeSpan):short + movsx r13, ax + mov rdi, r15 + mov rsi, r14 + mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime + call [rax]System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime + mov qword ptr [rbp-0x70], rax + mov word ptr [rbp-0x38], r13w + mov rdi, qword ptr [rbp-0x70] + mov qword ptr [rbp-0x30], rdi + xor edi, edi + xor esi, esi + mov edx, 23 + mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:CheckUniversalTag(System.Nullable`1[System.Formats.Asn1.Asn1Tag],int) + call [rax]System.Formats.Asn1.AsnWriter:CheckUniversalTag(System.Nullable`1[System.Formats.Asn1.Asn1Tag],int) + mov r15, qword ptr [rbp-0x30] + mov r14, 0xD1FFAB1E + and r15, r14 + mov r14, 0xD1FFAB1E + or r15, r14 + mov rdi, 0xD1FFAB1E + and rdi, r15 + je SHORT G_M26838_IG18 + mov rax, 0xD1FFAB1E + cmp rdi, rax + je SHORT G_M26838_IG20 + ;; size=135 bbWeight=0.50 PerfScore 10.25 +G_M26838_IG18: + mov rdi, 0xD1FFAB1E ; data for System.TimeZoneInfo:s_cachedData + mov r14, gword ptr [rdi] + mov rdi, gword ptr [r14+0x08] + test rdi, rdi + jne SHORT G_M26838_IG19 + mov rdi, r14 + mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this + call [rax]System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this + mov rdi, rax + ;; size=40 bbWeight=0.50 PerfScore 4.62 +G_M26838_IG19: + mov rsi, r15 + mov rcx, r14 + mov edx, 2 + mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this + cmp dword ptr [rdi], edi + call [rax]System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this + mov r14, rax + jmp SHORT G_M26838_IG21 + ;; size=30 bbWeight=0.50 PerfScore 4.62 +G_M26838_IG20: + xor r14d, r14d + ;; size=3 bbWeight=0.50 PerfScore 0.12 +G_M26838_IG21: + mov rdi, r14 + mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:ValidateOffset(System.TimeSpan):short + call [rax]System.DateTimeOffset:ValidateOffset(System.TimeSpan):short + movsx r13, ax + mov rdi, r15 + mov rsi, r14 + mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime + call [rax]System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime + mov qword ptr [rbp-0x78], rax + mov word ptr [rbp-0x38], r13w + mov rdi, qword ptr [rbp-0x78] + mov qword ptr [rbp-0x30], rdi + lea rdi, [rbp-0x38] + mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:get_ClockDateTime():System.DateTime:this + call [rax]System.DateTimeOffset:get_ClockDateTime():System.DateTime:this + mov qword ptr [rbp-0x40], rax + lea rdi, [rbp-0x40] + mov rax, 0xD1FFAB1E ; code for System.DateTime:get_Year():int:this + call [rax]System.DateTime:get_Year():int:this + cmp eax, 0x801 + jg G_M26838_IG27 + lea rdi, [rbp-0x38] + mov rax, 0xD1FFAB1E ; code for System.DateTimeOffset:get_ClockDateTime():System.DateTime:this + call [rax]System.DateTimeOffset:get_ClockDateTime():System.DateTime:this + mov qword ptr [rbp-0x48], rax + lea rdi, [rbp-0x48] + mov rax, 0xD1FFAB1E ; code for System.DateTime:get_Year():int:this + call [rax]System.DateTime:get_Year():int:this + cmp eax, 0x79D + jle G_M26838_IG27 + mov rdi, 0xD1FFAB1E ; global ptr + test byte ptr [rdi], 1 + je G_M26838_IG26 + ;; size=167 bbWeight=0.50 PerfScore 17.62 +G_M26838_IG22: + mov r15, 0xD1FFAB1E ; data for System.Formats.Asn1.Asn1Tag:UtcTime + movzx rsi, byte ptr [r15] + mov edx, dword ptr [r15+0x04] + mov byte ptr [rbp-0x90], sil + mov dword ptr [rbp-0x8C], edx + mov rsi, qword ptr [rbp-0x90] + movsx rdx, word ptr [rbp-0x38] + mov rcx, qword ptr [rbp-0x30] + mov rdi, rbx + mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this + call [rax]System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this + ;; size=62 bbWeight=0.50 PerfScore 7.38 +G_M26838_IG23: mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this call [rax]System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this - nop - ;; size=16 bbWeight=1 PerfScore 3.75 -G_M26838_IG14: - add rsp, 32 + jmp G_M26838_IG28 + ;; size=20 bbWeight=1 PerfScore 5.50 +G_M26838_IG24: + mov rdi, 0xD1FFAB1E ; System.Formats.Asn1.Asn1Tag + call CORINFO_HELP_GET_GCSTATIC_BASE + jmp G_M26838_IG12 + ;; size=20 bbWeight=0 PerfScore 0.00 +G_M26838_IG25: + mov rdi, 0xD1FFAB1E ; System.ArgumentOutOfRangeException + call CORINFO_HELP_NEWSFAST + mov r15, rax + mov edi, 0xBD8 + mov rsi, 0xD1FFAB1E + call CORINFO_HELP_STRCNS + mov rsi, rax + mov rdi, r15 + mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:.ctor(System.String):this + call [rax]System.ArgumentOutOfRangeException:.ctor(System.String):this + mov rdi, r15 + call CORINFO_HELP_THROW + int3 + ;; size=65 bbWeight=0 PerfScore 0.00 +G_M26838_IG26: + mov rdi, 0xD1FFAB1E ; System.Formats.Asn1.Asn1Tag + call CORINFO_HELP_GET_GCSTATIC_BASE + jmp G_M26838_IG22 + ;; size=20 bbWeight=0 PerfScore 0.00 +G_M26838_IG27: + mov rdi, 0xD1FFAB1E ; System.ArgumentOutOfRangeException + call CORINFO_HELP_NEWSFAST + mov rbx, rax + mov edi, 0xBD8 + mov rsi, 0xD1FFAB1E + call CORINFO_HELP_STRCNS + mov rsi, rax + mov rdi, rbx + mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:.ctor(System.String):this + call [rax]System.ArgumentOutOfRangeException:.ctor(System.String):this + mov rdi, rbx + call CORINFO_HELP_THROW + int3 + ;; size=65 bbWeight=0 PerfScore 0.00 +G_M26838_IG28: + add rsp, 128 pop rbx pop r13 pop r14 pop r15 pop rbp ret - ;; size=13 bbWeight=1 PerfScore 3.75 -G_M26838_IG15: + ;; size=16 bbWeight=1 PerfScore 3.75 +G_M26838_IG29: push rbp push r15 push r14 push r13 push rbx sub rsp, 16 mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp - lea rbp, [rbp+0x40] - ;; size=23 bbWeight=0 PerfScore 0.00 -G_M26838_IG16: + lea rbp, [rbp+0xA0] + ;; size=26 bbWeight=0 PerfScore 0.00 +G_M26838_IG30: mov rbx, rsi mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.CryptographicException call CORINFO_HELP_NEWSFAST mov r15, rax mov rdi, rbx mov rax, qword ptr [rbx] mov rax, qword ptr [rax+0x40] call [rax+0x20]System.Exception:get_Message():System.String:this mov rsi, rax mov rdi, r15 mov rdx, rbx mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.CryptographicException:.ctor(System.String,System.Exception):this call [rax]System.Security.Cryptography.CryptographicException:.ctor(System.String,System.Exception):this mov rdi, r15 call CORINFO_HELP_THROW int3 ;; size=64 bbWeight=0 PerfScore 0.00 -; Total bytes of code 559, prolog size 25, PerfScore 60.00, instruction count 139, allocated bytes for code 559 (MethodHash=a8219729) for method Internal.Cryptography.PkcsHelpers:EncodeUtcTime(System.DateTime):ubyte[] (FullOpts) +; Total bytes of code 1500, prolog size 54, PerfScore 141.58, instruction count 322, allocated bytes for code 1500 (MethodHash=a8219729) for method Internal.Cryptography.PkcsHelpers:EncodeUtcTime(System.DateTime):ubyte[] (FullOpts) ; ============================================================ ```

Note: some changes were skipped as they were too large to fit into a comment.

Larger list of diffs: https://gist.github.com/MihuBot/cb3faa0a6409d5738b24d6054a92a9d9

MihuBot commented 1 month ago

Top method improvements

-73 (-10.11 % of base) - System.Formats.Asn1.AsnWriter:ParseSubIdentifier(byref):System.Numerics.BigInteger ```diff ; Assembly listing for method System.Formats.Asn1.AsnWriter:ParseSubIdentifier(byref):System.Numerics.BigInteger (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 15 single block inlinees; 7 inlinees without PGO data +; 0 inlinees with PGO data; 15 single block inlinees; 9 inlinees without PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T01] ( 12, 17 ) byref -> rbx single-def +; V00 arg0 [V00,T02] ( 12, 17 ) byref -> rbx single-def ; V01 loc0 [V01,T06] ( 8, 9.50) int -> r15 ;* V02 loc1 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-ret -;* V03 loc2 [V03,T26] ( 0, 0 ) int -> zero-ref +;* V03 loc2 [V03,T32] ( 0, 0 ) int -> zero-ref ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V05 tmp1 [V05,T27] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" +; V05 tmp1 [V05,T33] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" ;* V06 tmp2 [V06 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V07 tmp3 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V08 tmp4 [V08 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" -; V09 tmp5 [V09,T28] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" +; V09 tmp5 [V09,T34] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" ;* V10 tmp6 [V10 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V11 tmp7 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V12 tmp8 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V15 tmp11 [V15,T23] ( 2, 2 ) int -> r15 "Inline return value spill temp" +; V15 tmp11 [V15,T27] ( 2, 2 ) int -> r15 "Inline return value spill temp" ;* V16 tmp12 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V17 tmp13 [V17 ] ( 3, 12 ) struct (16) [rbp-0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" -; V18 tmp14 [V18 ] ( 4, 32 ) struct (16) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" +;* V18 tmp14 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V19 tmp15 [V19 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "Inline return value spill temp" -;* V20 tmp16 [V20 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" +;* V20 tmp16 [V20 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" ;* V21 tmp17 [V21 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V22 tmp18 [V22 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" ;* V23 tmp19 [V23 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V24 tmp20 [V24 ] ( 4, 16 ) struct (16) [rbp-0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" +; V24 tmp20 [V24 ] ( 4, 16 ) struct (16) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" ;* V25 tmp21 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -;* V26 tmp22 [V26 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" +;* V26 tmp22 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V27 tmp23 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V28 tmp24 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V29 tmp25 [V29 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V30 tmp26 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -; V31 tmp27 [V31,T03] ( 2, 16 ) int -> rsi "Inlining Arg" -; V32 tmp28 [V32 ] ( 4, 32 ) struct (16) [rbp-0x68] do-not-enreg[XSA] multireg-arg must-init addr-exposed ld-addr-op "NewObj constructor temp" -; V33 tmp29 [V33,T17] ( 4, 4 ) int -> rdx "Inline return value spill temp" -; V34 tmp30 [V34,T13] ( 3, 6 ) int -> rdx "Inlining Arg" -; V35 tmp31 [V35,T14] ( 3, 6 ) int -> r15 "Inlining Arg" +; V31 tmp27 [V31,T01] ( 3, 20 ) int -> rcx "Inlining Arg" +;* V32 tmp28 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" +; V33 tmp29 [V33,T14] ( 4, 4 ) int -> rdx "Inline return value spill temp" +; V34 tmp30 [V34,T12] ( 3, 6 ) int -> rdx "Inlining Arg" +; V35 tmp31 [V35,T13] ( 3, 6 ) int -> r15 "Inlining Arg" ;* V36 tmp32 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V37 tmp33 [V37,T19] ( 2, 4 ) byref -> rcx single-def "Inlining Arg" +; V37 tmp33 [V37,T16] ( 2, 4 ) byref -> rcx single-def "Inlining Arg" ; V38 tmp34 [V38,T20] ( 2, 4 ) int -> rax "Inlining Arg" -; V39 tmp35 [V39,T02] ( 7, 16 ) ref -> r14 "field V02._bits (fldOffset=0x0)" P-INDEP +; V39 tmp35 [V39,T03] ( 7, 16 ) ref -> r14 "field V02._bits (fldOffset=0x0)" P-INDEP ; V40 tmp36 [V40,T04] ( 6, 12 ) int -> r13 "field V02._sign (fldOffset=0x8)" P-INDEP -; V41 tmp37 [V41,T05] ( 5, 12 ) ref -> rdi "field V06._bits (fldOffset=0x0)" P-INDEP -; V42 tmp38 [V42,T08] ( 3, 8 ) int -> r9 "field V06._sign (fldOffset=0x8)" P-INDEP +;* V41 tmp37 [V41 ] ( 0, 0 ) ref -> zero-ref "field V06._bits (fldOffset=0x0)" P-INDEP +;* V42 tmp38 [V42,T23] ( 0, 0 ) int -> zero-ref "field V06._sign (fldOffset=0x8)" P-INDEP ;* V43 tmp39 [V43 ] ( 0, 0 ) ref -> zero-ref "field V07._bits (fldOffset=0x0)" P-INDEP ;* V44 tmp40 [V44 ] ( 0, 0 ) int -> zero-ref "field V07._sign (fldOffset=0x8)" P-INDEP ;* V45 tmp41 [V45 ] ( 0, 0 ) ref -> zero-ref "field V08._bits (fldOffset=0x0)" P-DEP ;* V46 tmp42 [V46 ] ( 0, 0 ) int -> zero-ref "field V08._sign (fldOffset=0x8)" P-DEP -; V47 tmp43 [V47,T21] ( 2, 2 ) byref -> rdi single-def "field V11._reference (fldOffset=0x0)" P-INDEP -; V48 tmp44 [V48,T24] ( 2, 2 ) int -> rdx "field V11._length (fldOffset=0x8)" P-INDEP +; V47 tmp43 [V47,T25] ( 2, 2 ) byref -> rdi single-def "field V11._reference (fldOffset=0x0)" P-INDEP +; V48 tmp44 [V48,T28] ( 2, 2 ) int -> rdx "field V11._length (fldOffset=0x8)" P-INDEP ;* V49 tmp45 [V49 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP ;* V50 tmp46 [V50 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP ;* V51 tmp47 [V51 ] ( 0, 0 ) byref -> zero-ref "field V16._reference (fldOffset=0x0)" P-INDEP ;* V52 tmp48 [V52 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP ; V53 tmp49 [V53 ] ( 2, 6 ) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V17._bits (fldOffset=0x0)" P-DEP ; V54 tmp50 [V54 ] ( 2, 6 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V17._sign (fldOffset=0x8)" P-DEP -; V55 tmp51 [V55 ] ( 3, 20 ) ref -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V18._bits (fldOffset=0x0)" P-DEP -; V56 tmp52 [V56 ] ( 3, 20 ) int -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V18._sign (fldOffset=0x8)" P-DEP +;* V55 tmp51 [V55 ] ( 0, 0 ) ref -> zero-ref "field V18._bits (fldOffset=0x0)" P-INDEP +;* V56 tmp52 [V56,T24] ( 0, 0 ) int -> zero-ref "field V18._sign (fldOffset=0x8)" P-INDEP ; V57 tmp53 [V57,T07] ( 3, 8 ) ref -> r14 "field V19._bits (fldOffset=0x0)" P-INDEP ; V58 tmp54 [V58,T09] ( 3, 8 ) int -> r13 "field V19._sign (fldOffset=0x8)" P-INDEP -;* V59 tmp55 [V59 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP -;* V60 tmp56 [V60 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP +; V59 tmp55 [V59,T17] ( 2, 4 ) byref -> rdi "field V20._reference (fldOffset=0x0)" P-INDEP +; V60 tmp56 [V60,T21] ( 2, 4 ) int -> rsi "field V20._length (fldOffset=0x8)" P-INDEP ;* V61 tmp57 [V61 ] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP ;* V62 tmp58 [V62 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP ;* V63 tmp59 [V63 ] ( 0, 0 ) ref -> zero-ref "field V22._bits (fldOffset=0x0)" P-DEP ;* V64 tmp60 [V64 ] ( 0, 0 ) int -> zero-ref "field V22._sign (fldOffset=0x8)" P-DEP -; V65 tmp61 [V65 ] ( 3, 10 ) ref -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V24._bits (fldOffset=0x0)" P-DEP -; V66 tmp62 [V66 ] ( 3, 10 ) int -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V24._sign (fldOffset=0x8)" P-DEP -; V67 tmp63 [V67,T10] ( 3, 6 ) byref -> rsi "field V26._reference (fldOffset=0x0)" P-INDEP -; V68 tmp64 [V68,T15] ( 3, 6 ) int -> rcx "field V26._length (fldOffset=0x8)" P-INDEP -; V69 tmp65 [V69,T11] ( 3, 6 ) byref -> r8 "field V29._reference (fldOffset=0x0)" P-INDEP -; V70 tmp66 [V70,T16] ( 3, 6 ) int -> rdx "field V29._length (fldOffset=0x8)" P-INDEP -; V71 tmp67 [V71 ] ( 3, 20 ) ref -> [rbp-0x68] do-not-enreg[X] addr-exposed "field V32._bits (fldOffset=0x0)" P-DEP -; V72 tmp68 [V72 ] ( 3, 20 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed "field V32._sign (fldOffset=0x8)" P-DEP -; V73 tmp69 [V73,T22] ( 2, 2 ) byref -> rcx single-def "field V36._reference (fldOffset=0x0)" P-INDEP -; V74 tmp70 [V74,T25] ( 2, 2 ) int -> rax "field V36._length (fldOffset=0x8)" P-INDEP -; V75 tmp71 [V75,T29] ( 2, 0 ) ref -> r15 single-def "argument with side effect" -; V76 tmp72 [V76,T30] ( 2, 0 ) ref -> rdx single-def "argument with side effect" -; V77 tmp73 [V77,T12] ( 3, 6 ) ref -> rdi single-def "BlockOp address local" -; V78 tmp74 [V78,T31] ( 2, 0 ) ref -> r15 "argument with side effect" -; V79 tmp75 [V79,T32] ( 2, 0 ) ref -> rdx "argument with side effect" -; V80 cse0 [V80,T18] ( 4, 4 ) int -> rax "CSE #03: moderate" -; V81 rat0 [V81,T00] ( 7, 25 ) long -> r12 "Widened IV V03" +; V65 tmp61 [V65 ] ( 3, 10 ) ref -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V24._bits (fldOffset=0x0)" P-DEP +; V66 tmp62 [V66 ] ( 3, 10 ) int -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V24._sign (fldOffset=0x8)" P-DEP +; V67 tmp63 [V67,T18] ( 2, 4 ) byref -> rdi "field V26._reference (fldOffset=0x0)" P-INDEP +; V68 tmp64 [V68,T22] ( 2, 4 ) int -> rsi "field V26._length (fldOffset=0x8)" P-INDEP +; V69 tmp65 [V69,T19] ( 2, 4 ) byref -> rcx "field V29._reference (fldOffset=0x0)" P-INDEP +;* V70 tmp66 [V70,T30] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP +; V71 tmp67 [V71,T08] ( 3, 8 ) ref -> rdx "field V32._bits (fldOffset=0x0)" P-INDEP +; V72 tmp68 [V72,T10] ( 3, 8 ) int -> rcx "field V32._sign (fldOffset=0x8)" P-INDEP +; V73 tmp69 [V73,T26] ( 2, 2 ) byref -> rcx single-def "field V36._reference (fldOffset=0x0)" P-INDEP +; V74 tmp70 [V74,T29] ( 2, 2 ) int -> rax "field V36._length (fldOffset=0x8)" P-INDEP +; V75 tmp71 [V75,T35] ( 2, 0 ) ref -> r15 single-def "argument with side effect" +; V76 tmp72 [V76,T36] ( 2, 0 ) ref -> rdx single-def "argument with side effect" +; V77 tmp73 [V77,T11] ( 3, 6 ) ref -> rdi single-def "BlockOp address local" +; V78 tmp74 [V78,T05] ( 3, 12 ) ref -> rcx "BlockOp address local" +; V79 tmp75 [V79,T37] ( 2, 0 ) ref -> r15 "argument with side effect" +; V80 tmp76 [V80,T38] ( 2, 0 ) ref -> rdx "argument with side effect" +;* V81 cse0 [V81,T31] ( 0, 0 ) byref -> zero-ref "CSE #03: moderate" +; V82 cse1 [V82,T15] ( 4, 4 ) int -> rax "CSE #05: moderate" +; V83 rat0 [V83,T00] ( 7, 25 ) long -> r12 "Widened IV V03" ; -; Lcl frame size = 72 +; Lcl frame size = 40 G_M45937_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - sub rsp, 72 - lea rbp, [rsp+0x70] + sub rsp, 40 + lea rbp, [rsp+0x50] xor eax, eax - mov qword ptr [rbp-0x68], rax + mov qword ptr [rbp-0x48], rax vxorps xmm8, xmm8, xmm8 - vmovdqu ymmword ptr [rbp-0x60], ymm8 vmovdqa xmmword ptr [rbp-0x40], xmm8 mov qword ptr [rbp-0x30], rax mov rbx, rdi - ;; size=47 bbWeight=1 PerfScore 13.58 + ;; size=42 bbWeight=1 PerfScore 11.58 G_M45937_IG02: mov rdi, bword ptr [rbx] mov edx, dword ptr [rbx+0x08] mov esi, 46 mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int call [rax]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int mov r15d, eax cmp r15d, -1 je SHORT G_M45937_IG04 ;; size=32 bbWeight=1 PerfScore 9.00 G_M45937_IG03: test r15d, r15d - je G_M45937_IG19 + je G_M45937_IG18 mov edi, dword ptr [rbx+0x08] dec edi cmp r15d, edi jne SHORT G_M45937_IG05 - jmp G_M45937_IG19 + jmp G_M45937_IG18 ;; size=24 bbWeight=0.50 PerfScore 3.38 G_M45937_IG04: mov r15d, dword ptr [rbx+0x08] ;; size=4 bbWeight=0.50 PerfScore 1.00 G_M45937_IG05: mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 - je G_M45937_IG20 + je G_M45937_IG19 ;; size=19 bbWeight=1 PerfScore 4.25 G_M45937_IG06: mov rdi, 0xD1FFAB1E ; box for System.Numerics.BigInteger:s_bnZeroInt mov rdi, gword ptr [rdi] mov r14, gword ptr [rdi+0x08] mov r13d, dword ptr [rdi+0x10] xor r12d, r12d test r15d, r15d - jle G_M45937_IG17 + jle G_M45937_IG16 ;; size=33 bbWeight=1 PerfScore 7.75 G_M45937_IG07: test r12d, r12d jle SHORT G_M45937_IG09 ;; size=5 bbWeight=4 PerfScore 5.00 G_M45937_IG08: mov gword ptr [rbp-0x38], r14 mov dword ptr [rbp-0x30], r13d lea rdi, [rbp-0x38] xor esi, esi mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:Equals(long):ubyte:this call [rax]System.Numerics.BigInteger:Equals(long):ubyte:this test eax, eax - jne G_M45937_IG22 + jne G_M45937_IG21 ;; size=34 bbWeight=2 PerfScore 14.50 G_M45937_IG09: - vxorps xmm0, xmm0, xmm0 - vmovdqu xmmword ptr [rbp-0x48], xmm0 - lea rdi, [rbp-0x48] - mov esi, 10 - mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:.ctor(int):this - call [rax]System.Numerics.BigInteger:.ctor(int):this - mov rdi, gword ptr [rbp-0x48] - mov r9d, dword ptr [rbp-0x40] test r14, r14 jne SHORT G_M45937_IG11 - ;; size=43 bbWeight=4 PerfScore 34.33 + ;; size=5 bbWeight=4 PerfScore 5.00 G_M45937_IG10: - test rdi, rdi - jne SHORT G_M45937_IG12 vxorps xmm0, xmm0, xmm0 - vmovdqu xmmword ptr [rbp-0x58], xmm0 + vmovdqu xmmword ptr [rbp-0x48], xmm0 movsxd rsi, r13d - movsxd rdi, r9d - imul rsi, rdi - lea rdi, [rbp-0x58] + lea rsi, [rsi+4*rsi] + add rsi, rsi + lea rdi, [rbp-0x48] mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:.ctor(long):this call [rax]System.Numerics.BigInteger:.ctor(long):this - mov r14, gword ptr [rbp-0x58] - mov r13d, dword ptr [rbp-0x50] - jmp SHORT G_M45937_IG16 - ;; size=50 bbWeight=2 PerfScore 25.67 + mov r14, gword ptr [rbp-0x48] + mov r13d, dword ptr [rbp-0x40] + jmp SHORT G_M45937_IG12 + ;; size=45 bbWeight=2 PerfScore 20.17 G_M45937_IG11: - lea rsi, bword ptr [r14+0x10] - mov ecx, dword ptr [r14+0x08] - jmp SHORT G_M45937_IG13 - ;; size=10 bbWeight=2 PerfScore 9.00 -G_M45937_IG12: - xor rsi, rsi - xor ecx, ecx - ;; size=4 bbWeight=2 PerfScore 1.00 -G_M45937_IG13: - test rdi, rdi - je SHORT G_M45937_IG14 - lea r8, bword ptr [rdi+0x10] - mov edx, dword ptr [rdi+0x08] - jmp SHORT G_M45937_IG15 - ;; size=14 bbWeight=2 PerfScore 11.50 -G_M45937_IG14: - xor r8, r8 - xor edx, edx - ;; size=5 bbWeight=2 PerfScore 1.00 -G_M45937_IG15: - mov rdi, rsi - mov esi, ecx - mov rcx, r8 - mov r8d, edx + lea rdi, bword ptr [r14+0x10] + mov esi, dword ptr [r14+0x08] + xor rcx, rcx + xor r8d, r8d mov edx, r13d + mov r9d, 10 mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:Multiply(System.ReadOnlySpan`1[uint],int,System.ReadOnlySpan`1[uint],int):System.Numerics.BigInteger call [rax]System.Numerics.BigInteger:Multiply(System.ReadOnlySpan`1[uint],int,System.ReadOnlySpan`1[uint],int):System.Numerics.BigInteger mov r14, rax mov r13d, edx - ;; size=32 bbWeight=2 PerfScore 10.00 -G_M45937_IG16: + ;; size=40 bbWeight=2 PerfScore 14.50 +G_M45937_IG12: cmp r12d, dword ptr [rbx+0x08] - jae G_M45937_IG23 + jae G_M45937_IG22 mov rdi, bword ptr [rbx] movzx rdi, word ptr [rdi+2*r12] mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:AtoI(ushort):int call [rax]System.Formats.Asn1.AsnWriter:AtoI(ushort):int - mov esi, eax - vxorps xmm0, xmm0, xmm0 - vmovdqu xmmword ptr [rbp-0x68], xmm0 - lea rdi, [rbp-0x68] - mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:.ctor(int):this - call [rax]System.Numerics.BigInteger:.ctor(int):this + mov ecx, eax + cmp ecx, 0xD1FFAB1E + je SHORT G_M45937_IG14 + ;; size=40 bbWeight=4 PerfScore 51.00 +G_M45937_IG13: + xor rdx, rdx + jmp SHORT G_M45937_IG15 + ;; size=4 bbWeight=2 PerfScore 4.50 +G_M45937_IG14: + mov rdx, 0xD1FFAB1E ; box for System.Numerics.BigInteger:s_bnMinInt + mov rcx, gword ptr [rdx] + mov rdx, gword ptr [rcx+0x08] + mov ecx, dword ptr [rcx+0x10] + ;; size=20 bbWeight=2 PerfScore 12.50 +G_M45937_IG15: mov rdi, r14 mov esi, r13d - mov rdx, gword ptr [rbp-0x68] - mov ecx, dword ptr [rbp-0x60] mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:op_Addition(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger call [rax]System.Numerics.BigInteger:op_Addition(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger mov r14, rax mov r13d, edx inc r12d cmp r12d, r15d jl G_M45937_IG07 - ;; size=100 bbWeight=4 PerfScore 97.33 -G_M45937_IG17: + ;; size=36 bbWeight=4 PerfScore 23.00 +G_M45937_IG16: mov eax, dword ptr [rbx+0x08] mov edx, eax inc r15d cmp edx, r15d cmovg edx, r15d cmp edx, eax - ja G_M45937_IG21 + ja G_M45937_IG20 mov rcx, bword ptr [rbx] mov edi, edx lea rcx, bword ptr [rcx+2*rdi] sub eax, edx mov bword ptr [rbx], rcx mov dword ptr [rbx+0x08], eax mov rax, r14 mov rdx, r13 ;; size=46 bbWeight=1 PerfScore 9.75 -G_M45937_IG18: - add rsp, 72 +G_M45937_IG17: + add rsp, 40 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 -G_M45937_IG19: +G_M45937_IG18: mov rdi, 0xD1FFAB1E ; System.ArgumentException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_Argument_InvalidOidValue():System.String call [rax]System.SR:get_Argument_InvalidOidValue():System.String mov r15, rax mov edi, 0xC60 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdx, rax mov rsi, r15 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this call [rax]System.ArgumentException:.ctor(System.String,System.String):this mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=83 bbWeight=0 PerfScore 0.00 -G_M45937_IG20: +G_M45937_IG19: mov rdi, 0xD1FFAB1E ; System.Numerics.BigInteger call CORINFO_HELP_GET_GCSTATIC_BASE jmp G_M45937_IG06 ;; size=20 bbWeight=0 PerfScore 0.00 -G_M45937_IG21: +G_M45937_IG20: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M45937_IG22: +G_M45937_IG21: mov rdi, 0xD1FFAB1E ; System.ArgumentException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_Argument_InvalidOidValue():System.String call [rax]System.SR:get_Argument_InvalidOidValue():System.String mov r15, rax mov edi, 0xC60 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdx, rax mov rsi, r15 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this call [rax]System.ArgumentException:.ctor(System.String,System.String):this mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=83 bbWeight=0 PerfScore 0.00 -G_M45937_IG23: +G_M45937_IG22: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 722, prolog size 44, PerfScore 262.29, instruction count 183, allocated bytes for code 722 (MethodHash=1b0c4c8e) for method System.Formats.Asn1.AsnWriter:ParseSubIdentifier(byref):System.Numerics.BigInteger (FullOpts) +; Total bytes of code 649, prolog size 39, PerfScore 201.13, instruction count 162, allocated bytes for code 649 (MethodHash=1b0c4c8e) for method System.Formats.Asn1.AsnWriter:ParseSubIdentifier(byref):System.Numerics.BigInteger (FullOpts) ; ============================================================ ```
-55 (-45.08 % of base) - System.Reflection.Metadata.TypeNameParser:.ctor(System.ReadOnlySpan`1[ushort],ubyte,System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):this ```diff ; Assembly listing for method System.Reflection.Metadata.TypeNameParser:.ctor(System.ReadOnlySpan`1[ushort],ubyte,System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T00] ( 7, 7 ) byref -> rbx this single-def +; V00 this [V00,T00] ( 7, 7 ) byref -> rdi this single-def ;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def ; V02 arg2 [V02,T02] ( 3, 3 ) ubyte -> rcx single-def -; V03 arg3 [V03,T01] ( 4, 4 ) struct ( 8) [rbp-0x18] do-not-enreg[SF] single-def -; V04 loc0 [V04,T07] ( 2, 1.50) struct ( 8) [rbp-0x20] do-not-enreg[SF] ld-addr-op +; V03 arg3 [V03,T01] ( 4, 4 ) struct ( 8) [rbp-0x08] do-not-enreg[SF] single-def +; V04 loc0 [V04,T07] ( 2, 1.50) struct ( 8) [rbp-0x10] do-not-enreg[SF] ld-addr-op ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref -;* V07 tmp2 [V07 ] ( 0, 0 ) byref -> zero-ref single-def -; V08 tmp3 [V08,T05] ( 3, 2 ) struct ( 8) r15 -; V09 tmp4 [V09,T03] ( 2, 2 ) byref -> rsi single-def "field V01._reference (fldOffset=0x0)" P-INDEP -; V10 tmp5 [V10,T04] ( 2, 2 ) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP -; V11 tmp6 [V11,T06] ( 2, 2 ) ubyte -> rdi "V04.[000..001)" +;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref single-def +;* V07 tmp2 [V07 ] ( 0, 0 ) byref -> zero-ref +; V08 tmp3 [V08,T05] ( 3, 2 ) struct ( 8) rax +;* V09 tmp4 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "folding static readonly field empty struct" +; V10 tmp5 [V10,T03] ( 2, 2 ) byref -> rsi single-def "field V01._reference (fldOffset=0x0)" P-INDEP +; V11 tmp6 [V11,T04] ( 2, 2 ) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP +; V12 tmp7 [V12,T06] ( 2, 2 ) ubyte -> rax "V04.[000..001)" ; ; Lcl frame size = 16 G_M43736_IG01: push rbp - push r15 - push rbx sub rsp, 16 - lea rbp, [rsp+0x20] - mov dword ptr [rbp-0x18], r8d - mov rbx, rdi - ;; size=20 bbWeight=1 PerfScore 5.00 + lea rbp, [rsp+0x10] + mov dword ptr [rbp-0x08], r8d + ;; size=14 bbWeight=1 PerfScore 2.75 G_M43736_IG02: - xor edi, edi - mov qword ptr [rbx], rdi - mov qword ptr [rbx+0x08], rdi - mov qword ptr [rbx+0x10], rdi - mov bword ptr [rbx+0x08], rsi - mov dword ptr [rbx+0x10], edx - mov byte ptr [rbx], cl - movzx rdi, byte ptr [rbp-0x18] - movzx rax, byte ptr [rbp-0x17] - mov byte ptr [rbp-0x1F], al - test edi, edi + xor eax, eax + mov qword ptr [rdi], rax + mov qword ptr [rdi+0x08], rax + mov qword ptr [rdi+0x10], rax + mov bword ptr [rdi+0x08], rsi + mov dword ptr [rdi+0x10], edx + mov byte ptr [rdi], cl + movzx rax, byte ptr [rbp-0x08] + movzx rcx, byte ptr [rbp-0x07] + mov byte ptr [rbp-0x0F], cl + test eax, eax je SHORT G_M43736_IG04 - ;; size=38 bbWeight=1 PerfScore 10.50 + ;; size=37 bbWeight=1 PerfScore 10.50 G_M43736_IG03: - mov r15b, byte ptr [rbp-0x1F] - jmp SHORT G_M43736_IG06 - ;; size=6 bbWeight=0.50 PerfScore 1.50 + mov al, byte ptr [rbp-0x0F] + jmp SHORT G_M43736_IG05 + ;; size=5 bbWeight=0.50 PerfScore 1.50 G_M43736_IG04: - mov rdi, 0xD1FFAB1E ; global ptr - test byte ptr [rdi], 1 - je SHORT G_M43736_IG08 - ;; size=15 bbWeight=0.50 PerfScore 2.12 + xor eax, eax + ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M43736_IG05: - mov rax, 0xD1FFAB1E ; data for System.Reflection.Metadata.TypeNameParser:s_defaults - mov r15b, byte ptr [rax] - ;; size=13 bbWeight=0.50 PerfScore 1.12 + mov byte ptr [rdi+0x01], al + ;; size=3 bbWeight=1 PerfScore 1.00 G_M43736_IG06: - mov byte ptr [rbx+0x01], r15b - ;; size=4 bbWeight=1 PerfScore 1.00 -G_M43736_IG07: add rsp, 16 - pop rbx - pop r15 pop rbp ret - ;; size=9 bbWeight=1 PerfScore 2.75 -G_M43736_IG08: - mov rdi, 0xD1FFAB1E ; System.Reflection.Metadata.TypeNameParser - call CORINFO_HELP_GET_GCSTATIC_BASE - jmp SHORT G_M43736_IG05 - ;; size=17 bbWeight=0 PerfScore 0.00 + ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 122, prolog size 13, PerfScore 24.00, instruction count 35, allocated bytes for code 122 (MethodHash=fc395527) for method System.Reflection.Metadata.TypeNameParser:.ctor(System.ReadOnlySpan`1[ushort],ubyte,System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):this (FullOpts) +; Total bytes of code 67, prolog size 10, PerfScore 17.62, instruction count 23, allocated bytes for code 67 (MethodHash=fc395527) for method System.Reflection.Metadata.TypeNameParser:.ctor(System.ReadOnlySpan`1[ushort],ubyte,System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):this (FullOpts) ; ============================================================ ```
-35 (-6.39 % of base) - System.Formats.Asn1.AsnWriter:EncodeSubIdentifier(System.Span`1[ubyte],byref):int ```diff ; Assembly listing for method System.Formats.Asn1.AsnWriter:EncodeSubIdentifier(System.Span`1[ubyte],byref):int (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 22 single block inlinees; 11 inlinees without PGO data +; 0 inlinees with PGO data; 22 single block inlinees; 12 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ; V01 arg1 [V01,T04] ( 7, 12 ) byref -> rbx single-def ;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret -; V03 loc1 [V03,T26] ( 5, 2.50) int -> rbx +; V03 loc1 [V03,T28] ( 5, 2.50) int -> rbx ; V04 loc2 [V04,T06] ( 4, 12 ) ubyte -> [rbp-0x2C] ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V06 tmp1 [V06 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "Return value temp for multireg return" ;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" ;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" -; V11 tmp6 [V11 ] ( 4, 32 ) struct (16) [rbp-0x40] do-not-enreg[XSA] multireg-arg must-init addr-exposed ld-addr-op "NewObj constructor temp" +;* V11 tmp6 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V12 tmp7 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V13 tmp8 [V13,T25] ( 2, 4 ) ubyte -> r8 "Inline return value spill temp" ;* V14 tmp9 [V14 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V15 tmp10 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V17 tmp12 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V19 tmp14 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ; V21 tmp16 [V21,T23] ( 3, 6 ) ubyte -> r8 "Inline return value spill temp" ;* V22 tmp17 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V23 tmp18 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V24 tmp19 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V26 tmp21 [V26 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V27 tmp22 [V27 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V28 tmp23 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V29 tmp24 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V30 tmp25 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V31 tmp26 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V32 tmp27 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V33 tmp28 [V33,T15] ( 2, 8 ) ubyte -> r8 "Inline return value spill temp" ;* V34 tmp29 [V34 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V35 tmp30 [V35 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V36 tmp31 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V37 tmp32 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V38 tmp33 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V39 tmp34 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V40 tmp35 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ; V41 tmp36 [V41,T12] ( 3, 8 ) ubyte -> r8 "Inline return value spill temp" ;* V42 tmp37 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V44 tmp39 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V45 tmp40 [V45 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V46 tmp41 [V46 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V47 tmp42 [V47 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V48 tmp43 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V49 tmp44 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V50 tmp45 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V51 tmp46 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V52 tmp47 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V53 tmp48 [V53 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V54 tmp49 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V55 tmp50 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V56 tmp51 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V57 tmp52 [V57 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V58 tmp53 [V58,T09] ( 4, 6 ) byref -> r15 single-def "field V00._reference (fldOffset=0x0)" P-INDEP ; V59 tmp54 [V59,T10] ( 4, 6 ) int -> r14 single-def "field V00._length (fldOffset=0x8)" P-INDEP ; V60 tmp55 [V60,T00] ( 10, 26.50) ref -> r13 single-def "field V02._bits (fldOffset=0x0)" P-INDEP ; V61 tmp56 [V61,T02] ( 6, 20.50) int -> r12 "field V02._sign (fldOffset=0x8)" P-INDEP ;* V62 tmp57 [V62 ] ( 0, 0 ) ref -> zero-ref "field V06._bits (fldOffset=0x0)" P-INDEP ;* V63 tmp58 [V63 ] ( 0, 0 ) int -> zero-ref "field V06._sign (fldOffset=0x8)" P-INDEP ; V64 tmp59 [V64,T14] ( 2, 8 ) ref -> rdi "field V07._bits (fldOffset=0x0)" P-INDEP ; V65 tmp60 [V65,T16] ( 2, 8 ) int -> rsi "field V07._sign (fldOffset=0x8)" P-INDEP ;* V66 tmp61 [V66 ] ( 0, 0 ) ref -> zero-ref "field V08._bits (fldOffset=0x0)" P-DEP ;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref "field V08._sign (fldOffset=0x8)" P-DEP ; V68 tmp63 [V68,T05] ( 4, 12 ) ref -> rdi "field V09._bits (fldOffset=0x0)" P-INDEP ; V69 tmp64 [V69,T17] ( 2, 8 ) int -> rdx "field V09._sign (fldOffset=0x8)" P-INDEP ;* V70 tmp65 [V70 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP ;* V71 tmp66 [V71 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP -; V72 tmp67 [V72 ] ( 3, 20 ) ref -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V11._bits (fldOffset=0x0)" P-DEP -; V73 tmp68 [V73 ] ( 3, 20 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V11._sign (fldOffset=0x8)" P-DEP +;* V72 tmp67 [V72,T26] ( 0, 0 ) ref -> zero-ref "field V11._bits (fldOffset=0x0)" P-INDEP +;* V73 tmp68 [V73,T27] ( 0, 0 ) int -> zero-ref "field V11._sign (fldOffset=0x8)" P-INDEP ; V74 tmp69 [V74,T07] ( 4, 10 ) ref -> rdx "field V12._bits (fldOffset=0x0)" P-INDEP ; V75 tmp70 [V75,T18] ( 2, 8 ) int -> rdi "field V12._sign (fldOffset=0x8)" P-INDEP ;* V76 tmp71 [V76 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP ;* V77 tmp72 [V77 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP ;* V78 tmp73 [V78 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP ;* V79 tmp74 [V79 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP ; V80 tmp75 [V80,T19] ( 3, 6 ) byref -> rdi "field V17._reference (fldOffset=0x0)" P-INDEP ; V81 tmp76 [V81,T24] ( 3, 6 ) int -> rdx "field V17._length (fldOffset=0x8)" P-INDEP ; V82 tmp77 [V82,T20] ( 3, 6 ) byref -> rsi "field V19._reference (fldOffset=0x0)" P-INDEP ; V83 tmp78 [V83,T11] ( 4, 8 ) int -> rcx "field V19._length (fldOffset=0x8)" P-INDEP ;* V84 tmp79 [V84 ] ( 0, 0 ) byref -> zero-ref "field V22._reference (fldOffset=0x0)" P-INDEP ;* V85 tmp80 [V85 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP ;* V86 tmp81 [V86 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP ;* V87 tmp82 [V87 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP ;* V88 tmp83 [V88 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP ;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP ;* V90 tmp85 [V90 ] ( 0, 0 ) byref -> zero-ref "field V29._reference (fldOffset=0x0)" P-INDEP ;* V91 tmp86 [V91 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP ;* V92 tmp87 [V92 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP ;* V93 tmp88 [V93 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP ;* V94 tmp89 [V94 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP ;* V95 tmp90 [V95 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP ;* V96 tmp91 [V96 ] ( 0, 0 ) ref -> zero-ref "field V32._bits (fldOffset=0x0)" P-INDEP ;* V97 tmp92 [V97 ] ( 0, 0 ) int -> zero-ref "field V32._sign (fldOffset=0x8)" P-INDEP ;* V98 tmp93 [V98 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP ;* V99 tmp94 [V99 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP ;* V100 tmp95 [V100 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP ;* V101 tmp96 [V101 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP ; V102 tmp97 [V102,T21] ( 3, 6 ) byref -> rsi "field V37._reference (fldOffset=0x0)" P-INDEP ; V103 tmp98 [V103,T13] ( 3, 8 ) int -> rdx "field V37._length (fldOffset=0x8)" P-INDEP ; V104 tmp99 [V104,T22] ( 3, 6 ) byref -> rcx "field V39._reference (fldOffset=0x0)" P-INDEP ; V105 tmp100 [V105,T08] ( 4, 10 ) int -> rdi "field V39._length (fldOffset=0x8)" P-INDEP ;* V106 tmp101 [V106 ] ( 0, 0 ) byref -> zero-ref "field V42._reference (fldOffset=0x0)" P-INDEP ;* V107 tmp102 [V107 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP ;* V108 tmp103 [V108 ] ( 0, 0 ) byref -> zero-ref "field V44._reference (fldOffset=0x0)" P-INDEP ;* V109 tmp104 [V109 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP ;* V110 tmp105 [V110 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP ;* V111 tmp106 [V111 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP ;* V112 tmp107 [V112 ] ( 0, 0 ) byref -> zero-ref "field V49._reference (fldOffset=0x0)" P-INDEP ;* V113 tmp108 [V113 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP ;* V114 tmp109 [V114 ] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP ;* V115 tmp110 [V115 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP ;* V116 tmp111 [V116 ] ( 0, 0 ) byref -> zero-ref "field V51._reference (fldOffset=0x0)" P-INDEP ;* V117 tmp112 [V117 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP ;* V118 tmp113 [V118 ] ( 0, 0 ) byref -> zero-ref single-def "field V52._reference (fldOffset=0x0)" P-INDEP ;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP ;* V120 tmp115 [V120 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP ;* V121 tmp116 [V121 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP ;* V122 tmp117 [V122 ] ( 0, 0 ) byref -> zero-ref single-def "field V55._reference (fldOffset=0x0)" P-INDEP ;* V123 tmp118 [V123 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP ; V124 tmp119 [V124,T01] ( 3, 24 ) ref -> rdx "BlockOp address local" -; V125 rat0 [V125,T03] ( 6, 17 ) long -> [rbp-0x48] "Widened IV V03" +; V125 rat0 [V125,T03] ( 6, 17 ) long -> [rbp-0x38] "Widened IV V03" ; -; Lcl frame size = 40 +; Lcl frame size = 24 G_M53445_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - sub rsp, 40 - lea rbp, [rsp+0x50] - xor eax, eax - mov qword ptr [rbp-0x40], rax + sub rsp, 24 + lea rbp, [rsp+0x40] mov r15, rdi mov r14d, esi mov rbx, rdx - ;; size=34 bbWeight=1 PerfScore 8.75 + ;; size=28 bbWeight=1 PerfScore 7.50 G_M53445_IG02: cmp dword ptr [rbx+0x08], 0 je G_M53445_IG27 ;; size=10 bbWeight=1 PerfScore 4.00 G_M53445_IG03: mov r13, gword ptr [rbx] mov r12d, dword ptr [rbx+0x08] xor eax, eax - mov qword ptr [rbp-0x48], rax + mov qword ptr [rbp-0x38], rax ;; size=13 bbWeight=0.50 PerfScore 2.62 G_M53445_IG04: - vxorps xmm0, xmm0, xmm0 - vmovdqu xmmword ptr [rbp-0x40], xmm0 - lea rdi, [rbp-0x40] - mov esi, 127 - mov rcx, 0xD1FFAB1E ; code for System.Numerics.BigInteger:.ctor(int):this - call [rcx]System.Numerics.BigInteger:.ctor(int):this mov rdi, r13 mov esi, r12d - mov rdx, gword ptr [rbp-0x40] - mov ecx, dword ptr [rbp-0x38] - mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:op_BitwiseAnd(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger - call [rax]System.Numerics.BigInteger:op_BitwiseAnd(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger + xor rdx, rdx + mov ecx, 127 + mov r8, 0xD1FFAB1E ; code for System.Numerics.BigInteger:op_BitwiseAnd(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger + call [r8]System.Numerics.BigInteger:op_BitwiseAnd(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger mov rdi, rax mov esi, edx mov rax, 0xD1FFAB1E ; code for System.Numerics.BigInteger:op_Explicit(System.Numerics.BigInteger):int call [rax]System.Numerics.BigInteger:op_Explicit(System.Numerics.BigInteger):int cmp eax, 255 ja G_M53445_IG32 mov dword ptr [rbp-0x2C], eax mov rdx, gword ptr [rbx] mov edi, dword ptr [rbx+0x08] cmp edi, r12d jne SHORT G_M53445_IG12 - ;; size=97 bbWeight=4 PerfScore 89.33 + ;; size=68 bbWeight=4 PerfScore 62.00 G_M53445_IG05: test rdx, rdx je SHORT G_M53445_IG06 lea rdi, bword ptr [rdx+0x10] mov edx, dword ptr [rdx+0x08] jmp SHORT G_M53445_IG07 ;; size=14 bbWeight=2 PerfScore 11.50 G_M53445_IG06: xor rdi, rdi xor edx, edx ;; size=4 bbWeight=2 PerfScore 1.00 G_M53445_IG07: test r13, r13 je SHORT G_M53445_IG08 lea rsi, bword ptr [r13+0x10] mov ecx, dword ptr [r13+0x08] jmp SHORT G_M53445_IG09 ;; size=15 bbWeight=2 PerfScore 11.50 G_M53445_IG08: xor rsi, rsi xor ecx, ecx ;; size=4 bbWeight=2 PerfScore 1.00 G_M53445_IG09: cmp edx, ecx je SHORT G_M53445_IG10 xor r8d, r8d jmp SHORT G_M53445_IG11 ;; size=9 bbWeight=2 PerfScore 7.00 G_M53445_IG10: mov edx, ecx shl rdx, 2 mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte call [rcx]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte mov r8d, eax ;; size=21 bbWeight=2 PerfScore 8.50 G_M53445_IG11: test r8d, r8d jne SHORT G_M53445_IG13 ;; size=5 bbWeight=2 PerfScore 2.50 G_M53445_IG12: mov eax, dword ptr [rbp-0x2C] or eax, 128 movzx rax, al mov dword ptr [rbp-0x2C], eax ;; size=14 bbWeight=2 PerfScore 5.00 G_M53445_IG13: mov rdi, r13 mov esi, r12d mov edx, 7 mov rcx, 0xD1FFAB1E ; code for System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger call [rcx]System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger mov r13, rax mov r12d, edx - mov rdi, qword ptr [rbp-0x48] + mov rdi, qword ptr [rbp-0x38] cmp edi, r14d jae G_M53445_IG31 mov eax, dword ptr [rbp-0x2C] mov byte ptr [r15+rdi], al inc edi - mov qword ptr [rbp-0x48], rdi + mov qword ptr [rbp-0x38], rdi mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 je G_M53445_IG29 ;; size=74 bbWeight=4 PerfScore 57.00 G_M53445_IG14: mov rdx, 0xD1FFAB1E ; box for System.Numerics.BigInteger:s_bnZeroInt mov rdx, gword ptr [rdx] mov rdi, gword ptr [rdx+0x08] mov edx, dword ptr [rdx+0x10] cmp r12d, edx jne G_M53445_IG04 test r13, r13 jne SHORT G_M53445_IG16 ;; size=34 bbWeight=4 PerfScore 35.00 G_M53445_IG15: xor rsi, rsi xor edx, edx jmp SHORT G_M53445_IG17 ;; size=6 bbWeight=2 PerfScore 5.00 G_M53445_IG16: lea rsi, bword ptr [r13+0x10] mov edx, dword ptr [r13+0x08] ;; size=8 bbWeight=2 PerfScore 5.00 G_M53445_IG17: test rdi, rdi je SHORT G_M53445_IG19 ;; size=5 bbWeight=4 PerfScore 5.00 G_M53445_IG18: lea rcx, bword ptr [rdi+0x10] mov edi, dword ptr [rdi+0x08] jmp SHORT G_M53445_IG20 ;; size=9 bbWeight=2 PerfScore 9.00 G_M53445_IG19: xor rcx, rcx xor edi, edi ;; size=4 bbWeight=2 PerfScore 1.00 G_M53445_IG20: cmp edx, edi je SHORT G_M53445_IG22 ;; size=4 bbWeight=4 PerfScore 5.00 G_M53445_IG21: xor r8d, r8d jmp SHORT G_M53445_IG23 ;; size=5 bbWeight=2 PerfScore 4.50 G_M53445_IG22: mov edx, edi shl rdx, 2 mov rdi, rsi mov rsi, rcx mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte call [rcx]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte mov r8d, eax ;; size=27 bbWeight=2 PerfScore 9.50 G_M53445_IG23: test r8d, r8d je G_M53445_IG04 ;; size=9 bbWeight=4 PerfScore 5.00 G_M53445_IG24: - mov rbx, qword ptr [rbp-0x48] + mov rbx, qword ptr [rbp-0x38] cmp ebx, r14d ja SHORT G_M53445_IG30 cmp ebx, 1 jle SHORT G_M53445_IG25 movsxd rsi, ebx mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Reverse(byref,ulong) call [rax]System.SpanHelpers:Reverse(byref,ulong) ;; size=32 bbWeight=0.50 PerfScore 3.62 G_M53445_IG25: mov eax, ebx ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M53445_IG26: - add rsp, 40 + add rsp, 24 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M53445_IG27: test r14d, r14d je SHORT G_M53445_IG31 mov byte ptr [r15], 0 mov eax, 1 ;; size=14 bbWeight=0.50 PerfScore 1.25 G_M53445_IG28: - add rsp, 40 + add rsp, 24 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M53445_IG29: mov rdi, 0xD1FFAB1E ; System.Numerics.BigInteger call CORINFO_HELP_GET_GCSTATIC_BASE jmp G_M53445_IG14 ;; size=20 bbWeight=0 PerfScore 0.00 G_M53445_IG30: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M53445_IG31: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 G_M53445_IG32: call CORINFO_HELP_OVERFLOW int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 548, prolog size 25, PerfScore 302.96, instruction count 161, allocated bytes for code 548 (MethodHash=6b552f3a) for method System.Formats.Asn1.AsnWriter:EncodeSubIdentifier(System.Span`1[ubyte],byref):int (FullOpts) +; Total bytes of code 513, prolog size 19, PerfScore 274.38, instruction count 153, allocated bytes for code 513 (MethodHash=6b552f3a) for method System.Formats.Asn1.AsnWriter:EncodeSubIdentifier(System.Span`1[ubyte],byref):int (FullOpts) ; ============================================================ ```

Note: some changes were skipped as they were too large to fit into a comment.

Larger list of diffs: https://gist.github.com/MihuBot/f346d702d3aeefd1cff64bb23d05701b

MihuBot commented 1 month ago

@MichalPetryka