Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

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

Open
MihuBot opened this issue Oct 27, 2024 · 3 comments
Open

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

MihuBot opened this issue Oct 27, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Oct 27, 2024

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:<EmitTryFindNextPossibleStartingPosition>g__EmitAnchors|157_0(byref):ubyte:this (FullOpts)
        1695 (47.64 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>g__EmitLoop|28(System.Text.RegularExpressions.RegexNode):this (FullOpts)
        1044 (17.89 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryFindNextPossibleStartingPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryFindNextPossibleStartingPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>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+<GetNonFileStreamAsync>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.<RegexGenerator_g>F0441267B09271A6B48EAE6A39F91CAA934DFECA0097D1A96331686EEB70E4A73__CreateConnectionStringQuoteOdbcValueRegex_2:.ctor():this (FullOpts)
         -19 (-16.38 % of base) : System.Data.Odbc.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F0441267B09271A6B48EAE6A39F91CAA934DFECA0097D1A96331686EEB70E4A73__CreateConnectionStringQuoteValueRegex_1:.ctor():this (FullOpts)
         -19 (-16.10 % of base) : System.Data.Common.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F60EFD13DC7CD536D3A020F55BA4BA03EA43EC20F5B4D014977C1BFAB3201AEC6__CreateConnectionStringQuoteOdbcValueRegex_2:.ctor():this (FullOpts)
         -19 (-16.38 % of base) : System.Data.Common.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F60EFD13DC7CD536D3A020F55BA4BA03EA43EC20F5B4D014977C1BFAB3201AEC6__CreateConnectionStringQuoteValueRegex_1:.ctor():this (FullOpts)
         -19 (-16.38 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__EncodeCharRegex_1:.ctor():this (FullOpts)
         -19 (-16.10 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>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]:<GetTokenBucketLimiter>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]:<GetTokenBucketLimiter>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]:<GetTokenBucketLimiter>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]:<GetTokenBucketLimiter>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]:<GetTokenBucketLimiter>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]]:<GetTokenBucketLimiter>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]]:<GetTokenBucketLimiter>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]:<GetTokenBucketLimiter>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]:<GetSlidingWindowLimiter>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]:<GetSlidingWindowLimiter>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]:<GetSlidingWindowLimiter>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]:<GetSlidingWindowLimiter>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]:<GetSlidingWindowLimiter>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]]:<GetSlidingWindowLimiter>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]]:<GetSlidingWindowLimiter>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]:<GetSlidingWindowLimiter>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]:<GetFixedWindowLimiter>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]:<GetFixedWindowLimiter>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]:<GetFixedWindowLimiter>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]:<GetFixedWindowLimiter>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]:<GetFixedWindowLimiter>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]]:<GetFixedWindowLimiter>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]]:<GetFixedWindowLimiter>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]:<GetFixedWindowLimiter>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.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__EnsureArrayIndexRegex_5:.ctor():this (FullOpts)
          -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__P0Regex_6:.ctor():this (FullOpts)
          -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__ParamsReadRegex_11:.ctor():this (FullOpts)
          -7 (-1.32 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__Regex1_3:.ctor():this (FullOpts)
          -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__Regex2_4:.ctor():this (FullOpts)
          -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeNullAnyTypeRegex_7:.ctor():this (FullOpts)
          -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeObjectEmptyRegex_8:.ctor():this (FullOpts)
          -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeObjectNullRegex_9:.ctor():this (FullOpts)
          -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>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:<EmitTryMatchAtCurrentPosition>b__49():this (FullOpts)
          63 (262.50 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>b__53():this (FullOpts)
          63 (262.50 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>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:<EmitTryMatchAtCurrentPosition>b__36():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_1:<EmitTryMatchAtCurrentPosition>b__37():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_3:<EmitTryMatchAtCurrentPosition>b__38():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_4:<EmitTryMatchAtCurrentPosition>b__39():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_5:<EmitTryMatchAtCurrentPosition>b__40():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_6:<EmitTryMatchAtCurrentPosition>b__43():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_6:<EmitTryMatchAtCurrentPosition>b__44():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_7:<EmitTryMatchAtCurrentPosition>b__46():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_7:<EmitTryMatchAtCurrentPosition>b__47():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_7:<EmitTryMatchAtCurrentPosition>b__48():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_8:<EmitTryMatchAtCurrentPosition>b__50():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_8:<EmitTryMatchAtCurrentPosition>b__51():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_8:<EmitTryMatchAtCurrentPosition>b__54():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_8:<EmitTryMatchAtCurrentPosition>b__55():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_8:<EmitTryMatchAtCurrentPosition>b__56():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_9:<EmitTryMatchAtCurrentPosition>b__59():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_9:<EmitTryMatchAtCurrentPosition>b__61():this (FullOpts)
          63 (225.00 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_9:<EmitTryMatchAtCurrentPosition>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.<RegexGenerator_g>F0441267B09271A6B48EAE6A39F91CAA934DFECA0097D1A96331686EEB70E4A73__CreateConnectionStringQuoteValueRegex_1:.ctor():this (FullOpts)
         -19 (-16.38 % of base) : System.Data.Common.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F60EFD13DC7CD536D3A020F55BA4BA03EA43EC20F5B4D014977C1BFAB3201AEC6__CreateConnectionStringQuoteValueRegex_1:.ctor():this (FullOpts)
         -19 (-16.38 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__EncodeCharRegex_1:.ctor():this (FullOpts)
         -19 (-16.10 % of base) : System.Data.Odbc.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F0441267B09271A6B48EAE6A39F91CAA934DFECA0097D1A96331686EEB70E4A73__CreateConnectionStringQuoteOdbcValueRegex_2:.ctor():this (FullOpts)
         -19 (-16.10 % of base) : System.Data.Common.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F60EFD13DC7CD536D3A020F55BA4BA03EA43EC20F5B4D014977C1BFAB3201AEC6__CreateConnectionStringQuoteOdbcValueRegex_2:.ctor():this (FullOpts)
         -19 (-16.10 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>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]:<GetTokenBucketLimiter>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]:<GetTokenBucketLimiter>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]:<GetTokenBucketLimiter>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]:<GetTokenBucketLimiter>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]:<GetSlidingWindowLimiter>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]:<GetSlidingWindowLimiter>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]:<GetSlidingWindowLimiter>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]:<GetSlidingWindowLimiter>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]:<GetTokenBucketLimiter>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]:<GetTokenBucketLimiter>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]:<GetSlidingWindowLimiter>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]:<GetSlidingWindowLimiter>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]:<GetFixedWindowLimiter>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]:<GetFixedWindowLimiter>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]:<GetFixedWindowLimiter>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]:<GetFixedWindowLimiter>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]:<GetFixedWindowLimiter>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]:<GetFixedWindowLimiter>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]]:<GetTokenBucketLimiter>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]]:<GetSlidingWindowLimiter>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]]:<GetTokenBucketLimiter>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]]:<GetSlidingWindowLimiter>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]]:<GetFixedWindowLimiter>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]]:<GetFixedWindowLimiter>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.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__ParamsReadRegex_11:.ctor():this (FullOpts)
          -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeNullAnyTypeRegex_7:.ctor():this (FullOpts)
          -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeObjectNullRegex_9:.ctor():this (FullOpts)
          -7 (-2.13 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__UnknownNodeObjectRegex_10:.ctor():this (FullOpts)
          -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__P0Regex_6:.ctor():this (FullOpts)
          -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7DA04599E02F101504CDA1D6A51A3D06C21AB0E7B85A4F83AFA3D2F20CA969D8__Regex2_4:.ctor():this (FullOpts)
          -7 (-1.73 % of base) : System.Private.Xml.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>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.<RegexGenerator_g>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.<RegexGenerator_g>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
Copy link
Owner Author

MihuBot commented Oct 27, 2024

Top method regressions

941 (168.34 % of base) - Internal.Cryptography.PkcsHelpers:EncodeUtcTime(System.DateTime):ubyte[]
 ; 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 <System.DateTime>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Formats.Asn1.AsnWriter>
-;* V02 loc1         [V02,T15] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SA] multireg-arg ld-addr-op <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
-;  V03 loc2         [V03,T09] (  2,  2   )     ref  ->  rax         class-hnd single-def <ubyte[]>
+;* V02 loc1         [V02    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
+;  V03 loc2         [V03,T19] (  2,  2   )     ref  ->  rax         class-hnd single-def <ubyte[]>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.ArgumentException>
 ;# 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" <System.Formats.Asn1.AsnWriter>
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.DateTimeOffset>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct ( 8) zero-ref    multireg-ret "spilled call-like call argument" <System.DateTime>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.DateTimeOffset>
-;  V10 tmp5         [V10,T24] (  4,  0   )     ref  ->  rbx         class-hnd single-def "impSpillSpecialSideEff" <System.ArgumentException>
-;  V11 tmp6         [V11,T25] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
-;  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" <System.ArgumentException>
+;  V11 tmp6         [V11,T52] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
+;  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" <System.DateTimeOffset>
+;* V14 tmp9         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTimeOffset>
 ;* V15 tmp10        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.TimeSpan>
-;  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" <System.TimeSpan>
-;  V20 tmp15        [V20,T02] (  4,  2   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <System.TimeZoneInfo+CachedData>
+;  V20 tmp15        [V20,T04] (  4,  2   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <System.TimeZoneInfo+CachedData>
 ;* V21 tmp16        [V21    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.DateTime>
-;  V22 tmp17        [V22,T10] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
-;  V23 tmp18        [V23,T03] (  4,  2   )     ref  ->  rdi        
-;* V24 tmp19        [V24    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.DateTime>
-;* V25 tmp20        [V25    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.DateTimeOffset>
-;* V26 tmp21        [V26    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
-;* V27 tmp22        [V27    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.TimeSpan>
-;  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" <System.TimeSpan>
-;  V31 tmp26        [V31,T04] (  4,  2   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <System.TimeZoneInfo+CachedData>
-;* V32 tmp27        [V32    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.DateTime>
-;  V33 tmp28        [V33,T11] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
-;  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" <System.TimeZoneInfo>
+;  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" <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
+;  V25 tmp20        [V25    ] (  9,  9   )  struct (16) [rbp-0x38]  do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "Inlining Arg" <System.DateTimeOffset>
+;  V26 tmp21        [V26,T53] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
+;* 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" <System.Formats.Asn1.Asn1Tag>
+;* V29 tmp24        [V29    ] (  0,  0   )     ref  ->  zero-ref   
+;* V30 tmp25        [V30    ] (  0,  0   )  struct ( 8) zero-ref    <System.Formats.Asn1.Asn1Tag>
+;* V31 tmp26        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTimeOffset>
+;* V32 tmp27        [V32    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.DateTime>
+;* V33 tmp28        [V33    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
+;* V34 tmp29        [V34    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTime>
+;* V35 tmp30        [V35    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V36 tmp31        [V36    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
+;* V37 tmp32        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.TimeSpan>
+;  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" <System.TimeSpan>
+;  V41 tmp36        [V41,T06] (  4,  2   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <System.TimeZoneInfo+CachedData>
+;* V42 tmp37        [V42    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.DateTime>
+;  V43 tmp38        [V43,T21] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
+;  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" <System.DateTime>
+;  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" <System.DateTime>
+;* V47 tmp42        [V47    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V48 tmp43        [V48    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
+;* 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" <System.DateTime>
+;* V52 tmp47        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTimeOffset>
+;* V53 tmp48        [V53    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
+;* V54 tmp49        [V54    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.TimeSpan>
+;  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" <System.TimeSpan>
+;  V58 tmp53        [V58,T08] (  4,  2   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <System.TimeZoneInfo+CachedData>
+;* V59 tmp54        [V59    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.DateTime>
+;  V60 tmp55        [V60,T22] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
+;  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" <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
+;  V63 tmp58        [V63    ] (  9,  9   )  struct (16) [rbp-0x58]  do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "Inlining Arg" <System.DateTimeOffset>
+;  V64 tmp59        [V64,T54] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
+;* 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" <System.Formats.Asn1.Asn1Tag>
+;* V67 tmp62        [V67    ] (  0,  0   )     ref  ->  zero-ref   
+;* V68 tmp63        [V68    ] (  0,  0   )  struct ( 8) zero-ref    <System.Formats.Asn1.Asn1Tag>
+;* V69 tmp64        [V69    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTimeOffset>
+;* V70 tmp65        [V70    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.DateTime>
+;* V71 tmp66        [V71    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
+;* V72 tmp67        [V72    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTime>
+;* V73 tmp68        [V73    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V74 tmp69        [V74    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
+;* V75 tmp70        [V75    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.TimeSpan>
+;  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" <System.TimeSpan>
+;  V79 tmp74        [V79,T10] (  4,  2   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <System.TimeZoneInfo+CachedData>
+;* V80 tmp75        [V80    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.DateTime>
+;  V81 tmp76        [V81,T23] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
+;  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" <System.DateTime>
+;  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" <System.DateTime>
+;* V85 tmp80        [V85    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V86 tmp81        [V86    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
+;* 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.<TagValue>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.<TagValue>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.<TagValue>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.<TagValue>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.<TagValue>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.<TagValue>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" <System.Formats.Asn1.Asn1Tag>
+;  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
Copy link
Owner Author

MihuBot commented Oct 27, 2024

Top method improvements

-73 (-10.11 % of base) - System.Formats.Asn1.AsnWriter:ParseSubIdentifier(byref):System.Numerics.BigInteger
 ; 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 <System.Numerics.BigInteger>
-;* 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" <System.ArgumentException>
+;  V05 tmp1         [V05,T33] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Numerics.BigInteger>
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Numerics.BigInteger>
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Numerics.BigInteger>
-;  V09 tmp5         [V09,T28] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentException>
+;  V09 tmp5         [V09,T34] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentException>
 ;* 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" <System.ReadOnlySpan`1[ushort]>
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* 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" <System.ReadOnlySpan`1[ushort]>
 ;  V17 tmp13        [V17    ] (  3, 12   )  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Numerics.BigInteger>
-;  V18 tmp14        [V18    ] (  4, 32   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.BigInteger>
+;* V18 tmp14        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.BigInteger>
 ;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret "Inline return value spill temp" <System.Numerics.BigInteger>
-;* V20 tmp16        [V20    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[uint]>
+;* V20 tmp16        [V20    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[uint]>
 ;* V21 tmp17        [V21    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[uint]>
 ;* V22 tmp18        [V22    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Numerics.BigInteger>
 ;* 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" <System.Numerics.BigInteger>
+;  V24 tmp20        [V24    ] (  4, 16   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.BigInteger>
 ;* V25 tmp21        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <uint[]>
-;* V26 tmp22        [V26    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
+;* V26 tmp22        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
 ;* V27 tmp23        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <uint[]>
 ;* V28 tmp24        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <uint[]>
 ;* V29 tmp25        [V29    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
 ;* V30 tmp26        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <uint[]>
-;  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" <System.Numerics.BigInteger>
-;  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" <System.Numerics.BigInteger>
+;  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" <System.ReadOnlySpan`1[ushort]>
-;  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
 ; 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 <System.ReadOnlySpan`1[ushort]>
 ;  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 <System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]>
-;  V04 loc0         [V04,T07] (  2,  1.50)  struct ( 8) [rbp-0x20]  do-not-enreg[SF] ld-addr-op <System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]>
+;  V03 arg3         [V03,T01] (  4,  4   )  struct ( 8) [rbp-0x08]  do-not-enreg[SF] single-def <System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]>
+;  V04 loc0         [V04,T07] (  2,  1.50)  struct ( 8) [rbp-0x10]  do-not-enreg[SF] ld-addr-op <System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]>
 ;# 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         <System.Reflection.Metadata.TypeNameParseOptions>
-;  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         <System.Reflection.Metadata.TypeNameParseOptions>
+;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "folding static readonly field empty struct" <System.Reflection.Metadata.TypeNameParseOptions>
+;  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
 ; 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 <System.Span`1[ubyte]>
 ;  V01 arg1         [V01,T04] (  7, 12   )   byref  ->  rbx         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret <System.Numerics.BigInteger>
-;  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" <System.Numerics.BigInteger>
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret "Return value temp for multireg return" <System.Numerics.BigInteger>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Numerics.BigInteger>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Numerics.BigInteger>
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  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" <System.Numerics.BigInteger>
+;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Numerics.BigInteger>
 ;* V12 tmp7         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Numerics.BigInteger>
 ;  V13 tmp8         [V13,T25] (  2,  4   )   ubyte  ->   r8         "Inline return value spill temp"
 ;* V14 tmp9         [V14    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[uint]>
 ;* V15 tmp10        [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[uint]>
 ;* V16 tmp11        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <uint[]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
 ;* V18 tmp13        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <uint[]>
 ;* V19 tmp14        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
 ;* V20 tmp15        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <uint[]>
 ;  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" <System.Span`1[uint]>
 ;* 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" <System.ReadOnlySpan`1[uint]>
 ;* 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" <System.Span`1[uint]>
 ;* V29 tmp24        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[uint]>
 ;* V30 tmp25        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[uint]>
 ;* V31 tmp26        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[uint]>
 ;* V32 tmp27        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Numerics.BigInteger>
 ;  V33 tmp28        [V33,T15] (  2,  8   )   ubyte  ->   r8         "Inline return value spill temp"
 ;* V34 tmp29        [V34    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[uint]>
 ;* V35 tmp30        [V35    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[uint]>
 ;* V36 tmp31        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <uint[]>
 ;* V37 tmp32        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
 ;* V38 tmp33        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <uint[]>
 ;* V39 tmp34        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
 ;* V40 tmp35        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <uint[]>
 ;  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" <System.Span`1[uint]>
 ;* 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" <System.ReadOnlySpan`1[uint]>
 ;* 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" <System.Span`1[uint]>
 ;* V49 tmp44        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[uint]>
 ;* V50 tmp45        [V50    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[uint]>
 ;* V51 tmp46        [V51    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[uint]>
 ;* V52 tmp47        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V53 tmp48        [V53    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V54 tmp49        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V55 tmp50        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* 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
Copy link
Owner Author

MihuBot commented Oct 27, 2024

@MichalPetryka

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant