MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff X64] [EgorBo] JIT: Extend jump tables #666

Open MihuBot opened 1 month ago

MihuBot commented 1 month ago

Job completed in 20 minutes 2 seconds.

Diffs

Diffs ``` Found 300 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 39332096 Total bytes of diff: 39329308 Total bytes of delta: -2788 (-0.01 % of base) Total relative delta: -7.35 diff is an improvement. relative diff is an improvement. Top file regressions (bytes): 42 : System.Private.Uri.dasm (0.05 % of base) 29 : System.Net.Primitives.dasm (0.03 % of base) 26 : System.Net.Quic.dasm (0.02 % of base) 26 : System.Net.Security.dasm (0.01 % of base) 24 : Microsoft.VisualBasic.Core.dasm (0.00 % of base) 19 : System.Text.Json.dasm (0.00 % of base) 8 : System.ComponentModel.TypeConverter.dasm (0.00 % of base) 2 : System.Console.dasm (0.00 % of base) Top file improvements (bytes): -645 : System.Private.Xml.dasm (-0.02 % of base) -599 : System.Text.RegularExpressions.dasm (-0.08 % of base) -530 : System.Private.CoreLib.dasm (-0.01 % of base) -183 : Microsoft.CSharp.dasm (-0.05 % of base) -150 : System.Data.Common.dasm (-0.01 % of base) -139 : System.Reflection.Metadata.dasm (-0.03 % of base) -125 : System.Security.Cryptography.dasm (-0.01 % of base) -65 : System.Linq.Expressions.dasm (-0.01 % of base) -62 : System.Private.DataContractSerialization.dasm (-0.01 % of base) -48 : System.Data.Odbc.dasm (-0.02 % of base) -40 : System.Net.Requests.dasm (-0.03 % of base) -39 : System.Reflection.MetadataLoadContext.dasm (-0.02 % of base) -35 : System.Formats.Asn1.dasm (-0.04 % of base) -34 : System.Resources.Extensions.dasm (-0.07 % of base) -32 : System.Net.WebHeaderCollection.dasm (-0.22 % of base) -28 : System.Reflection.Emit.dasm (-0.02 % of base) -23 : System.ServiceModel.Syndication.dasm (-0.01 % of base) -19 : System.Net.Http.dasm (-0.00 % of base) -17 : System.Configuration.ConfigurationManager.dasm (-0.00 % of base) -17 : System.Formats.Nrbf.dasm (-0.04 % of base) -17 : System.Web.HttpUtility.dasm (-0.09 % of base) -15 : System.ComponentModel.Primitives.dasm (-0.09 % of base) -14 : ILCompiler.Reflection.ReadyToRun.dasm (-0.01 % of base) -13 : System.Net.HttpListener.dasm (-0.01 % of base) -11 : System.Private.Xml.Linq.dasm (-0.01 % of base) -10 : System.Diagnostics.Process.dasm (-0.01 % of base) -10 : System.Net.Ping.dasm (-0.02 % of base) -9 : System.Reflection.Context.dasm (-0.02 % of base) -8 : System.Net.Mail.dasm (-0.00 % of base) -8 : System.Text.Encoding.CodePages.dasm (-0.01 % of base) -8 : System.Net.Sockets.dasm (-0.00 % of base) -6 : System.Security.Cryptography.Xml.dasm (-0.00 % of base) -5 : System.Formats.Tar.dasm (-0.00 % of base) 41 total files with Code Size differences (33 improved, 8 regressed), 218 unchanged. Top method regressions (bytes): 81 (5.32 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:CollectOverloadCandidates(System.Reflection.MemberInfo[],System.Object[],int,System.String[],System.Type[],ubyte,System.Type,byref,byref,Microsoft.VisualBasic.CompilerServices.Symbols+Container):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] (FullOpts) 43 (0.75 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl+d__532:MoveNext():this (FullOpts) 39 (0.86 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts) 36 (0.81 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte (FullOpts) 28 (0.14 % of base) : System.Data.Common.dasm - System.Data.BinaryNode:EvalBinaryOp(int,System.Data.ExpressionNode,System.Data.ExpressionNode,System.Data.DataRow,int,int[]):System.Object:this (FullOpts) 28 (0.39 % of base) : System.Private.CoreLib.dasm - System.Number:NumberToStringFormat[ubyte](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts) 26 (8.72 % of base) : System.Net.Primitives.dasm - System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts) 26 (8.72 % of base) : System.Private.Uri.dasm - System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts) 26 (8.72 % of base) : System.Net.Quic.dasm - System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts) 26 (8.72 % of base) : System.Net.Security.dasm - System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts) 21 (2.37 % of base) : System.Private.CoreLib.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (FullOpts) 21 (2.37 % of base) : System.Reflection.Metadata.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (FullOpts) 18 (3.64 % of base) : System.Private.CoreLib.dasm - System.DateTimeFormat:IsValidCustomDateOnlyFormat(System.ReadOnlySpan`1[ushort],ubyte):ubyte (FullOpts) 18 (0.38 % of base) : System.Console.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts) 14 (0.64 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:GetArrayData(System.Array,System.Type,int,int,int):this (FullOpts) 9 (1.24 % of base) : System.Private.Xml.dasm - System.Xml.XmlEncodedRawTextWriter:WriteCommentOrPi(System.String,int):this (FullOpts) 9 (0.84 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XPath.XPathScanner:NextLex():this (FullOpts) 8 (0.60 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.MaskedTextProvider:TestChar(ushort,int,byref):ubyte:this (FullOpts) 8 (1.50 % of base) : System.Private.Uri.dasm - System.UncNameHelper:IsValid(ulong,int,byref,ubyte):ubyte (FullOpts) 6 (0.76 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetNumber(System.ReadOnlySpan`1[ubyte],byref):ubyte:this (FullOpts) 5 (0.48 % of base) : System.Private.Uri.dasm - System.Uri:CheckCanonical(ulong,byref,int,ushort):int:this (FullOpts) 5 (0.10 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+d__159:MoveNext():this (FullOpts) 5 (0.57 % of base) : System.Private.Xml.dasm - System.Xml.XmlUtf8RawTextWriter:WriteElementTextBlockNoFlush(ulong,ulong,byref):int:this (FullOpts) 4 (0.15 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileSwitchExpression(System.Linq.Expressions.Expression):this (FullOpts) 4 (0.41 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetNumberMultiSegment(System.ReadOnlySpan`1[ubyte],byref):ubyte:this (FullOpts) 3 (0.51 % of base) : System.Data.Common.dasm - System.Data.ExpressionParser:BuildExpression(int):this (FullOpts) 3 (0.30 % of base) : System.Net.Primitives.dasm - System.IPv6AddressHelper:Parse(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],int,byref) (FullOpts) 3 (0.30 % of base) : System.Private.Uri.dasm - System.IPv6AddressHelper:Parse(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],int,byref) (FullOpts) 3 (1.33 % of base) : System.Private.Xml.dasm - System.Xml.XmlComplianceUtil:IsValidLanguageID(System.String):ubyte (FullOpts) 2 (0.60 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.TokenInfo:CreateFormat(System.String,int,int):System.Xml.Xsl.Runtime.TokenInfo (FullOpts) 1 (0.09 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this (FullOpts) 1 (0.04 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseText(byref,byref,byref):ubyte:this (FullOpts) Top method improvements (bytes): -140 (-13.42 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GenerateBinaryOperator(Microsoft.CSharp.RuntimeBinder.Semantics.ExprCall):System.Linq.Expressions.Expression:this (FullOpts) -100 (-18.80 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:Reduce():System.Text.RegularExpressions.RegexNode:this (FullOpts) (2 methods) -52 (-1.04 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (FullOpts) (2 methods) -50 (-17.99 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):ubyte (FullOpts) -49 (-8.09 % of base) : System.Data.Common.dasm - System.Xml.XmlDataDocument:OnRowChanged(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts) -39 (-1.94 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeHelpers:ToMarshalAsAttribute(System.Reflection.Metadata.BlobHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Runtime.InteropServices.MarshalAsAttribute (FullOpts) -37 (-4.07 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:TryFind(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts) -37 (-4.79 % of base) : System.Private.Xml.dasm - System.Xml.XmlUtf8RawTextWriter:WriteAttributeTextBlockNoFlush(ulong,ulong):int:this (FullOpts) -34 (-3.23 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:ReadDoc():ubyte:this (FullOpts) -34 (-1.66 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:SkipUntil(ushort,ubyte):this (FullOpts) -32 (-19.16 % of base) : System.Net.Requests.dasm - System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte (FullOpts) -32 (-19.16 % of base) : System.Net.WebHeaderCollection.dasm - System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte (FullOpts) -28 (-2.78 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionRightToLeft(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts) -27 (-0.57 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.WellKnownOids:GetValue(System.ReadOnlySpan`1[ubyte]):System.String (FullOpts) -26 (-1.60 % of base) : System.Data.Common.dasm - System.Data.Common.SqlConvert:ConvertToSqlMoney(System.Object):System.Data.SqlTypes.SqlMoney (FullOpts) -25 (-1.97 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextEncoder:Write(ushort[],int,int):this (FullOpts) -23 (-15.44 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcConnection:SetSupportedType(short):this (FullOpts) -23 (-2.03 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[System.__Canon]:DecodeFixedArgumentType(byref,System.Reflection.Metadata.BlobReader,ubyte):System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[System.__Canon]:this (FullOpts) -23 (-3.75 % of base) : System.Data.Common.dasm - System.Xml.XmlDataDocument:LoadTreeFromDataSet(System.Data.DataSet):this (FullOpts) -22 (-6.08 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:CountSingletons():int:this (FullOpts) -22 (-6.08 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:CountSingletons():int:this (FullOpts) -22 (-6.08 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:CountSingletons():int:this (FullOpts) -22 (-6.08 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:CountSingletons():int:this (FullOpts) -22 (-6.08 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:CountSingletons():int:this (FullOpts) -21 (-2.03 % of base) : System.Data.Common.dasm - System.Data.DataRowComparer:CompareArray(System.Array,System.Array):ubyte (FullOpts) -21 (-1.55 % of base) : System.Resources.Extensions.dasm - System.Resources.Extensions.BinaryFormat.Deserializer.Deserializer:DeserializeRoot(System.Formats.Nrbf.SerializationRecordId):this (FullOpts) -19 (-34.55 % of base) : System.Private.CoreLib.dasm - System.Reflection.AssemblyNameParser:IsWhiteSpace(ushort):ubyte (FullOpts) -19 (-34.55 % of base) : System.Reflection.Metadata.dasm - System.Reflection.AssemblyNameParser:IsWhiteSpace(ushort):ubyte (FullOpts) -19 (-1.81 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.MarshallingData:SerializeMarshallingData():System.Reflection.Metadata.BlobBuilder:this (FullOpts) -19 (-34.55 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:IsWhiteSpaceCharacter(ushort):ubyte (FullOpts) -19 (-10.92 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X500DistinguishedNameBuilder:GetAndValidateTagNumber(System.Nullable`1[int]):int (FullOpts) -19 (-0.79 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:StripAndMapEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[double],uint,System.Collections.Generic.List`1[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.DerivativeEffect]):this (FullOpts) -19 (-0.80 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:StripAndMapEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[int],uint,System.Collections.Generic.List`1[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.DerivativeEffect]):this (FullOpts) -19 (-0.80 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:StripAndMapEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[long],uint,System.Collections.Generic.List`1[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.DerivativeEffect]):this (FullOpts) -19 (-0.79 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:StripAndMapEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[short],uint,System.Collections.Generic.List`1[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.DerivativeEffect]):this (FullOpts) -19 (-0.80 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:StripAndMapEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte],uint,System.Collections.Generic.List`1[System.ValueTuple`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.DerivativeEffect]):this (FullOpts) -19 (-31.67 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlConverter:IsWhitespace(ushort):ubyte (FullOpts) -19 (-2.60 % of base) : System.Private.Xml.dasm - System.Xml.XmlEncodedRawTextWriter:WriteAttributeTextBlockNoFlush(ulong,ulong):int:this (FullOpts) -18 (-1.49 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanCondSection3():int:this (FullOpts) -18 (-1.17 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+d__194:MoveNext():this (FullOpts) -18 (-0.98 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueChunk():ubyte:this (FullOpts) -17 (-2.25 % of base) : System.Private.CoreLib.dasm - System.Enum:ToString[double,long](System.RuntimeType,ushort,byref):System.String (FullOpts) -17 (-2.31 % of base) : System.Private.CoreLib.dasm - System.Enum:ToString[int,long](System.RuntimeType,ushort,byref):System.String (FullOpts) -17 (-2.30 % of base) : System.Private.CoreLib.dasm - System.Enum:ToString[long,long](System.RuntimeType,ushort,byref):System.String (FullOpts) -17 (-2.31 % of base) : System.Private.CoreLib.dasm - System.Enum:ToString[short,long](System.RuntimeType,ushort,byref):System.String (FullOpts) -17 (-2.31 % of base) : System.Private.CoreLib.dasm - System.Enum:ToString[ubyte,long](System.RuntimeType,ushort,byref):System.String (FullOpts) -17 (-2.25 % of base) : System.Private.CoreLib.dasm - System.Enum:ToStringInlined[double,long](System.RuntimeType,ushort,byref):System.String (FullOpts) -17 (-2.31 % of base) : System.Private.CoreLib.dasm - System.Enum:ToStringInlined[int,long](System.RuntimeType,ushort,byref):System.String (FullOpts) -17 (-2.30 % of base) : System.Private.CoreLib.dasm - System.Enum:ToStringInlined[long,long](System.RuntimeType,ushort,byref):System.String (FullOpts) -17 (-2.31 % of base) : System.Private.CoreLib.dasm - System.Enum:ToStringInlined[short,long](System.RuntimeType,ushort,byref):System.String (FullOpts) -17 (-2.31 % of base) : System.Private.CoreLib.dasm - System.Enum:ToStringInlined[ubyte,long](System.RuntimeType,ushort,byref):System.String (FullOpts) -17 (-2.21 % of base) : System.Formats.Nrbf.dasm - System.Formats.Nrbf.RectangularArrayRecord:Create(System.IO.BinaryReader,System.Formats.Nrbf.ArrayInfo,System.Formats.Nrbf.MemberTypeInfo,int[]):System.Formats.Nrbf.RectangularArrayRecord (FullOpts) -17 (-0.21 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitLift(int,System.Type,System.Linq.Expressions.MethodCallExpression,System.Linq.Expressions.ParameterExpression[],System.Linq.Expressions.Expression[]):this (FullOpts) -17 (-1.17 % of base) : System.Web.HttpUtility.dasm - System.Web.Util.HttpEncoder:g__EncodeCore|12_0(System.ReadOnlySpan`1[ushort],int,ubyte):System.String (FullOpts) -17 (-2.23 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:IsConstructedExpression(System.Xml.Xsl.Qil.QilNode):ubyte:this (FullOpts) -16 (-0.41 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseSubset():this (FullOpts) -16 (-19.51 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlBinaryReader:IsValidArrayType(int):ubyte (FullOpts) -16 (-2.12 % of base) : System.Private.Xml.dasm - System.Xml.XmlEncodedRawTextWriter:WriteCommentOrPiNoFlush(System.String,int,int,int,byref):int:this (FullOpts) -16 (-2.31 % of base) : System.Private.Xml.dasm - System.Xml.XmlEncodedRawTextWriter:WriteElementTextBlock(ulong,ulong):this (FullOpts) -16 (-1.83 % of base) : System.Private.Xml.dasm - System.Xml.XmlUtf8RawTextWriter:WriteCommentOrPiNoFlush(System.String,int,int,int,byref):int:this (FullOpts) -16 (-2.22 % of base) : System.Private.Xml.dasm - System.Xml.XmlUtf8RawTextWriter:WriteElementTextBlock(ulong,ulong):this (FullOpts) -16 (-3.32 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILStateAnalyzer:AnalyzeContent(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this (FullOpts) -15 (-0.52 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:PutArrayData(System.Array,System.Type,int,int,int):this (FullOpts) -15 (-1.52 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.FileSystem:vbIOOpenFile(System.Reflection.Assembly,int,System.String,int,int,int,int) (FullOpts) -15 (-0.44 % of base) : System.ComponentModel.Primitives.dasm - System.ComponentModel.CategoryAttribute:GetLocalizedString(System.String):System.String:this (FullOpts) -15 (-1.34 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[double]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:this (FullOpts) -15 (-1.35 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[int]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:this (FullOpts) -15 (-1.35 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[long]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:this (FullOpts) -15 (-1.34 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[short]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:this (FullOpts) -15 (-1.35 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts) -15 (-1.46 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseAttlistDefault(System.Xml.Schema.SchemaAttDef,ubyte):this (FullOpts) -15 (-1.73 % of base) : System.Private.Xml.dasm - System.Xml.HtmlUtf8RawTextWriter:WriteUriAttributeText(ulong,ulong):this (FullOpts) -15 (-1.24 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextEncoder:Write(System.ReadOnlySpan`1[ushort]):this (FullOpts) -15 (-0.71 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl+d__565:MoveNext():this (FullOpts) -15 (-0.68 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl+d__561:MoveNext():this (FullOpts) -15 (-0.64 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl+d__570:MoveNext():this (FullOpts) -14 (-1.95 % of base) : ILCompiler.Reflection.ReadyToRun.dasm - ILCompiler.Reflection.ReadyToRun.MetadataNameFormatter:EmitHandleName(System.Reflection.Metadata.Handle,ubyte,System.String,System.String):System.String:this (FullOpts) -14 (-1.69 % of base) : System.Data.Common.dasm - System.Data.Common.SqlConvert:ConvertToSqlInt64(System.Object):System.Data.SqlTypes.SqlInt64 (FullOpts) -14 (-1.42 % of base) : System.ServiceModel.Syndication.dasm - System.ServiceModel.Syndication.DateTimeHelper:NormalizeTimeZone(System.String,byref):System.String (FullOpts) -14 (-0.31 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+d__164:MoveNext():this (FullOpts) -14 (-1.58 % of base) : System.Private.Xml.dasm - System.Xml.XmlEncodedRawTextWriter:WriteElementTextBlockNoFlush(ulong,ulong,byref):int:this (FullOpts) -14 (-2.24 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:Compare(System.Xml.Xsl.Qil.QilBinary):this (FullOpts) -13 (-1.19 % of base) : System.Net.Http.dasm - System.Net.HttpStatusDescription:Get(int):System.String (FullOpts) (2 methods) -13 (-1.19 % of base) : System.Net.HttpListener.dasm - System.Net.HttpStatusDescription:Get(int):System.String (FullOpts) (2 methods) -13 (-2.49 % of base) : System.Resources.Extensions.dasm - System.Resources.Extensions.BinaryFormat.Deserializer.Deserializer:g__DeserializeNew|32_0(System.Formats.Nrbf.SerializationRecordId):System.Object:this (FullOpts) -13 (-1.43 % of base) : System.Private.Xml.dasm - System.Xml.HtmlEncodedRawTextWriter:WriteUriAttributeText(ulong,ulong):this (FullOpts) -13 (-0.96 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseCDataOrComment(int,byref,byref):ubyte:this (FullOpts) -13 (-1.48 % of base) : System.Private.Xml.dasm - System.Xml.XmlUtf8RawTextWriter:WriteCommentOrPi(System.String,int):this (FullOpts) -12 (-0.85 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.Conversion:Val(System.String):double (FullOpts) -12 (-0.24 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.BaseConfigurationRecord:ScanFactoriesRecursive(System.Configuration.XmlUtil,System.String,System.Collections.Hashtable):this (FullOpts) -12 (-0.63 % of base) : System.Private.CoreLib.dasm - System.DateTimeParse:TryParse(System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,int,byref):ubyte (FullOpts) (2 methods) -12 (-1.74 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.RuntimeFeature:IsSupported(System.String):ubyte (FullOpts) -12 (-0.34 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseElementOnlyContent(System.Xml.Schema.ParticleContentValidator,int):this (FullOpts) -12 (-1.77 % of base) : System.Private.Xml.dasm - System.Xml.HtmlEncodedRawTextWriter:WriteHtmlAttributeText(ulong,ulong):this (FullOpts) -12 (-1.51 % of base) : System.Private.Xml.dasm - System.Xml.HtmlUtf8RawTextWriter:WriteHtmlAttributeText(ulong,ulong):this (FullOpts) -12 (-1.78 % of base) : System.Private.Xml.dasm - System.Xml.XmlEncodedRawTextWriter:WriteAttributeTextBlock(ulong,ulong):this (FullOpts) -12 (-1.73 % of base) : System.Private.Xml.dasm - System.Xml.XmlUtf8RawTextWriter:WriteAttributeTextBlock(ulong,ulong):this (FullOpts) -11 (-1.75 % of base) : System.Data.Common.dasm - System.Data.Common.SqlConvert:ConvertToSqlInt32(System.Object):System.Data.SqlTypes.SqlInt32 (FullOpts) -11 (-0.75 % of base) : System.Data.Common.dasm - System.Data.Select:Eval(System.Data.BinaryNode,System.Data.DataRow,int):int:this (FullOpts) -11 (-2.40 % of base) : System.Console.dasm - System.IO.KeyParser:ParseFromSingleChar(ushort,ubyte):System.ConsoleKeyInfo (FullOpts) Top method regressions (percentages): 26 (8.72 % of base) : System.Net.Primitives.dasm - System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts) 26 (8.72 % of base) : System.Private.Uri.dasm - System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts) 26 (8.72 % of base) : System.Net.Quic.dasm - System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts) 26 (8.72 % of base) : System.Net.Security.dasm - System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts) 81 (5.32 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:CollectOverloadCandidates(System.Reflection.MemberInfo[],System.Object[],int,System.String[],System.Type[],ubyte,System.Type,byref,byref,Microsoft.VisualBasic.CompilerServices.Symbols+Container):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] (FullOpts) 18 (3.64 % of base) : System.Private.CoreLib.dasm - System.DateTimeFormat:IsValidCustomDateOnlyFormat(System.ReadOnlySpan`1[ushort],ubyte):ubyte (FullOpts) 21 (2.37 % of base) : System.Private.CoreLib.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (FullOpts) 21 (2.37 % of base) : System.Reflection.Metadata.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (FullOpts) 8 (1.50 % of base) : System.Private.Uri.dasm - System.UncNameHelper:IsValid(ulong,int,byref,ubyte):ubyte (FullOpts) 3 (1.33 % of base) : System.Private.Xml.dasm - System.Xml.XmlComplianceUtil:IsValidLanguageID(System.String):ubyte (FullOpts) 9 (1.24 % of base) : System.Private.Xml.dasm - System.Xml.XmlEncodedRawTextWriter:WriteCommentOrPi(System.String,int):this (FullOpts) 39 (0.86 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts) 9 (0.84 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XPath.XPathScanner:NextLex():this (FullOpts) 36 (0.81 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte (FullOpts) 6 (0.76 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetNumber(System.ReadOnlySpan`1[ubyte],byref):ubyte:this (FullOpts) 43 (0.75 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl+d__532:MoveNext():this (FullOpts) 14 (0.64 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:GetArrayData(System.Array,System.Type,int,int,int):this (FullOpts) 8 (0.60 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.MaskedTextProvider:TestChar(ushort,int,byref):ubyte:this (FullOpts) 2 (0.60 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.TokenInfo:CreateFormat(System.String,int,int):System.Xml.Xsl.Runtime.TokenInfo (FullOpts) 5 (0.57 % of base) : System.Private.Xml.dasm - System.Xml.XmlUtf8RawTextWriter:WriteElementTextBlockNoFlush(ulong,ulong,byref):int:this (FullOpts) 3 (0.51 % of base) : System.Data.Common.dasm - System.Data.ExpressionParser:BuildExpression(int):this (FullOpts) 5 (0.48 % of base) : System.Private.Uri.dasm - System.Uri:CheckCanonical(ulong,byref,int,ushort):int:this (FullOpts) 4 (0.41 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetNumberMultiSegment(System.ReadOnlySpan`1[ubyte],byref):ubyte:this (FullOpts) 28 (0.39 % of base) : System.Private.CoreLib.dasm - System.Number:NumberToStringFormat[ubyte](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts) 18 (0.38 % of base) : System.Console.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts) 3 (0.30 % of base) : System.Net.Primitives.dasm - System.IPv6AddressHelper:Parse(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],int,byref) (FullOpts) 3 (0.30 % of base) : System.Private.Uri.dasm - System.IPv6AddressHelper:Parse(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],int,byref) (FullOpts) 4 (0.15 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileSwitchExpression(System.Linq.Expressions.Expression):this (FullOpts) 28 (0.14 % of base) : System.Data.Common.dasm - System.Data.BinaryNode:EvalBinaryOp(int,System.Data.ExpressionNode,System.Data.ExpressionNode,System.Data.DataRow,int,int[]):System.Object:this (FullOpts) 5 (0.10 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+d__159:MoveNext():this (FullOpts) 1 (0.09 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this (FullOpts) 1 (0.04 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseText(byref,byref,byref):ubyte:this (FullOpts) Top method improvements (percentages): -19 (-34.55 % of base) : System.Private.CoreLib.dasm - System.Reflection.AssemblyNameParser:IsWhiteSpace(ushort):ubyte (FullOpts) -19 (-34.55 % of base) : System.Reflection.Metadata.dasm - System.Reflection.AssemblyNameParser:IsWhiteSpace(ushort):ubyte (FullOpts) -19 (-34.55 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:IsWhiteSpaceCharacter(ushort):ubyte (FullOpts) -19 (-31.67 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlConverter:IsWhitespace(ushort):ubyte (FullOpts) -16 (-19.51 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlBinaryReader:IsValidArrayType(int):ubyte (FullOpts) -32 (-19.16 % of base) : System.Net.Requests.dasm - System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte (FullOpts) -32 (-19.16 % of base) : System.Net.WebHeaderCollection.dasm - System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte (FullOpts) -100 (-18.80 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:Reduce():System.Text.RegularExpressions.RegexNode:this (FullOpts) (2 methods) -50 (-17.99 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):ubyte (FullOpts) -23 (-15.44 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcConnection:SetSupportedType(short):this (FullOpts) -140 (-13.42 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GenerateBinaryOperator(Microsoft.CSharp.RuntimeBinder.Semantics.ExprCall):System.Linq.Expressions.Expression:this (FullOpts) -10 (-11.76 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:GetByteLength(short):int:this (FullOpts) -10 (-10.99 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataTokens:TryGetHeapIndex(ubyte,byref):ubyte (FullOpts) -19 (-10.92 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X500DistinguishedNameBuilder:GetAndValidateTagNumber(System.Nullable`1[int]):int (FullOpts) -10 (-9.01 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.ProcessManager:ProcFsStateToThreadState(ushort):int (FullOpts) -6 (-8.22 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.XsltInput:PositionAdjustment(int):int (FullOpts) -49 (-8.09 % of base) : System.Data.Common.dasm - System.Xml.XmlDataDocument:OnRowChanged(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts) -10 (-7.41 % of base) : System.Private.Xml.dasm - MS.Internal.Xml.XPath.BooleanFunctions:Evaluate(System.Xml.XPath.XPathNodeIterator):System.Object:this (FullOpts) -10 (-6.80 % of base) : System.Net.Ping.dasm - System.Net.NetworkInformation.IcmpV4MessageConstants:MapV4TypeToIPStatus(int,int):int (FullOpts) -5 (-6.67 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.Statics:Format32(int,int):int (FullOpts) -22 (-6.08 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:CountSingletons():int:this (FullOpts) -22 (-6.08 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:CountSingletons():int:this (FullOpts) -22 (-6.08 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:CountSingletons():int:this (FullOpts) -22 (-6.08 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:CountSingletons():int:this (FullOpts) -22 (-6.08 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:CountSingletons():int:this (FullOpts) -10 (-5.81 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:GetTypeInfoKind(System.Type,System.Text.Json.Serialization.JsonConverter):int (FullOpts) -5 (-5.43 % of base) : System.Linq.Expressions.dasm - System.Dynamic.BinaryOperationBinder:OperationIsValid(int):ubyte (FullOpts) -10 (-5.35 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcTransaction:get_IsolationLevel():int:this (FullOpts) -37 (-4.79 % of base) : System.Private.Xml.dasm - System.Xml.XmlUtf8RawTextWriter:WriteAttributeTextBlockNoFlush(ulong,ulong):int:this (FullOpts) -5 (-4.42 % of base) : System.Private.CoreLib.dasm - System.DateTimeFormat:IsTimeOnlySpecialCase(System.DateTime,System.Globalization.DateTimeFormatInfo):ubyte (FullOpts) -10 (-4.20 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:CalculateExprAndUnaryOpKinds(uint,ubyte):System.ValueTuple`3[int,int,int] (FullOpts) -37 (-4.07 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:TryFind(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts) -6 (-4.03 % of base) : System.Text.Json.dasm - System.Text.Json.Schema.JsonSchema:g__ToIdentifier|108_0(int):System.String (FullOpts) -11 (-4.00 % of base) : System.Data.Common.dasm - System.Xml.XmlDataDocument:EnsureDisconnectedDataRow(System.Xml.XmlBoundElement):this (FullOpts) -23 (-3.75 % of base) : System.Data.Common.dasm - System.Xml.XmlDataDocument:LoadTreeFromDataSet(System.Data.DataSet):this (FullOpts) -5 (-3.68 % of base) : System.Data.Common.dasm - System.Data.BinaryNode:SqlResultType(int):int (FullOpts) -10 (-3.65 % of base) : System.Data.Odbc.dasm - System.Data.Common.ADP:ConnectionStateMsg(int):System.String (FullOpts) -10 (-3.65 % of base) : System.Data.Common.dasm - System.Data.Common.ADP:ConnectionStateMsg(int):System.String (FullOpts) -5 (-3.45 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.XmlUtilWriter:UpdatePosition(ushort):this (FullOpts) -16 (-3.32 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILStateAnalyzer:AnalyzeContent(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this (FullOpts) -34 (-3.23 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:ReadDoc():ubyte:this (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector128`1[float] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[long],ubyte):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[long],ubyte):System.Runtime.Intrinsics.Vector128`1[float] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[long],ubyte):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[long],ubyte):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[long],ubyte):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector128`1[long],ubyte):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector256`1[long],ubyte):System.Runtime.Intrinsics.Vector128`1[float] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector256`1[long],ubyte):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts) -6 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector128(ulong,System.Runtime.Intrinsics.Vector256`1[long],ubyte):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts) -8 (-3.12 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnCharacterStringEncodings:GetEncoding(int):System.Text.Encoding (FullOpts) -6 (-3.11 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector256(ulong,System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts) -6 (-3.11 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector256(ulong,System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts) -6 (-3.11 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector256(ulong,System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector256`1[ulong] (FullOpts) -6 (-3.11 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector256(ulong,System.Runtime.Intrinsics.Vector256`1[int],ubyte):System.Runtime.Intrinsics.Vector256`1[float] (FullOpts) -6 (-3.11 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector256(ulong,System.Runtime.Intrinsics.Vector256`1[int],ubyte):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts) -6 (-3.11 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector256(ulong,System.Runtime.Intrinsics.Vector256`1[int],ubyte):System.Runtime.Intrinsics.Vector256`1[uint] (FullOpts) -6 (-3.11 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector256(ulong,System.Runtime.Intrinsics.Vector256`1[long],ubyte):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts) -6 (-3.11 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector256(ulong,System.Runtime.Intrinsics.Vector256`1[long],ubyte):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts) -6 (-3.11 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherVector256(ulong,System.Runtime.Intrinsics.Vector256`1[long],ubyte):System.Runtime.Intrinsics.Vector256`1[ulong] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[double],ulong,System.Runtime.Intrinsics.Vector128`1[int],System.Runtime.Intrinsics.Vector128`1[double],ubyte):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[double],ulong,System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[double],ubyte):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[float],ulong,System.Runtime.Intrinsics.Vector128`1[int],System.Runtime.Intrinsics.Vector128`1[float],ubyte):System.Runtime.Intrinsics.Vector128`1[float] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[float],ulong,System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[float],ubyte):System.Runtime.Intrinsics.Vector128`1[float] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[float],ulong,System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector128`1[float],ubyte):System.Runtime.Intrinsics.Vector128`1[float] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[int],ulong,System.Runtime.Intrinsics.Vector128`1[int],System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[int],ulong,System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[int],ulong,System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector128`1[int],ubyte):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[long],ulong,System.Runtime.Intrinsics.Vector128`1[int],System.Runtime.Intrinsics.Vector128`1[long],ubyte):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[long],ulong,System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long],ubyte):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[uint],ulong,System.Runtime.Intrinsics.Vector128`1[int],System.Runtime.Intrinsics.Vector128`1[uint],ubyte):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[uint],ulong,System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[uint],ubyte):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[uint],ulong,System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector128`1[uint],ubyte):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[ulong],ulong,System.Runtime.Intrinsics.Vector128`1[int],System.Runtime.Intrinsics.Vector128`1[ulong],ubyte):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts) -6 (-2.94 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector128(System.Runtime.Intrinsics.Vector128`1[ulong],ulong,System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[ulong],ubyte):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts) -6 (-2.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector256(System.Runtime.Intrinsics.Vector256`1[double],ulong,System.Runtime.Intrinsics.Vector128`1[int],System.Runtime.Intrinsics.Vector256`1[double],ubyte):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts) -6 (-2.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector256(System.Runtime.Intrinsics.Vector256`1[double],ulong,System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[double],ubyte):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts) -6 (-2.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector256(System.Runtime.Intrinsics.Vector256`1[float],ulong,System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[float],ubyte):System.Runtime.Intrinsics.Vector256`1[float] (FullOpts) -6 (-2.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector256(System.Runtime.Intrinsics.Vector256`1[int],ulong,System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int],ubyte):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts) -6 (-2.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector256(System.Runtime.Intrinsics.Vector256`1[long],ulong,System.Runtime.Intrinsics.Vector128`1[int],System.Runtime.Intrinsics.Vector256`1[long],ubyte):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts) -6 (-2.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector256(System.Runtime.Intrinsics.Vector256`1[long],ulong,System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long],ubyte):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts) -6 (-2.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector256(System.Runtime.Intrinsics.Vector256`1[uint],ulong,System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[uint],ubyte):System.Runtime.Intrinsics.Vector256`1[uint] (FullOpts) -6 (-2.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector256(System.Runtime.Intrinsics.Vector256`1[ulong],ulong,System.Runtime.Intrinsics.Vector128`1[int],System.Runtime.Intrinsics.Vector256`1[ulong],ubyte):System.Runtime.Intrinsics.Vector256`1[ulong] (FullOpts) -6 (-2.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.X86.Avx2:GatherMaskVector256(System.Runtime.Intrinsics.Vector256`1[ulong],ulong,System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[ulong],ubyte):System.Runtime.Intrinsics.Vector256`1[ulong] (FullOpts) -28 (-2.78 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionRightToLeft(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts) -19 (-2.60 % of base) : System.Private.Xml.dasm - System.Xml.XmlEncodedRawTextWriter:WriteAttributeTextBlockNoFlush(ulong,ulong):int:this (FullOpts) -11 (-2.58 % of base) : System.Private.Xml.Linq.dasm - System.Xml.Linq.XDocument:ValidateNode(System.Xml.Linq.XNode,System.Xml.Linq.XNode):this (FullOpts) -13 (-2.49 % of base) : System.Resources.Extensions.dasm - System.Resources.Extensions.BinaryFormat.Deserializer.Deserializer:g__DeserializeNew|32_0(System.Formats.Nrbf.SerializationRecordId):System.Object:this (FullOpts) -6 (-2.47 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:ChooseBestType(System.Xml.Xsl.Xslt.VarPar):System.Xml.Xsl.XmlQueryType:this (FullOpts) -7 (-2.42 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlBinaryReader:IsStartArray(byref):ubyte:this (FullOpts) -11 (-2.40 % of base) : System.Console.dasm - System.IO.KeyParser:ParseFromSingleChar(ushort,ubyte):System.ConsoleKeyInfo (FullOpts) -8 (-2.37 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetMemberWithSameMetadataDefinitionAs(System.Reflection.MemberInfo):System.Reflection.MemberInfo:this (FullOpts) -17 (-2.31 % of base) : System.Private.CoreLib.dasm - System.Enum:ToString[int,long](System.RuntimeType,ushort,byref):System.String (FullOpts) -17 (-2.31 % of base) : System.Private.CoreLib.dasm - System.Enum:ToString[short,long](System.RuntimeType,ushort,byref):System.String (FullOpts) 314 total methods with Code Size differences (282 improved, 32 regressed), 231792 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 1 month ago

Top method regressions

81 (5.32 % of base) - Microsoft.VisualBasic.CompilerServices.OverloadResolution:CollectOverloadCandidates(System.Reflection.MemberInfo[],System.Object[],int,System.String[],System.Type[],ubyte,System.Type,byref,byref,Microsoft.VisualBasic.CompilerServices.Symbols+Container):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] ```diff ; Assembly listing for method Microsoft.VisualBasic.CompilerServices.OverloadResolution:CollectOverloadCandidates(System.Reflection.MemberInfo[],System.Object[],int,System.String[],System.Type[],ubyte,System.Type,byref,byref,Microsoft.VisualBasic.CompilerServices.Symbols+Container):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] (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; 5 single block inlinees; 3 inlinees without PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T08] ( 6, 55 ) ref -> rbx class-hnd single-def +; V00 arg0 [V00,T08] ( 6, 55 ) ref -> [rbp-0x78] class-hnd single-def ; V01 arg1 [V01,T30] ( 4, 18 ) ref -> r12 class-hnd single-def ; V02 arg2 [V02,T12] ( 7, 42 ) int -> r15 single-def -; V03 arg3 [V03,T31] ( 4, 18 ) ref -> [rbp-0x78] class-hnd single-def +; V03 arg3 [V03,T31] ( 4, 18 ) ref -> [rbp-0x80] class-hnd single-def ; V04 arg4 [V04,T28] ( 6, 19.50) ref -> r13 class-hnd single-def ; V05 arg5 [V05,T13] ( 7, 42 ) ubyte -> r14 single-def ; V06 arg6 [V06,T41] ( 2, 6 ) ref -> [rbp+0x10] class-hnd single-def ; V07 arg7 [V07,T33] ( 2, 16 ) byref -> [rbp+0x18] single-def ; V08 arg8 [V08,T34] ( 2, 16 ) byref -> [rbp+0x20] single-def ; V09 arg9 [V09,T35] ( 2, 16 ) ref -> [rbp+0x28] class-hnd single-def ;* V10 loc0 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd ; V11 loc1 [V11,T32] ( 4, 17.50) int -> [rbp-0x2C] -; V12 loc2 [V12,T17] ( 9, 32.50) ref -> [rbp-0x80] class-hnd exact spill-single-def +; V12 loc2 [V12,T17] ( 9, 32.50) ref -> [rbp-0x88] class-hnd exact spill-single-def ; V13 loc3 [V13,T29] ( 4, 20.50) ubyte -> [rbp-0x30] ; V14 loc4 [V14,T00] ( 19,187 ) int -> [rbp-0x34] -; V15 loc5 [V15,T27] ( 3, 22 ) ref -> [rbp-0x88] class-hnd spill-single-def -; V16 loc6 [V16,T01] ( 14,184 ) ref -> [rbp-0x90] class-hnd spill-single-def -; V17 loc7 [V17,T06] ( 8, 64 ) ref -> [rbp-0x98] class-hnd +; V15 loc5 [V15,T27] ( 3, 22 ) ref -> [rbp-0x90] class-hnd spill-single-def +; V16 loc6 [V16,T01] ( 14,184 ) ref -> [rbp-0x98] class-hnd +; V17 loc7 [V17,T06] ( 8, 64 ) ref -> [rbp-0xA0] class-hnd ; V18 loc8 [V18,T10] ( 3, 48 ) int -> [rbp-0x38] ; V19 loc9 [V19 ] ( 3, 24 ) int -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op ; V20 loc10 [V20 ] ( 4, 32 ) int -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op ; V21 loc11 [V21 ] ( 5, 40 ) int -> [rbp-0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op ; V22 loc12 [V22,T19] ( 4, 32 ) ubyte -> [rbp-0x54] spill-single-def -; V23 loc13 [V23,T02] ( 8,112 ) int -> rax +; V23 loc13 [V23,T02] ( 6, 96 ) int -> rax ;* V24 loc14 [V24,T38] ( 0, 0 ) ref -> zero-ref class-hnd ;* V25 loc15 [V25,T39] ( 0, 0 ) ref -> zero-ref class-hnd -; V26 loc16 [V26,T15] ( 5, 40 ) ref -> [rbp-0xA0] class-hnd spill-single-def -; V27 loc17 [V27,T18] ( 4, 32 ) ref -> [rbp-0xA8] class-hnd spill-single-def -; V28 loc18 [V28,T21] ( 3, 24 ) ref -> [rbp-0xB0] class-hnd spill-single-def +; V26 loc16 [V26,T15] ( 5, 40 ) ref -> [rbp-0xA8] class-hnd spill-single-def +; V27 loc17 [V27,T18] ( 4, 32 ) ref -> [rbp-0xB0] class-hnd spill-single-def +; V28 loc18 [V28,T21] ( 3, 24 ) ref -> [rbp-0xB8] class-hnd spill-single-def ; V29 loc19 [V29,T37] ( 4, 8 ) int -> rsi ; V30 OutArgs [V30 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V31 tmp1 [V31,T40] ( 3, 6 ) ref -> [rbp-0xB8] class-hnd exact spill-single-def "NewObj constructor temp" +; V31 tmp1 [V31,T40] ( 3, 6 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def "NewObj constructor temp" ; V32 tmp2 [V32,T36] ( 2, 16 ) ubyte -> rdi "Inline return value spill temp" ; V33 tmp3 [V33,T09] ( 4, 48 ) ref -> rax "spilling varStr" ; V34 tmp4 [V34,T20] ( 3, 32 ) int -> rdi "spilling unroll qmark" ; V35 tmp5 [V35,T22] ( 3, 24 ) ref -> rdi "argument with side effect" ; V36 tmp6 [V36,T04] ( 3, 96 ) ref -> rdi "argument with side effect" ; V37 tmp7 [V37,T23] ( 3, 24 ) ref -> rsi "arr expr" ; V38 tmp8 [V38,T07] ( 2, 64 ) ref -> rcx "arr expr" ; V39 cse0 [V39,T25] ( 3, 24 ) long -> [rbp-0x60] spill-single-def "CSE #07: moderate" ; V40 cse1 [V40,T16] ( 4, 40 ) int -> rdx "CSE #08: moderate" ; V41 cse2 [V41,T24] ( 3, 24 ) ref -> rdi "CSE #09: moderate" ; V42 cse3 [V42,T14] ( 6, 43 ) int -> [rbp-0x64] spill-single-def "CSE #01: aggressive" -; V43 cse4 [V43,T03] ( 6, 96 ) long -> [rbp-0x70] spill-single-def "CSE #04: aggressive" +; V43 cse4 [V43,T03] ( 6, 96 ) long -> [rbp-0x70] "CSE #04: aggressive" ; V44 cse5 [V44,T26] ( 3, 24 ) int -> rax "CSE #10: moderate" ; V45 rat0 [V45,T05] ( 8, 84 ) long -> rsi "Widened IV V29" -; V46 rat1 [V46,T11] ( 3, 44.80) int -> rcx "ReplaceWithLclVar is creating a new local variable" +; V46 rat1 [V46,T11] ( 3, 47.67) int -> registers "ReplaceWithLclVar is creating a new local variable" ; -; Lcl frame size = 184 +; Lcl frame size = 200 G_M46810_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - sub rsp, 184 - lea rbp, [rsp+0xE0] + sub rsp, 200 + lea rbp, [rsp+0xF0] vxorps xmm8, xmm8, xmm8 vmovdqa xmmword ptr [rbp-0x50], xmm8 xor eax, eax mov qword ptr [rbp-0x40], rax - mov gword ptr [rbp-0x78], rcx + mov gword ptr [rbp-0x80], rcx mov rbx, rdi mov r12, rsi mov r15d, edx mov r13, r8 mov r14d, r9d ;; size=60 bbWeight=1 PerfScore 12.58 G_M46810_IG02: xor r9d, r9d test r13, r13 mov dword ptr [rbp-0x2C], r9d je SHORT G_M46810_IG04 ;; size=12 bbWeight=1 PerfScore 2.50 G_M46810_IG03: mov r9d, dword ptr [r13+0x08] mov dword ptr [rbp-0x2C], r9d ;; size=8 bbWeight=0.50 PerfScore 1.50 G_M46810_IG04: mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0xB8], rax + mov gword ptr [rbp-0xC0], rax mov ecx, dword ptr [rbx+0x08] mov dword ptr [rbp-0x64], ecx mov esi, ecx mov rdi, rax mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this call [rdx]System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this - mov rax, gword ptr [rbp-0xB8] - mov gword ptr [rbp-0x80], rax + mov rax, gword ptr [rbp-0xC0] + mov gword ptr [rbp-0x88], rax mov ecx, dword ptr [rbp-0x64] test ecx, ecx jne SHORT G_M46810_IG06 - ;; size=63 bbWeight=1 PerfScore 13.25 + ;; size=66 bbWeight=1 PerfScore 13.25 G_M46810_IG05: - mov r15, gword ptr [rbp-0x80] + mov r12, gword ptr [rbp-0x88] jmp G_M46810_IG49 - align [5 bytes for IG45] - ;; size=14 bbWeight=0.50 PerfScore 1.50 + align [6 bytes for IG45] + ;; size=18 bbWeight=0.50 PerfScore 1.50 G_M46810_IG06: mov dword ptr [rbp-0x30], 1 xor esi, esi jmp SHORT G_M46810_IG08 ;; size=11 bbWeight=0.50 PerfScore 1.62 G_M46810_IG07: + mov ecx, esi mov esi, edx - ;; size=2 bbWeight=2 PerfScore 0.50 + ;; size=4 bbWeight=2 PerfScore 1.00 G_M46810_IG08: cmp esi, ecx jae G_M46810_IG54 mov dword ptr [rbp-0x34], esi mov edi, esi mov rdi, gword ptr [rbx+8*rdi+0x10] mov r8, qword ptr [rdi] mov r8, qword ptr [r8+0x40] call [r8+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this - mov gword ptr [rbp-0x88], rax + mov gword ptr [rbp-0x90], rax mov rcx, gword ptr [rbp+0x10] test rcx, rcx jne SHORT G_M46810_IG13 ;; size=45 bbWeight=4 PerfScore 59.00 G_M46810_IG09: mov gword ptr [rbp+0x10], rcx ;; size=4 bbWeight=2 PerfScore 2.00 G_M46810_IG10: mov edi, dword ptr [rbp-0x34] mov rsi, gword ptr [rbx+8*rdi+0x10] - mov gword ptr [rbp-0x90], rsi xor r8d, r8d mov dword ptr [rbp-0x38], r8d mov rdi, rsi + mov gword ptr [rbp-0x98], rsi mov r9, qword ptr [rsi] mov qword ptr [rbp-0x70], r9 mov r10, qword ptr [r9+0x40] call [r10+0x28]System.Reflection.MemberInfo:get_MemberType():int:this cmp eax, 16 jg SHORT G_M46810_IG16 ;; size=45 bbWeight=32 PerfScore 472.00 G_M46810_IG11: - lea ecx, [rax-0x01] - cmp ecx, 3 - ja G_M46810_IG18 - ;; size=12 bbWeight=8 PerfScore 14.00 + dec eax + cmp eax, 15 + ja G_M46810_IG39 + ;; size=11 bbWeight=8 PerfScore 12.00 G_M46810_IG12: - mov edi, ecx - lea rax, [reloc @RWD00] - mov eax, dword ptr [rax+4*rdi] - lea rcx, G_M46810_IG02 - add rax, rcx - jmp rax - ;; size=24 bbWeight=6.40 PerfScore 38.40 + mov esi, eax + mov rax, gword ptr [rbp-0x98] + mov rcx, qword ptr [rbp-0x70] + mov edx, dword ptr [rbp-0x38] + lea rdi, [reloc @RWD00] + mov edi, dword ptr [rdi+4*rsi] + lea r8, G_M46810_IG02 + add rdi, r8 + jmp rdi + ;; size=38 bbWeight=7.83 PerfScore 70.50 G_M46810_IG13: mov gword ptr [rbp+0x10], rcx mov rdi, rcx mov rsi, rax mov rdx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:IsOrInheritsFrom(System.Type,System.Type):ubyte call [rdx]Microsoft.VisualBasic.CompilerServices.Symbols:IsOrInheritsFrom(System.Type,System.Type):ubyte test eax, eax je SHORT G_M46810_IG10 ;; size=26 bbWeight=2 PerfScore 12.00 G_M46810_IG14: xor edx, edx xor ebx, ebx - mov r15, gword ptr [rbp-0x80] - cmp dword ptr [r15+0x10], 0 + mov r12, gword ptr [rbp-0x88] + cmp dword ptr [r12+0x10], 0 jle G_M46810_IG49 - ;; size=19 bbWeight=0.50 PerfScore 2.75 + ;; size=23 bbWeight=0.50 PerfScore 2.75 G_M46810_IG15: - mov edx, dword ptr [r15+0x10] + mov edx, dword ptr [r12+0x10] cmp ebx, edx jb G_M46810_IG43 jmp G_M46810_IG52 - ;; size=17 bbWeight=4 PerfScore 21.00 + ;; size=18 bbWeight=4 PerfScore 21.00 G_M46810_IG16: cmp eax, 32 - je SHORT G_M46810_IG17 + je G_M46810_IG20 cmp eax, 64 - je SHORT G_M46810_IG17 + je G_M46810_IG20 cmp eax, 128 - jne G_M46810_IG39 - ;; size=21 bbWeight=8 PerfScore 30.00 + je G_M46810_IG20 + jmp G_M46810_IG39 + ;; size=34 bbWeight=8 PerfScore 46.00 G_M46810_IG17: test r14b, r14b + mov qword ptr [rbp-0x70], rcx + mov dword ptr [rbp-0x38], edx jne G_M46810_IG39 - xor edx, edx - mov dword ptr [rbp-0x30], edx - jmp G_M46810_IG39 - ;; size=19 bbWeight=8 PerfScore 36.00 -G_M46810_IG18: - cmp eax, 8 - jne G_M46810_IG25 - ;; size=9 bbWeight=8 PerfScore 10.00 -G_M46810_IG19: - mov rsi, gword ptr [rbp-0x90] - mov rdi, 0xD1FFAB1E ; System.Reflection.MethodBase - mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS - call [rcx]CORINFO_HELP_CHKCASTCLASS - test r14b, r14b - je SHORT G_M46810_IG24 - mov rdi, 0xD1FFAB1E ; global ptr - test byte ptr [rdi], 1 - je G_M46810_IG51 - ;; size=53 bbWeight=8 PerfScore 80.00 -G_M46810_IG20: - mov rdi, gword ptr [rbp-0x90] - mov rax, qword ptr [rbp-0x70] - mov rcx, qword ptr [rax+0x50] - call [rcx+0x20]System.Reflection.MethodBase:get_Attributes():int:this - test eax, 0x800 - je G_M46810_IG39 - mov rdi, gword ptr [rbp-0x90] - mov rax, qword ptr [rbp-0x70] - mov rcx, qword ptr [rax+0x40] - call [rcx+0x30]System.Reflection.MemberInfo:get_Name():System.String:this - cmp dword ptr [rax+0x08], 3 - jl SHORT G_M46810_IG22 - ;; size=53 bbWeight=8 PerfScore 154.00 -G_M46810_IG21: - mov edi, dword ptr [rax+0x0C] - xor edi, 0xD1FFAB1E - mov eax, dword ptr [rax+0x0E] - xor eax, 0xD1FFAB1E - or edi, eax - sete dil - movzx rdi, dil - jmp SHORT G_M46810_IG23 - ;; size=29 bbWeight=4 PerfScore 32.00 -G_M46810_IG22: - xor edi, edi - ;; size=2 bbWeight=4 PerfScore 1.00 -G_M46810_IG23: - test edi, edi - je G_M46810_IG39 - ;; size=8 bbWeight=8 PerfScore 10.00 -G_M46810_IG24: - mov rdi, gword ptr [rbp-0x90] - mov rax, qword ptr [rbp-0x70] - mov rax, qword ptr [rax+0x50] - call [rax+0x18]System.Reflection.MethodBase:GetParameters():System.Reflection.ParameterInfo[]:this mov gword ptr [rbp-0x98], rax - mov rdi, gword ptr [rbp-0x90] - mov rcx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:GetTypeParameters(System.Reflection.MemberInfo):System.Type[] - call [rcx]Microsoft.VisualBasic.CompilerServices.Symbols:GetTypeParameters(System.Reflection.MemberInfo):System.Type[] - mov r8d, dword ptr [rax+0x08] - mov dword ptr [rbp-0x38], r8d - mov rdi, gword ptr [rbp-0x90] - mov rcx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte - call [rcx]Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte - test eax, eax - je G_M46810_IG29 - jmp G_M46810_IG28 - ;; size=84 bbWeight=8 PerfScore 182.00 -G_M46810_IG25: - cmp eax, 16 - jne G_M46810_IG39 - test r14b, r14b - jne G_M46810_IG39 - mov rsi, gword ptr [rbp-0x90] + mov rsi, rax mov rdi, 0xD1FFAB1E ; System.Reflection.PropertyInfo - mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS - call [rax]CORINFO_HELP_CHKCASTCLASS - mov rdi, gword ptr [rbp-0x90] + mov r8, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS + call [r8]CORINFO_HELP_CHKCASTCLASS + mov rdi, gword ptr [rbp-0x98] xor esi, esi mov rax, qword ptr [rbp-0x70] mov rax, qword ptr [rax+0x58] mov qword ptr [rbp-0x60], rax call [rax+0x08]System.Reflection.PropertyInfo:GetGetMethod(ubyte):System.Reflection.MethodInfo:this - mov gword ptr [rbp-0xA0], rax + mov gword ptr [rbp-0xA8], rax test rax, rax - jne G_M46810_IG27 - mov rdi, gword ptr [rbp-0x90] + jne G_M46810_IG19 + mov rdi, gword ptr [rbp-0x98] xor esi, esi mov rax, qword ptr [rbp-0x60] call [rax+0x18]System.Reflection.PropertyInfo:GetSetMethod(ubyte):System.Reflection.MethodInfo:this - mov gword ptr [rbp-0xA8], rax + mov gword ptr [rbp-0xB0], rax mov rdi, rax mov rcx, qword ptr [rax] mov rcx, qword ptr [rcx+0x50] call [rcx+0x18]System.Reflection.MethodBase:GetParameters():System.Reflection.ParameterInfo[]:this - mov gword ptr [rbp-0xB0], rax + mov gword ptr [rbp-0xB8], rax mov esi, dword ptr [rax+0x08] sub esi, 2 jo G_M46810_IG53 add esi, 1 jo G_M46810_IG53 movsxd rsi, esi mov rdi, 0xD1FFAB1E ; System.Reflection.ParameterInfo[] call CORINFO_HELP_NEWARR_1_OBJ mov edx, dword ptr [rax+0x08] - mov rdi, gword ptr [rbp-0xB0] - mov gword ptr [rbp-0x98], rax + mov rdi, gword ptr [rbp-0xB8] + mov gword ptr [rbp-0xA0], rax mov rsi, rax mov rcx, 0xD1FFAB1E ; code for System.Array:Copy(System.Array,System.Array,int) call [rcx]System.Array:Copy(System.Array,System.Array,int) - mov rdi, gword ptr [rbp-0xA8] + mov rdi, gword ptr [rbp-0xB0] mov rax, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte - ;; size=218 bbWeight=8 PerfScore 374.00 -G_M46810_IG26: + ;; size=220 bbWeight=8 PerfScore 382.00 +G_M46810_IG18: call [rax]Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte test eax, eax - je SHORT G_M46810_IG29 - jmp SHORT G_M46810_IG28 - ;; size=8 bbWeight=8 PerfScore 50.00 -G_M46810_IG27: + je G_M46810_IG28 + jmp G_M46810_IG27 + ;; size=15 bbWeight=8 PerfScore 50.00 +G_M46810_IG19: mov rdi, rax mov rcx, qword ptr [rax] mov rcx, qword ptr [rcx+0x50] call [rcx+0x18]System.Reflection.MethodBase:GetParameters():System.Reflection.ParameterInfo[]:this - mov gword ptr [rbp-0x98], rax - mov rdi, gword ptr [rbp-0xA0] + mov gword ptr [rbp-0xA0], rax + mov rdi, gword ptr [rbp-0xA8] mov rcx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte call [rcx]Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte test eax, eax - je SHORT G_M46810_IG29 - ;; size=43 bbWeight=8 PerfScore 110.00 -G_M46810_IG28: - xor eax, eax - mov dword ptr [rbp-0x30], eax + je G_M46810_IG28 + jmp G_M46810_IG27 + ;; size=52 bbWeight=8 PerfScore 126.00 +G_M46810_IG20: + test r14b, r14b + jne G_M46810_IG39 + xor edx, edx + mov dword ptr [rbp-0x30], edx + jmp G_M46810_IG39 + ;; size=19 bbWeight=8 PerfScore 36.00 +G_M46810_IG21: + mov qword ptr [rbp-0x70], rcx + mov gword ptr [rbp-0x98], rax + mov rsi, rax + mov rdi, 0xD1FFAB1E ; System.Reflection.MethodBase + mov rdx, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS + call [rdx]CORINFO_HELP_CHKCASTCLASS + test r14b, r14b + je G_M46810_IG26 + mov rdi, 0xD1FFAB1E ; global ptr + test byte ptr [rdi], 1 + je G_M46810_IG51 + ;; size=64 bbWeight=8 PerfScore 90.00 +G_M46810_IG22: + mov rdi, gword ptr [rbp-0x98] + mov rax, qword ptr [rbp-0x70] + mov rcx, qword ptr [rax+0x50] + call [rcx+0x20]System.Reflection.MethodBase:get_Attributes():int:this + test eax, 0x800 + je G_M46810_IG39 + mov rax, gword ptr [rbp-0x98] + mov rcx, qword ptr [rbp-0x70] + mov gword ptr [rbp-0x98], rax + mov rdi, rax + mov qword ptr [rbp-0x70], rcx + mov rdx, qword ptr [rcx+0x40] + call [rdx+0x30]System.Reflection.MemberInfo:get_Name():System.String:this + cmp dword ptr [rax+0x08], 3 + jl SHORT G_M46810_IG24 + ;; size=67 bbWeight=8 PerfScore 172.00 +G_M46810_IG23: + mov edi, dword ptr [rax+0x0C] + xor edi, 0xD1FFAB1E + mov eax, dword ptr [rax+0x0E] + xor eax, 0xD1FFAB1E + or edi, eax + sete dil + movzx rdi, dil + jmp SHORT G_M46810_IG25 + ;; size=29 bbWeight=4 PerfScore 32.00 +G_M46810_IG24: + xor edi, edi + ;; size=2 bbWeight=4 PerfScore 1.00 +G_M46810_IG25: + test edi, edi + je G_M46810_IG39 + ;; size=8 bbWeight=8 PerfScore 10.00 +G_M46810_IG26: + mov rdi, gword ptr [rbp-0x98] + mov rax, qword ptr [rbp-0x70] + mov rax, qword ptr [rax+0x50] + call [rax+0x18]System.Reflection.MethodBase:GetParameters():System.Reflection.ParameterInfo[]:this + mov gword ptr [rbp-0xA0], rax + mov rdi, gword ptr [rbp-0x98] + mov rcx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:GetTypeParameters(System.Reflection.MemberInfo):System.Type[] + call [rcx]Microsoft.VisualBasic.CompilerServices.Symbols:GetTypeParameters(System.Reflection.MemberInfo):System.Type[] + mov edx, dword ptr [rax+0x08] + mov dword ptr [rbp-0x38], edx + mov rdi, gword ptr [rbp-0x98] + mov rcx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte + call [rcx]Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte + test eax, eax + je SHORT G_M46810_IG28 + ;; size=73 bbWeight=8 PerfScore 166.00 +G_M46810_IG27: + xor ecx, ecx + mov dword ptr [rbp-0x30], ecx ;; size=5 bbWeight=8 PerfScore 10.00 -G_M46810_IG29: +G_M46810_IG28: xor ecx, ecx mov dword ptr [rbp-0x40], ecx ;; size=5 bbWeight=8 PerfScore 10.00 -G_M46810_IG30: +G_M46810_IG29: mov dword ptr [rbp-0x48], ecx mov dword ptr [rbp-0x50], -1 lea rcx, [rbp-0x50] lea rsi, [rbp-0x40] lea rdx, [rbp-0x48] - mov rdi, gword ptr [rbp-0x98] + mov rdi, gword ptr [rbp-0xA0] mov r8, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:GetAllParameterCounts(System.Reflection.ParameterInfo[],byref,byref,byref) call [r8]Microsoft.VisualBasic.CompilerServices.Symbols:GetAllParameterCounts(System.Reflection.ParameterInfo[],byref,byref,byref) cmp dword ptr [rbp-0x50], 0 setge al movzx rax, al mov dword ptr [rbp-0x54], eax cmp r15d, dword ptr [rbp-0x40] jl G_M46810_IG38 test eax, eax - jne SHORT G_M46810_IG31 + jne SHORT G_M46810_IG30 cmp r15d, dword ptr [rbp-0x48] jg G_M46810_IG38 ;; size=79 bbWeight=8 PerfScore 154.00 -G_M46810_IG31: +G_M46810_IG30: mov r10d, dword ptr [rbp-0x2C] test r10d, r10d - jle SHORT G_M46810_IG32 + jle SHORT G_M46810_IG31 mov dword ptr [rbp-0x2C], r10d mov edi, dword ptr [rbp-0x38] cmp r10d, edi mov r10d, dword ptr [rbp-0x2C] jne G_M46810_IG37 ;; size=29 bbWeight=8 PerfScore 52.00 -G_M46810_IG32: +G_M46810_IG31: test eax, eax - jne SHORT G_M46810_IG34 + jne SHORT G_M46810_IG33 ;; size=4 bbWeight=8 PerfScore 10.00 -G_M46810_IG33: +G_M46810_IG32: + mov gword ptr [rbp-0x78], rbx mov dword ptr [rbp-0x2C], r10d - jmp SHORT G_M46810_IG35 - ;; size=6 bbWeight=4 PerfScore 12.00 -G_M46810_IG34: + jmp SHORT G_M46810_IG34 + ;; size=10 bbWeight=4 PerfScore 16.00 +G_M46810_IG33: cmp r15d, dword ptr [rbp-0x48] + mov gword ptr [rbp-0x78], rbx mov dword ptr [rbp-0x2C], r10d jne SHORT G_M46810_IG36 - ;; size=10 bbWeight=8 PerfScore 32.00 -G_M46810_IG35: - mov r11, gword ptr [rbp-0x78] + ;; size=14 bbWeight=8 PerfScore 40.00 +G_M46810_IG34: + mov r11, gword ptr [rbp-0x80] mov gword ptr [rsp], r11 mov gword ptr [rsp+0x08], r13 movzx rdi, r14b mov dword ptr [rsp+0x10], edi - mov rcx, gword ptr [rbp-0x80] + mov rcx, gword ptr [rbp-0x88] mov gword ptr [rsp+0x18], rcx mov r9, gword ptr [rbp+0x28] mov gword ptr [rsp+0x20], r9 - mov rdi, gword ptr [rbp-0x90] - mov rsi, gword ptr [rbp-0x98] + mov rdi, gword ptr [rbp-0x98] + mov rsi, gword ptr [rbp-0xA0] mov edx, dword ptr [rbp-0x50] mov r8, r12 mov r9d, r15d xor ecx, ecx - mov r11, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) - call [r11]Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) + mov rbx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) + call [rbx]Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) cmp dword ptr [rbp-0x54], 0 - je G_M46810_IG39 - ;; size=87 bbWeight=8 PerfScore 146.00 + jne SHORT G_M46810_IG36 + ;; size=85 bbWeight=8 PerfScore 146.00 +G_M46810_IG35: + mov rbx, gword ptr [rbp-0x78] + jmp G_M46810_IG39 + ;; size=9 bbWeight=4 PerfScore 12.00 G_M46810_IG36: - mov rax, gword ptr [rbp-0x78] + mov rax, gword ptr [rbp-0x80] mov gword ptr [rsp], rax mov gword ptr [rsp+0x08], r13 movzx rdi, r14b mov dword ptr [rsp+0x10], edi - mov r11, gword ptr [rbp-0x80] + mov r11, gword ptr [rbp-0x88] mov gword ptr [rsp+0x18], r11 mov rcx, gword ptr [rbp+0x28] mov gword ptr [rsp+0x20], rcx - mov rdi, gword ptr [rbp-0x90] - mov rsi, gword ptr [rbp-0x98] + mov rdi, gword ptr [rbp-0x98] + mov rsi, gword ptr [rbp-0xA0] mov edx, dword ptr [rbp-0x50] mov r8, r12 mov r9d, r15d mov ecx, 1 - mov rax, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) - call [rax]Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) + mov rbx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) + call [rbx]Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) + mov rbx, gword ptr [rbp-0x78] jmp SHORT G_M46810_IG39 - ;; size=81 bbWeight=8 PerfScore 138.00 + ;; size=88 bbWeight=8 PerfScore 146.00 G_M46810_IG37: mov rax, bword ptr [rbp+0x20] mov edi, dword ptr [rax] add edi, 1 jo G_M46810_IG53 mov bword ptr [rbp+0x20], rax mov dword ptr [rax], edi mov dword ptr [rbp-0x2C], r10d jmp SHORT G_M46810_IG39 ;; size=27 bbWeight=8 PerfScore 74.00 G_M46810_IG38: mov rcx, bword ptr [rbp+0x18] mov edi, dword ptr [rcx] add edi, 1 jo G_M46810_IG53 mov bword ptr [rbp+0x18], rcx mov dword ptr [rcx], edi ;; size=21 bbWeight=8 PerfScore 50.00 G_M46810_IG39: mov edx, dword ptr [rbp-0x34] add edx, 1 jo G_M46810_IG53 cmp dword ptr [rbp-0x64], edx jle SHORT G_M46810_IG42 ;; size=17 bbWeight=32 PerfScore 168.00 G_M46810_IG40: mov dword ptr [rbp-0x34], edx mov edi, edx mov rdi, gword ptr [rbx+8*rdi+0x10] - mov r8, qword ptr [rdi] - mov r8, qword ptr [r8+0x40] - call [r8+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this - mov rcx, gword ptr [rbp-0x88] + mov rax, qword ptr [rdi] + mov rax, qword ptr [rax+0x40] + call [rax+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this + mov rcx, gword ptr [rbp-0x90] cmp rax, rcx je G_M46810_IG10 - ;; size=37 bbWeight=16 PerfScore 200.00 + ;; size=36 bbWeight=16 PerfScore 200.00 G_M46810_IG41: mov edx, dword ptr [rbp-0x34] ;; size=3 bbWeight=8 PerfScore 8.00 G_M46810_IG42: - mov r8d, dword ptr [rbp-0x30] - test r8d, r8d + mov ecx, dword ptr [rbp-0x30] + test ecx, ecx je G_M46810_IG14 mov esi, dword ptr [rbp-0x64] cmp esi, edx - mov dword ptr [rbp-0x30], r8d - mov ecx, esi + mov dword ptr [rbp-0x30], ecx jg G_M46810_IG07 jmp G_M46810_IG14 - ;; size=35 bbWeight=4 PerfScore 31.00 + ;; size=30 bbWeight=4 PerfScore 30.00 G_M46810_IG43: - mov rdi, gword ptr [r15+0x08] + mov rdi, gword ptr [r12+0x08] mov rsi, rdi mov eax, dword ptr [rsi+0x08] cmp ebx, eax jae G_M46810_IG54 mov ecx, ebx cmp gword ptr [rsi+8*rcx+0x10], 0 jne SHORT G_M46810_IG48 - ;; size=28 bbWeight=4 PerfScore 39.00 + ;; size=29 bbWeight=4 PerfScore 39.00 G_M46810_IG44: mov esi, ebx add esi, 1 jo SHORT G_M46810_IG53 jmp SHORT G_M46810_IG46 ;; size=9 bbWeight=2 PerfScore 7.00 G_M46810_IG45: add esi, 1 jo SHORT G_M46810_IG53 ;; size=5 bbWeight=8 PerfScore 10.00 G_M46810_IG46: cmp esi, edx jge SHORT G_M46810_IG47 jae SHORT G_M46810_IG52 mov rcx, rdi cmp esi, eax jae SHORT G_M46810_IG54 cmp gword ptr [rcx+8*rsi+0x10], 0 je SHORT G_M46810_IG45 ;; size=21 bbWeight=16 PerfScore 124.00 G_M46810_IG47: sub esi, ebx jo SHORT G_M46810_IG53 mov edx, esi - mov rdi, r15 + mov rdi, r12 mov esi, ebx mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:RemoveRange(int,int):this call [rax]System.Collections.Generic.List`1[System.__Canon]:RemoveRange(int,int):this ;; size=23 bbWeight=2 PerfScore 10.50 G_M46810_IG48: add ebx, 1 jo SHORT G_M46810_IG53 - cmp ebx, dword ptr [r15+0x10] + cmp ebx, dword ptr [r12+0x10] jl G_M46810_IG15 - ;; size=15 bbWeight=4 PerfScore 21.00 + ;; size=16 bbWeight=4 PerfScore 21.00 G_M46810_IG49: - mov rax, r15 + mov rax, r12 ;; size=3 bbWeight=1 PerfScore 0.25 G_M46810_IG50: - add rsp, 184 + add rsp, 200 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=1 PerfScore 4.25 G_M46810_IG51: mov rdi, 0xD1FFAB1E ; Microsoft.VisualBasic.CompilerServices.Symbols call CORINFO_HELP_GET_GCSTATIC_BASE - jmp G_M46810_IG20 + jmp G_M46810_IG22 ;; size=20 bbWeight=0 PerfScore 0.00 G_M46810_IG52: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M46810_IG53: call CORINFO_HELP_OVERFLOW int3 ;; size=6 bbWeight=0 PerfScore 0.00 G_M46810_IG54: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -RWD00 dd G_M46810_IG19 - G_M46810_IG02 - dd G_M46810_IG17 - G_M46810_IG02 +RWD00 dd G_M46810_IG21 - G_M46810_IG02 + dd G_M46810_IG20 - G_M46810_IG02 + dd G_M46810_IG39 - G_M46810_IG02 + dd G_M46810_IG20 - G_M46810_IG02 + dd G_M46810_IG39 - G_M46810_IG02 + dd G_M46810_IG39 - G_M46810_IG02 + dd G_M46810_IG39 - G_M46810_IG02 + dd G_M46810_IG21 - G_M46810_IG02 + dd G_M46810_IG39 - G_M46810_IG02 + dd G_M46810_IG39 - G_M46810_IG02 + dd G_M46810_IG39 - G_M46810_IG02 + dd G_M46810_IG39 - G_M46810_IG02 + dd G_M46810_IG39 - G_M46810_IG02 + dd G_M46810_IG39 - G_M46810_IG02 dd G_M46810_IG39 - G_M46810_IG02 dd G_M46810_IG17 - G_M46810_IG02 -; Total bytes of code 1522, prolog size 60, PerfScore 3034.61, instruction count 377, allocated bytes for code 1522 (MethodHash=dba74925) for method Microsoft.VisualBasic.CompilerServices.OverloadResolution:CollectOverloadCandidates(System.Reflection.MemberInfo[],System.Object[],int,System.String[],System.Type[],ubyte,System.Type,byref,byref,Microsoft.VisualBasic.CompilerServices.Symbols+Container):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] (FullOpts) +; Total bytes of code 1603, prolog size 60, PerfScore 3138.21, instruction count 390, allocated bytes for code 1603 (MethodHash=dba74925) for method Microsoft.VisualBasic.CompilerServices.OverloadResolution:CollectOverloadCandidates(System.Reflection.MemberInfo[],System.Object[],int,System.String[],System.Type[],ubyte,System.Type,byref,byref,Microsoft.VisualBasic.CompilerServices.Symbols+Container):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] (FullOpts) ; ============================================================ ```
26 (8.72 % of base) - System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte ```diff ; Assembly listing for method System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):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; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T04] ( 4, 8 ) long -> rdi single-def ; V01 arg1 [V01,T00] ( 10, 23.50) int -> rsi ; V02 arg2 [V02,T10] ( 4, 3.50) byref -> rdx single-def ; V03 arg3 [V03,T12] ( 3, 2.25) ubyte -> rcx single-def ; V04 arg4 [V04,T09] ( 3, 4 ) ubyte -> r8 single-def ; V05 loc0 [V05,T11] ( 4, 5.50) int -> r9 ; V06 loc1 [V06,T03] ( 6, 11 ) int -> r10 ; V07 loc2 [V07,T06] ( 6, 9.50) ubyte -> r11 ; V08 loc3 [V08,T08] ( 4, 7 ) ubyte -> rbx ; V09 loc4 [V09,T01] ( 9, 22.00) ushort -> rax ;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V11 tmp1 [V11,T14] ( 3, 3 ) int -> r11 "dup spill" ;* V12 tmp2 [V12 ] ( 0, 0 ) int -> zero-ref ; V13 tmp3 [V13,T15] ( 2, 2 ) int -> rax "Single return block return value" ; V14 cse0 [V14,T05] ( 3, 10 ) int -> r14 "CSE #05: aggressive" ; V15 cse1 [V15,T07] ( 4, 8 ) int -> r15 "CSE #02: aggressive" -; V16 cse2 [V16,T13] ( 2, 4.25) int -> rcx hoist "CSE #01: moderate" +; V16 cse2 [V16,T13] ( 2, 4.25) int -> [rbp-0x2C] spill-single-def hoist "CSE #01: moderate" ; V17 rat0 [V17,T02] ( 3, 11.99) int -> r13 "ReplaceWithLclVar is creating a new local variable" ; -; Lcl frame size = 0 +; Lcl frame size = 8 G_M57636_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - lea rbp, [rsp+0x28] - ;; size=15 bbWeight=1 PerfScore 6.50 + push rax + lea rbp, [rsp+0x30] + ;; size=16 bbWeight=1 PerfScore 7.50 G_M57636_IG02: xor r9d, r9d xor r10d, r10d xor r11d, r11d xor ebx, ebx mov r15d, dword ptr [rdx] cmp esi, r15d - jge G_M57636_IG12 + jge G_M57636_IG18 ;; size=23 bbWeight=1 PerfScore 4.25 G_M57636_IG03: movzx rcx, cl + mov dword ptr [rbp-0x2C], ecx align [0 bytes for IG04] - ;; size=3 bbWeight=0.25 PerfScore 0.06 + ;; size=6 bbWeight=0.25 PerfScore 0.31 G_M57636_IG04: movsxd rax, esi movzx r14, word ptr [rdi+2*rax] mov eax, r14d test ecx, ecx - jne SHORT G_M57636_IG07 - ;; size=15 bbWeight=4 PerfScore 15.00 + jne G_M57636_IG14 + ;; size=19 bbWeight=4 PerfScore 15.00 G_M57636_IG05: cmp eax, 47 - je G_M57636_IG12 + je G_M57636_IG18 cmp eax, 92 - je SHORT G_M57636_IG12 + je G_M57636_IG18 test r8b, r8b - je SHORT G_M57636_IG09 + je SHORT G_M57636_IG08 cmp eax, 63 - ja SHORT G_M57636_IG09 - ;; size=24 bbWeight=2 PerfScore 10.00 + ja SHORT G_M57636_IG08 + ;; size=28 bbWeight=2 PerfScore 10.00 G_M57636_IG06: - mov r13, 0xD1FFAB1E - bt r13, rax - jae SHORT G_M57636_IG12 - jmp SHORT G_M57636_IG09 - ;; size=18 bbWeight=2.00 PerfScore 7.48 -G_M57636_IG07: mov r13d, eax - sub r13d, 37 - cmp r13d, 56 - ja SHORT G_M57636_IG09 - ;; size=13 bbWeight=2 PerfScore 3.50 + lea r12, [reloc @RWD00] + mov r12d, dword ptr [r12+4*r13] + lea rcx, G_M57636_IG02 + add r12, rcx + jmp r12 + ;; size=27 bbWeight=2.00 PerfScore 11.98 +G_M57636_IG07: + mov ecx, dword ptr [rbp-0x2C] + ;; size=3 bbWeight=1.00 PerfScore 1.00 G_M57636_IG08: - mov r12, 0xD1FFAB1E - bt r12, r13 - jb SHORT G_M57636_IG12 - ;; size=16 bbWeight=2.00 PerfScore 3.49 -G_M57636_IG09: lea r13d, [rax-0x30] cmp r13d, 9 - jbe SHORT G_M57636_IG15 + ja SHORT G_M57636_IG16 ;; size=10 bbWeight=4 PerfScore 7.00 -G_M57636_IG10: - cmp eax, 46 - jne G_M57636_IG18 +G_M57636_IG09: test r11d, r11d - je G_M57636_IG18 - test r10d, r10d - setg r11b - movzx r11, r11b - test r11d, ebx - jne SHORT G_M57636_IG18 - inc r9d - xor r11d, r11d - xor r10d, r10d - xor ebx, ebx - ;; size=45 bbWeight=2 PerfScore 12.50 -G_M57636_IG11: - inc esi - cmp esi, r15d - jl G_M57636_IG04 - ;; size=11 bbWeight=4 PerfScore 6.00 -G_M57636_IG12: - cmp r9d, 3 - sete al - movzx rax, al - and r11d, eax - je SHORT G_M57636_IG13 - mov dword ptr [rdx], esi - ;; size=17 bbWeight=0.50 PerfScore 1.88 -G_M57636_IG13: - movzx rax, r11b - ;; size=4 bbWeight=0.50 PerfScore 0.12 -G_M57636_IG14: - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=11 bbWeight=0.50 PerfScore 2.00 -G_M57636_IG15: - test r11d, r11d - jne SHORT G_M57636_IG17 + jne SHORT G_M57636_IG11 cmp eax, 48 - jne SHORT G_M57636_IG17 + jne SHORT G_M57636_IG11 lea r11d, [rsi+0x01] cmp r11d, r15d - jge SHORT G_M57636_IG16 + jge SHORT G_M57636_IG10 lea eax, [rsi+0x01] cdqe cmp word ptr [rdi+2*rax], 48 - je SHORT G_M57636_IG18 + je SHORT G_M57636_IG12 ;; size=31 bbWeight=2 PerfScore 18.00 -G_M57636_IG16: +G_M57636_IG10: mov ebx, 1 ;; size=5 bbWeight=2 PerfScore 0.50 -G_M57636_IG17: +G_M57636_IG11: mov r11d, 1 lea r10d, [r10+4*r10] lea r10d, [r14+2*r10-0x30] cmp r10d, 255 - jle SHORT G_M57636_IG11 + jle SHORT G_M57636_IG17 ;; size=24 bbWeight=2 PerfScore 6.00 -G_M57636_IG18: +G_M57636_IG12: xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M57636_IG19: +G_M57636_IG13: + add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret - ;; size=11 bbWeight=0.50 PerfScore 2.00 + ;; size=15 bbWeight=0.50 PerfScore 2.12 +G_M57636_IG14: + mov r13d, eax + sub r13d, 37 + cmp r13d, 56 + ja SHORT G_M57636_IG08 + ;; size=13 bbWeight=2 PerfScore 3.50 +G_M57636_IG15: + mov r12, 0xD1FFAB1E + bt r12, r13 + jb SHORT G_M57636_IG18 + jmp SHORT G_M57636_IG08 + ;; size=18 bbWeight=2.00 PerfScore 7.48 +G_M57636_IG16: + cmp eax, 46 + jne SHORT G_M57636_IG12 + test r11d, r11d + je SHORT G_M57636_IG12 + test r10d, r10d + setg r11b + movzx r11, r11b + test r11d, ebx + jne SHORT G_M57636_IG12 + inc r9d + xor r11d, r11d + xor r10d, r10d + xor ebx, ebx + ;; size=37 bbWeight=2 PerfScore 12.50 +G_M57636_IG17: + inc esi + cmp esi, r15d + jl G_M57636_IG04 + ;; size=11 bbWeight=4 PerfScore 6.00 +G_M57636_IG18: + cmp r9d, 3 + sete al + movzx rax, al + and r11d, eax + je SHORT G_M57636_IG19 + mov dword ptr [rdx], esi + ;; size=17 bbWeight=0.50 PerfScore 1.88 +G_M57636_IG19: + movzx rax, r11b + ;; size=4 bbWeight=0.50 PerfScore 0.12 +G_M57636_IG20: + add rsp, 8 + pop rbx + pop r12 + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=15 bbWeight=0.50 PerfScore 2.12 +RWD00 dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG18 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG18 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG07 - G_M57636_IG02 + dd G_M57636_IG18 - G_M57636_IG02 -; Total bytes of code 298, prolog size 15, PerfScore 106.41, instruction count 98, allocated bytes for code 298 (MethodHash=dbf31edb) for method System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts) + +; Total bytes of code 324, prolog size 16, PerfScore 117.39, instruction count 106, allocated bytes for code 324 (MethodHash=dbf31edb) for method System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):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/4a3a7550d311d988ac4d6f92fb8711c3

MihuBot commented 1 month ago

Top method improvements

-140 (-13.42 % of base) - Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GenerateBinaryOperator(Microsoft.CSharp.RuntimeBinder.Semantics.ExprCall):System.Linq.Expressions.Expression:this ```diff ; Assembly listing for method Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GenerateBinaryOperator(Microsoft.CSharp.RuntimeBinder.Semantics.ExprCall):System.Linq.Expressions.Expression: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; 25 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T03] ( 4, 4 ) ref -> rbx this class-hnd single-def ; V01 arg1 [V01,T04] ( 4, 4 ) ref -> r15 class-hnd single-def ; V02 loc0 [V02,T07] ( 3, 3 ) ref -> r14 class-hnd exact single-def ; V03 loc1 [V03,T00] ( 22, 11.50) ref -> r13 class-hnd single-def ; V04 loc2 [V04,T01] ( 22, 11.50) ref -> rax class-hnd single-def -; V05 loc3 [V05,T05] ( 8, 5 ) int -> rbx +; V05 loc3 [V05,T05] ( 7, 4.50) int -> rbx ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref "Single return block return value" ; V08 rat0 [V08,T06] ( 3, 4 ) ref -> rsi "Spilling to split statement for tree" ; V09 rat1 [V09,T02] ( 4, 7 ) ref -> r14 "replacement local" ; V10 rat2 [V10,T12] ( 3, 2 ) long -> rdi "CSE for expectedClsNode" -; V11 rat3 [V11,T08] ( 3, 2.94) int -> r15 "ReplaceWithLclVar is creating a new local variable" -; V12 rat4 [V12,T10] ( 3, 2.83) int -> rbx "ReplaceWithLclVar is creating a new local variable" -; V13 rat5 [V13,T09] ( 3, 2.88) int -> r14 "ReplaceWithLclVar is creating a new local variable" -; V14 rat6 [V14,T11] ( 3, 2.83) int -> r12 "ReplaceWithLclVar is creating a new local variable" +; V11 rat3 [V11,T08] ( 3, 2.94) int -> rdi "ReplaceWithLclVar is creating a new local variable" +; V12 rat4 [V12,T11] ( 3, 2.83) int -> rbx "ReplaceWithLclVar is creating a new local variable" +; V13 rat5 [V13,T10] ( 3, 2.88) int -> r15 "ReplaceWithLclVar is creating a new local variable" +; V14 rat6 [V14,T09] ( 3, 2.92) int -> rbx "ReplaceWithLclVar is creating a new local variable" ; -; Lcl frame size = 8 +; Lcl frame size = 0 G_M50533_IG01: push rbp push r15 push r14 push r13 - push r12 push rbx - push rax - lea rbp, [rsp+0x30] + lea rbp, [rsp+0x20] mov rbx, rdi mov r15, rsi - ;; size=22 bbWeight=1 PerfScore 8.00 + ;; size=19 bbWeight=1 PerfScore 6.00 G_M50533_IG02: mov rsi, gword ptr [r15+0x40] mov r14, rsi test r14, r14 je SHORT G_M50533_IG04 ;; size=12 bbWeight=1 PerfScore 3.50 G_M50533_IG03: mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExprList cmp qword ptr [r14], rdi jne G_M50533_IG56 ;; size=19 bbWeight=0.50 PerfScore 2.12 G_M50533_IG04: mov rsi, gword ptr [r14+0x38] mov rdi, rbx mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GetExpression(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):System.Linq.Expressions.Expression:this call [rax]Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GetExpression(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):System.Linq.Expressions.Expression:this mov r13, rax mov rsi, gword ptr [r14+0x40] mov rdi, rbx mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GetExpression(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):System.Linq.Expressions.Expression:this call [rax]Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GetExpression(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):System.Linq.Expressions.Expression:this mov ebx, dword ptr [r15+0x60] cmp ebx, 30 jle G_M50533_IG35 ;; size=54 bbWeight=1 PerfScore 14.50 G_M50533_IG05: cmp ebx, 32 jne SHORT G_M50533_IG07 mov rdi, r13 mov rsi, rax xor edx, edx xor rcx, rcx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:GreaterThanOrEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=25 bbWeight=0.50 PerfScore 1.25 G_M50533_IG06: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:GreaterThanOrEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG07: - lea r15d, [rbx-0x23] - cmp r15d, 16 + lea edi, [rbx-0x23] + cmp edi, 16 ja SHORT G_M50533_IG09 - ;; size=10 bbWeight=0.50 PerfScore 0.88 + ;; size=8 bbWeight=0.50 PerfScore 0.88 G_M50533_IG08: - mov edi, r15d + mov edi, edi lea rsi, [reloc @RWD00] mov esi, dword ptr [rsi+4*rdi] lea rdx, G_M50533_IG02 add rsi, rdx jmp rsi - ;; size=25 bbWeight=0.47 PerfScore 2.83 + ;; size=24 bbWeight=0.47 PerfScore 2.83 G_M50533_IG09: add ebx, -54 cmp ebx, 4 ja G_M50533_IG55 ;; size=12 bbWeight=0.50 PerfScore 0.75 G_M50533_IG10: mov edi, ebx lea rsi, [reloc @RWD68] mov esi, dword ptr [rsi+4*rdi] lea rdx, G_M50533_IG02 add rsi, rdx jmp rsi ;; size=24 bbWeight=0.42 PerfScore 2.50 G_M50533_IG11: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:SubtractChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG12: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:SubtractChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG13: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Subtract(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG14: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:Subtract(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG15: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:RightShift(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG16: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:RightShift(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG17: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:OrElse(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG18: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:OrElse(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG19: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Or(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG20: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:Or(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG21: mov rdi, r13 mov rsi, rax xor edx, edx xor rcx, rcx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:NotEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=20 bbWeight=0.50 PerfScore 0.62 G_M50533_IG22: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:NotEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG23: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:MultiplyChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG24: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:MultiplyChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG25: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Multiply(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG26: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:Multiply(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG27: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Modulo(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG28: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:Modulo(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG29: mov rdi, r13 mov rsi, rax xor edx, edx xor rcx, rcx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:LessThanOrEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=20 bbWeight=0.50 PerfScore 0.62 G_M50533_IG30: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:LessThanOrEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG31: mov rdi, r13 mov rsi, rax xor edx, edx xor rcx, rcx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:LessThan(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=20 bbWeight=0.50 PerfScore 0.62 G_M50533_IG32: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:LessThan(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG33: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:LeftShift(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG34: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:LeftShift(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG35: - lea r14d, [rbx-0x07] - cmp r14d, 6 + lea r15d, [rbx-0x07] + cmp r15d, 6 ja SHORT G_M50533_IG37 ;; size=10 bbWeight=0.50 PerfScore 0.88 G_M50533_IG36: - mov edi, r14d + mov edi, r15d lea rsi, [reloc @RWD88] mov esi, dword ptr [rsi+4*rdi] lea rdx, G_M50533_IG02 add rsi, rdx jmp rsi ;; size=25 bbWeight=0.44 PerfScore 2.62 G_M50533_IG37: - lea r12d, [rbx-0x17] - cmp r12d, 4 - ja SHORT G_M50533_IG39 - ;; size=10 bbWeight=0.50 PerfScore 0.88 + add ebx, -23 + cmp ebx, 7 + ja G_M50533_IG55 + ;; size=12 bbWeight=0.50 PerfScore 0.75 G_M50533_IG38: - mov edi, r12d + mov edi, ebx lea rsi, [reloc @RWD116] mov esi, dword ptr [rsi+4*rdi] lea rdx, G_M50533_IG02 add rsi, rdx jmp rsi - ;; size=25 bbWeight=0.42 PerfScore 2.50 + ;; size=24 bbWeight=0.46 PerfScore 2.75 G_M50533_IG39: - cmp ebx, 30 - jne G_M50533_IG55 mov rdi, r13 mov rsi, rax xor edx, edx xor rcx, rcx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:GreaterThan(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=29 bbWeight=0.50 PerfScore 1.25 + ;; size=20 bbWeight=0.50 PerfScore 0.62 G_M50533_IG40: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:GreaterThan(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG41: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:ExclusiveOr(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG42: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:ExclusiveOr(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG43: mov rdi, r13 mov rsi, rax xor edx, edx xor rcx, rcx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Equal(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=20 bbWeight=0.50 PerfScore 0.62 G_M50533_IG44: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:Equal(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG45: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Divide(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG46: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:Divide(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG47: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:AndAlso(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG48: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:AndAlso(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG49: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:And(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG50: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:And(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG51: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:AddChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG52: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:AddChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG53: mov rdi, r13 mov rsi, rax xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Add(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression ;; size=18 bbWeight=0.50 PerfScore 0.50 G_M50533_IG54: - add rsp, 8 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp tail.jmp [rax]System.Linq.Expressions.Expression:Add(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression - ;; size=17 bbWeight=0.50 PerfScore 2.62 + ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M50533_IG55: mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Error:InternalCompilerError():System.Exception call [rax]Microsoft.CSharp.RuntimeBinder.Error:InternalCompilerError():System.Exception mov rdi, rax call CORINFO_HELP_THROW int3 ;; size=21 bbWeight=0 PerfScore 0.00 G_M50533_IG56: mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS call [rax]CORINFO_HELP_CHKCASTCLASS int3 ;; size=13 bbWeight=0 PerfScore 0.00 RWD00 dd G_M50533_IG33 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG31 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG29 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG27 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG25 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG23 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG21 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG19 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG17 - G_M50533_IG02 RWD68 dd G_M50533_IG15 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG13 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG11 - G_M50533_IG02 RWD88 dd G_M50533_IG53 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG51 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG49 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG47 - G_M50533_IG02 RWD116 dd G_M50533_IG45 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG43 - G_M50533_IG02 dd G_M50533_IG55 - G_M50533_IG02 dd G_M50533_IG41 - G_M50533_IG02 + dd G_M50533_IG55 - G_M50533_IG02 + dd G_M50533_IG55 - G_M50533_IG02 + dd G_M50533_IG39 - G_M50533_IG02 -; Total bytes of code 1043, prolog size 16, PerfScore 109.58, instruction count 335, allocated bytes for code 1043 (MethodHash=8c4a3a9a) for method Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GenerateBinaryOperator(Microsoft.CSharp.RuntimeBinder.Semantics.ExprCall):System.Linq.Expressions.Expression:this (FullOpts) +; Total bytes of code 903, prolog size 13, PerfScore 99.21, instruction count 289, allocated bytes for code 903 (MethodHash=8c4a3a9a) for method Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GenerateBinaryOperator(Microsoft.CSharp.RuntimeBinder.Semantics.ExprCall):System.Linq.Expressions.Expression:this (FullOpts) ; ============================================================ ```
-100 (-18.80 % of base) - System.Text.RegularExpressions.RegexNode:Reduce():System.Text.RegularExpressions.RegexNode:this ```diff ; Assembly listing for method System.Text.RegularExpressions.RegexNode:Reduce():System.Text.RegularExpressions.RegexNode: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] ( 15, 9 ) ref -> rdi this class-hnd single-def -; V01 loc0 [V01,T01] ( 11, 6 ) ref -> rdi class-hnd -; V02 loc1 [V02,T02] ( 7, 4.50) ubyte -> rax +; V01 loc0 [V01,T01] ( 11, 6 ) ref -> rax class-hnd +; V02 loc1 [V02,T02] ( 6, 4 ) ubyte -> rax ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive" -; V05 rat0 [V05,T04] ( 3, 2.92) int -> rbx "ReplaceWithLclVar is creating a new local variable" +; V05 rat0 [V05,T04] ( 3, 2.99) int -> rax "ReplaceWithLclVar is creating a new local variable" ; -; Lcl frame size = 8 +; Lcl frame size = 0 G_M64711_IG01: push rbp - push rbx - push rax - lea rbp, [rsp+0x10] - ;; size=8 bbWeight=1 PerfScore 3.50 + mov rbp, rsp + ;; size=4 bbWeight=1 PerfScore 1.25 G_M64711_IG02: movzx rax, byte ptr [rdi+0x2E] cmp eax, 13 je SHORT G_M64711_IG04 ;; size=9 bbWeight=1 PerfScore 3.25 G_M64711_IG03: and dword ptr [rdi+0x28], -2 ;; size=4 bbWeight=0.50 PerfScore 1.50 G_M64711_IG04: cmp eax, 8 - jbe G_M64711_IG17 + jbe G_M64711_IG16 ;; size=9 bbWeight=1 PerfScore 1.25 G_M64711_IG05: cmp eax, 11 - je G_M64711_IG18 - lea ebx, [rax-0x18] - cmp ebx, 10 + je G_M64711_IG17 + add eax, -24 + cmp eax, 21 ja SHORT G_M64711_IG07 - ;; size=17 bbWeight=0.50 PerfScore 1.50 + ;; size=17 bbWeight=0.50 PerfScore 1.38 G_M64711_IG06: - mov eax, ebx + mov eax, eax lea rcx, [reloc @RWD00] mov ecx, dword ptr [rcx+4*rax] lea rdx, G_M64711_IG02 add rcx, rdx jmp rcx - ;; size=24 bbWeight=0.46 PerfScore 2.75 + ;; size=24 bbWeight=0.49 PerfScore 2.97 G_M64711_IG07: - cmp eax, 45 - je G_M64711_IG18 - ;; size=9 bbWeight=0.50 PerfScore 0.62 + mov rax, rdi + jmp G_M64711_IG18 + ;; size=8 bbWeight=0.50 PerfScore 1.12 G_M64711_IG08: - jmp G_M64711_IG19 - ;; size=5 bbWeight=0.50 PerfScore 1.00 -G_M64711_IG09: mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceExpressionConditional():System.Text.RegularExpressions.RegexNode:this call [rax]System.Text.RegularExpressions.RegexNode:ReduceExpressionConditional():System.Text.RegularExpressions.RegexNode:this - mov rdi, rax - jmp G_M64711_IG19 - ;; size=20 bbWeight=0.50 PerfScore 2.75 -G_M64711_IG10: + jmp SHORT G_M64711_IG18 + ;; size=14 bbWeight=0.50 PerfScore 2.62 +G_M64711_IG09: mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceBackreferenceConditional():System.Text.RegularExpressions.RegexNode:this call [rax]System.Text.RegularExpressions.RegexNode:ReduceBackreferenceConditional():System.Text.RegularExpressions.RegexNode:this - mov rdi, rax - jmp G_M64711_IG19 - ;; size=20 bbWeight=0.50 PerfScore 2.75 -G_M64711_IG11: + jmp SHORT G_M64711_IG18 + ;; size=14 bbWeight=0.50 PerfScore 2.62 +G_M64711_IG10: mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceAtomic():System.Text.RegularExpressions.RegexNode:this call [rax]System.Text.RegularExpressions.RegexNode:ReduceAtomic():System.Text.RegularExpressions.RegexNode:this - mov rdi, rax - jmp SHORT G_M64711_IG19 - ;; size=17 bbWeight=0.50 PerfScore 2.75 -G_M64711_IG12: + jmp SHORT G_M64711_IG18 + ;; size=14 bbWeight=0.50 PerfScore 2.62 +G_M64711_IG11: mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceLookaround():System.Text.RegularExpressions.RegexNode:this call [rax]System.Text.RegularExpressions.RegexNode:ReduceLookaround():System.Text.RegularExpressions.RegexNode:this - mov rdi, rax - jmp SHORT G_M64711_IG19 - ;; size=17 bbWeight=0.50 PerfScore 2.75 -G_M64711_IG13: + jmp SHORT G_M64711_IG18 + ;; size=14 bbWeight=0.50 PerfScore 2.62 +G_M64711_IG12: mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceGroup():System.Text.RegularExpressions.RegexNode:this call [rax]System.Text.RegularExpressions.RegexNode:ReduceGroup():System.Text.RegularExpressions.RegexNode:this - mov rdi, rax - jmp SHORT G_M64711_IG19 - ;; size=17 bbWeight=0.50 PerfScore 2.75 -G_M64711_IG14: + jmp SHORT G_M64711_IG18 + ;; size=14 bbWeight=0.50 PerfScore 2.62 +G_M64711_IG13: mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceLoops():System.Text.RegularExpressions.RegexNode:this call [rax]System.Text.RegularExpressions.RegexNode:ReduceLoops():System.Text.RegularExpressions.RegexNode:this - mov rdi, rax - jmp SHORT G_M64711_IG19 - ;; size=17 bbWeight=0.50 PerfScore 2.75 -G_M64711_IG15: + jmp SHORT G_M64711_IG18 + ;; size=14 bbWeight=0.50 PerfScore 2.62 +G_M64711_IG14: mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceConcatenation():System.Text.RegularExpressions.RegexNode:this call [rax]System.Text.RegularExpressions.RegexNode:ReduceConcatenation():System.Text.RegularExpressions.RegexNode:this - mov rdi, rax - jmp SHORT G_M64711_IG19 - ;; size=17 bbWeight=0.50 PerfScore 2.75 -G_M64711_IG16: + jmp SHORT G_M64711_IG18 + ;; size=14 bbWeight=0.50 PerfScore 2.62 +G_M64711_IG15: mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceAlternation():System.Text.RegularExpressions.RegexNode:this call [rax]System.Text.RegularExpressions.RegexNode:ReduceAlternation():System.Text.RegularExpressions.RegexNode:this - mov rdi, rax - jmp SHORT G_M64711_IG19 - ;; size=17 bbWeight=0.50 PerfScore 2.75 -G_M64711_IG17: + jmp SHORT G_M64711_IG18 + ;; size=14 bbWeight=0.50 PerfScore 2.62 +G_M64711_IG16: cmp eax, 5 - je SHORT G_M64711_IG18 + je SHORT G_M64711_IG17 cmp eax, 8 - jne G_M64711_IG08 + jne G_M64711_IG07 ;; size=14 bbWeight=0.50 PerfScore 1.25 -G_M64711_IG18: +G_M64711_IG17: mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceSet():System.Text.RegularExpressions.RegexNode:this call [rax]System.Text.RegularExpressions.RegexNode:ReduceSet():System.Text.RegularExpressions.RegexNode:this - mov rdi, rax - ;; size=15 bbWeight=0.50 PerfScore 1.75 + ;; size=12 bbWeight=0.50 PerfScore 1.62 +G_M64711_IG18: + nop + ;; size=1 bbWeight=1 PerfScore 0.25 G_M64711_IG19: - mov rax, rdi - ;; size=3 bbWeight=1 PerfScore 0.25 -G_M64711_IG20: - add rsp, 8 - pop rbx pop rbp ret - ;; size=7 bbWeight=1 PerfScore 2.25 -RWD00 dd G_M64711_IG16 - G_M64711_IG02 - dd G_M64711_IG15 - G_M64711_IG02 + ;; size=2 bbWeight=1 PerfScore 1.50 +RWD00 dd G_M64711_IG15 - G_M64711_IG02 dd G_M64711_IG14 - G_M64711_IG02 - dd G_M64711_IG14 - G_M64711_IG02 - dd G_M64711_IG08 - G_M64711_IG02 dd G_M64711_IG13 - G_M64711_IG02 + dd G_M64711_IG13 - G_M64711_IG02 + dd G_M64711_IG07 - G_M64711_IG02 dd G_M64711_IG12 - G_M64711_IG02 - dd G_M64711_IG12 - G_M64711_IG02 + dd G_M64711_IG11 - G_M64711_IG02 dd G_M64711_IG11 - G_M64711_IG02 dd G_M64711_IG10 - G_M64711_IG02 dd G_M64711_IG09 - G_M64711_IG02 + dd G_M64711_IG08 - G_M64711_IG02 + dd G_M64711_IG07 - G_M64711_IG02 + dd G_M64711_IG07 - G_M64711_IG02 + dd G_M64711_IG07 - G_M64711_IG02 + dd G_M64711_IG07 - G_M64711_IG02 + dd G_M64711_IG07 - G_M64711_IG02 + dd G_M64711_IG07 - G_M64711_IG02 + dd G_M64711_IG07 - G_M64711_IG02 + dd G_M64711_IG07 - G_M64711_IG02 + dd G_M64711_IG07 - G_M64711_IG02 + dd G_M64711_IG07 - G_M64711_IG02 + dd G_M64711_IG17 - G_M64711_IG02 -; Total bytes of code 266, prolog size 8, PerfScore 42.88, instruction count 68, allocated bytes for code 266 (MethodHash=41750338) for method System.Text.RegularExpressions.RegexNode:Reduce():System.Text.RegularExpressions.RegexNode:this (FullOpts) +; Total bytes of code 216, prolog size 4, PerfScore 38.34, instruction count 54, allocated bytes for code 216 (MethodHash=41750338) for method System.Text.RegularExpressions.RegexNode:Reduce():System.Text.RegularExpressions.RegexNode:this (FullOpts) ; ============================================================ ```
-50 (-17.99 % of base) - System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):ubyte ```diff ; Assembly listing for method System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):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; 2 single block inlinees; 3 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ; V01 arg1 [V01,T10] ( 4, 3 ) byref -> rbx single-def ; V02 arg2 [V02,T11] ( 4, 3 ) byref -> r15 single-def ; V03 arg3 [V03,T12] ( 3, 3 ) byref -> r8 single-def ; V04 loc0 [V04,T07] ( 7, 12.25) int -> r13 ; V05 loc1 [V05,T13] ( 6, 4.25) int -> r14 ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V07 tmp1 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" -; V08 tmp2 [V08,T04] ( 3, 20 ) ushort -> rdx "Inlining Arg" +; V08 tmp2 [V08,T05] ( 2, 16 ) ushort -> rax "Inlining Arg" ;* V09 tmp3 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" -; V10 tmp4 [V10,T05] ( 3, 20 ) ushort -> rdx "Inlining Arg" +; V10 tmp4 [V10,T06] ( 2, 16 ) ushort -> r9 "Inlining Arg" ;* V11 tmp5 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ; V12 tmp6 [V12,T09] ( 3, 6 ) int -> rdx "Inlining Arg" ;* V13 tmp7 [V13 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V14 tmp8 [V14 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V15 tmp9 [V15,T16] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" ; V16 tmp10 [V16,T08] ( 4, 10 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP -; V17 tmp11 [V17,T06] ( 5, 15 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP +; V17 tmp11 [V17,T04] ( 5, 15 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP ;* V18 tmp12 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP ;* V19 tmp13 [V19 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP ; V20 tmp14 [V20,T14] ( 2, 2 ) byref -> rsi single-def "field V13._reference (fldOffset=0x0)" P-INDEP ; V21 tmp15 [V21,T15] ( 2, 2 ) int -> rdx "field V13._length (fldOffset=0x8)" P-INDEP ; V22 rat0 [V22,T03] ( 7, 21.75) long -> r13 "Widened IV V04" ; V23 rat1 [V23,T00] ( 8, 25.75) long -> r14 "Widened IV V05" -; V24 rat2 [V24,T01] ( 3, 22.67) int -> r12 "ReplaceWithLclVar is creating a new local variable" -; V25 rat3 [V25,T02] ( 3, 22.67) int -> rax "ReplaceWithLclVar is creating a new local variable" +; V24 rat2 [V24,T01] ( 3, 23.84) int -> rax "ReplaceWithLclVar is creating a new local variable" +; V25 rat3 [V25,T02] ( 3, 23.84) int -> r9 "ReplaceWithLclVar is creating a new local variable" ; -; Lcl frame size = 8 +; Lcl frame size = 0 G_M60008_IG01: push rbp push r15 push r14 push r13 - push r12 push rbx - push rax - lea rbp, [rsp+0x30] + lea rbp, [rsp+0x20] mov rbx, rdx mov r15, rcx - ;; size=22 bbWeight=1 PerfScore 8.00 + ;; size=19 bbWeight=1 PerfScore 6.00 G_M60008_IG02: lea r14d, [rsi-0x01] xor r13d, r13d jmp SHORT G_M60008_IG04 - align [1 bytes for IG03] - ;; size=10 bbWeight=1 PerfScore 2.75 + align [4 bytes for IG03] + ;; size=13 bbWeight=1 PerfScore 2.75 G_M60008_IG03: - lea edx, [r13+0x01] - mov r13d, edx + lea eax, [r13+0x01] + mov r13d, eax ;; size=7 bbWeight=4 PerfScore 3.00 G_M60008_IG04: cmp r13d, esi jl SHORT G_M60008_IG06 ;; size=5 bbWeight=8 PerfScore 10.00 G_M60008_IG05: - jmp SHORT G_M60008_IG11 - align [0 bytes for IG10] + jmp SHORT G_M60008_IG10 + align [0 bytes for IG09] ;; size=2 bbWeight=0.25 PerfScore 0.50 G_M60008_IG06: - movzx rdx, word ptr [rdi+2*r13] - lea r12d, [rdx-0x09] - cmp r12d, 4 + movzx rax, word ptr [rdi+2*r13] + add eax, -9 + cmp eax, 23 ja SHORT G_M60008_IG08 - ;; size=15 bbWeight=4 PerfScore 15.00 + ;; size=13 bbWeight=4 PerfScore 14.00 G_M60008_IG07: - mov eax, r12d - lea rcx, [reloc @RWD00] - mov ecx, dword ptr [rcx+4*rax] - lea rdx, G_M60008_IG02 - add rcx, rdx - jmp rcx - ;; size=25 bbWeight=3.33 PerfScore 20.00 + mov ecx, 0xD1FFAB1E + bt ecx, eax + jb SHORT G_M60008_IG03 + ;; size=10 bbWeight=3.92 PerfScore 6.86 G_M60008_IG08: - cmp edx, 32 - je SHORT G_M60008_IG03 - ;; size=5 bbWeight=2 PerfScore 2.50 -G_M60008_IG09: - jmp SHORT G_M60008_IG11 + jmp SHORT G_M60008_IG10 ;; size=2 bbWeight=0.50 PerfScore 1.00 -G_M60008_IG10: - lea edx, [r14-0x01] - mov r14d, edx +G_M60008_IG09: + lea eax, [r14-0x01] + mov r14d, eax ;; size=7 bbWeight=4 PerfScore 3.00 -G_M60008_IG11: +G_M60008_IG10: cmp r14d, r13d - jg SHORT G_M60008_IG13 + jg SHORT G_M60008_IG12 ;; size=5 bbWeight=8 PerfScore 10.00 -G_M60008_IG12: - jmp SHORT G_M60008_IG16 +G_M60008_IG11: + jmp SHORT G_M60008_IG14 ;; size=2 bbWeight=0.25 PerfScore 0.50 -G_M60008_IG13: +G_M60008_IG12: cmp r14d, esi - jae G_M60008_IG23 - movzx rdx, word ptr [rdi+2*r14] - lea eax, [rdx-0x09] - cmp eax, 4 - ja SHORT G_M60008_IG15 - ;; size=22 bbWeight=4 PerfScore 20.00 + jae G_M60008_IG21 + movzx r9, word ptr [rdi+2*r14] + add r9d, -9 + cmp r9d, 23 + ja SHORT G_M60008_IG14 + ;; size=24 bbWeight=4 PerfScore 19.00 +G_M60008_IG13: + mov eax, 0xD1FFAB1E + bt eax, r9d + jb SHORT G_M60008_IG09 + ;; size=11 bbWeight=3.92 PerfScore 6.86 G_M60008_IG14: - mov eax, eax - lea rcx, [reloc @RWD20] - mov ecx, dword ptr [rcx+4*rax] - lea rdx, G_M60008_IG02 - add rcx, rdx - jmp rcx - ;; size=24 bbWeight=3.33 PerfScore 20.00 -G_M60008_IG15: - cmp edx, 32 - je SHORT G_M60008_IG10 - ;; size=5 bbWeight=2 PerfScore 2.50 -G_M60008_IG16: lea edx, [r14+0x01] sub edx, r13d mov ecx, r13d mov eax, edx add rcx, rax mov esi, esi cmp rcx, rsi - ja SHORT G_M60008_IG22 + ja SHORT G_M60008_IG20 mov esi, r13d lea rsi, bword ptr [rdi+2*rsi] xor edi, edi mov rcx, r8 mov rax, 0xD1FFAB1E ; code for System.Buffers.Text.Base64Helper:IsValid[ushort,System.Buffers.Text.Base64Helper+Base64CharValidatable](System.Buffers.Text.Base64Helper+Base64CharValidatable,System.ReadOnlySpan`1[ushort],byref):ubyte call [rax]System.Buffers.Text.Base64Helper:IsValid[ushort,System.Buffers.Text.Base64Helper+Base64CharValidatable](System.Buffers.Text.Base64Helper+Base64CharValidatable,System.ReadOnlySpan`1[ushort],byref):ubyte test eax, eax - jne SHORT G_M60008_IG20 + jne SHORT G_M60008_IG18 ;; size=50 bbWeight=1 PerfScore 8.75 -G_M60008_IG17: +G_M60008_IG15: xor eax, eax mov dword ptr [rbx], eax ;; size=4 bbWeight=0.50 PerfScore 0.62 -G_M60008_IG18: +G_M60008_IG16: mov dword ptr [r15], eax ;; size=3 bbWeight=0.50 PerfScore 0.50 -G_M60008_IG19: - add rsp, 8 +G_M60008_IG17: pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp ret - ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M60008_IG20: + ;; size=9 bbWeight=0.50 PerfScore 1.75 +G_M60008_IG18: mov dword ptr [rbx], r13d inc r14d mov dword ptr [r15], r14d mov eax, 1 ;; size=14 bbWeight=0.50 PerfScore 1.25 -G_M60008_IG21: - add rsp, 8 +G_M60008_IG19: pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp ret - ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M60008_IG22: + ;; size=9 bbWeight=0.50 PerfScore 1.75 +G_M60008_IG20: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M60008_IG23: +G_M60008_IG21: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -RWD00 dd G_M60008_IG03 - G_M60008_IG02 - dd G_M60008_IG03 - G_M60008_IG02 - dd G_M60008_IG09 - G_M60008_IG02 - dd G_M60008_IG09 - G_M60008_IG02 - dd G_M60008_IG03 - G_M60008_IG02 -RWD20 dd G_M60008_IG10 - G_M60008_IG02 - dd G_M60008_IG10 - G_M60008_IG02 - dd G_M60008_IG16 - G_M60008_IG02 - dd G_M60008_IG16 - G_M60008_IG02 - dd G_M60008_IG10 - G_M60008_IG02 - -; Total bytes of code 278, prolog size 22, PerfScore 134.12, instruction count 96, allocated bytes for code 278 (MethodHash=a4951597) for method System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):ubyte (FullOpts) +; Total bytes of code 228, prolog size 19, PerfScore 98.10, instruction count 80, allocated bytes for code 228 (MethodHash=a4951597) for method System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):ubyte (FullOpts) ; ============================================================ ```
-32 (-19.16 % of base) - System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte ```diff ; Assembly listing for method System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T07] ( 4, 3.25) ref -> rdi class-hnd single-def ;* V01 loc0 [V01,T09] ( 0, 0 ) int -> zero-ref -; V02 loc1 [V02,T00] ( 12, 28 ) ushort -> rdx +; V02 loc1 [V02,T00] ( 11, 26 ) ushort -> rdx ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 cse0 [V04,T08] ( 3, 2.25) int -> rcx "CSE #01: aggressive" ; V05 rat0 [V05,T01] ( 4, 12.25) byref -> rdi "Strength reduced derived IV" ; V06 rat1 [V06,T02] ( 4, 12.25) int -> rcx "Trip count IV" ; V07 rat2 [V07,T05] ( 2, 8 ) int -> rax "ReplaceWithLclVar is creating a new local variable" ; V08 rat3 [V08,T06] ( 2, 8 ) int -> rdx "ReplaceWithLclVar is creating a new local variable" -; V09 rat4 [V09,T03] ( 3, 11.60) int -> rsi "ReplaceWithLclVar is creating a new local variable" -; V10 rat5 [V10,T04] ( 3, 11.33) int -> r8 "ReplaceWithLclVar is creating a new local variable" +; V09 rat4 [V09,T04] ( 3, 11.60) int -> rsi "ReplaceWithLclVar is creating a new local variable" +; V10 rat5 [V10,T03] ( 3, 11.92) int -> rdx "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 0 G_M3909_IG01: push rbp mov rbp, rsp ;; size=4 bbWeight=1 PerfScore 1.25 G_M3909_IG02: mov ecx, dword ptr [rdi+0x08] test ecx, ecx - jle G_M3909_IG15 - ;; size=11 bbWeight=1 PerfScore 3.25 + jle SHORT G_M3909_IG14 + ;; size=7 bbWeight=1 PerfScore 3.25 G_M3909_IG03: add rdi, 12 align [0 bytes for IG04] ;; size=4 bbWeight=0.25 PerfScore 0.06 G_M3909_IG04: movzx rdx, word ptr [rdi] cmp edx, 47 jbe SHORT G_M3909_IG09 ;; size=8 bbWeight=4 PerfScore 13.00 G_M3909_IG05: cmp edx, 93 jbe SHORT G_M3909_IG08 cmp edx, 123 je SHORT G_M3909_IG06 cmp edx, 125 - jne SHORT G_M3909_IG14 + jne SHORT G_M3909_IG13 ;; size=15 bbWeight=2 PerfScore 7.50 G_M3909_IG06: mov eax, 1 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M3909_IG07: pop rbp ret ;; size=2 bbWeight=0.50 PerfScore 0.75 G_M3909_IG08: lea eax, [rdx-0x3A] cmp eax, 6 jbe SHORT G_M3909_IG06 add edx, -91 cmp edx, 2 - ja SHORT G_M3909_IG14 + ja SHORT G_M3909_IG13 jmp SHORT G_M3909_IG06 ;; size=18 bbWeight=2 PerfScore 10.50 G_M3909_IG09: cmp edx, 32 jbe SHORT G_M3909_IG11 cmp edx, 34 je SHORT G_M3909_IG06 lea esi, [rdx-0x27] cmp esi, 8 - ja SHORT G_M3909_IG14 + ja SHORT G_M3909_IG13 ;; size=18 bbWeight=2 PerfScore 8.50 G_M3909_IG10: - mov r8d, esi + mov edx, esi lea rax, [reloc @RWD00] - mov eax, dword ptr [rax+4*r8] - lea rdx, G_M3909_IG02 - add rax, rdx - jmp rax - ;; size=26 bbWeight=1.80 PerfScore 10.80 -G_M3909_IG11: - lea r8d, [rdx-0x09] - cmp r8d, 4 - ja SHORT G_M3909_IG13 - ;; size=10 bbWeight=2 PerfScore 3.50 -G_M3909_IG12: - mov eax, r8d - lea rdx, [reloc @RWD36] - mov edx, dword ptr [rdx+4*rax] + mov eax, dword ptr [rax+4*rdx] lea rsi, G_M3909_IG02 - add rdx, rsi - jmp rdx - ;; size=25 bbWeight=1.67 PerfScore 10.00 + add rax, rsi + jmp rax + ;; size=24 bbWeight=1.80 PerfScore 10.80 +G_M3909_IG11: + add edx, -9 + cmp edx, 23 + ja SHORT G_M3909_IG13 + ;; size=8 bbWeight=2 PerfScore 3.00 +G_M3909_IG12: + mov eax, 0xD1FFAB1E + bt eax, edx + jb SHORT G_M3909_IG06 + ;; size=10 bbWeight=1.96 PerfScore 3.43 G_M3909_IG13: - cmp edx, 32 - je SHORT G_M3909_IG06 - ;; size=5 bbWeight=2 PerfScore 2.50 -G_M3909_IG14: add rdi, 2 dec ecx - jne G_M3909_IG04 - ;; size=12 bbWeight=4 PerfScore 6.00 -G_M3909_IG15: + jne SHORT G_M3909_IG04 + ;; size=8 bbWeight=4 PerfScore 6.00 +G_M3909_IG14: xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M3909_IG16: +G_M3909_IG15: pop rbp ret ;; size=2 bbWeight=0.50 PerfScore 0.75 RWD00 dd G_M3909_IG06 - G_M3909_IG02 dd G_M3909_IG06 - G_M3909_IG02 dd G_M3909_IG06 - G_M3909_IG02 - dd G_M3909_IG14 - G_M3909_IG02 - dd G_M3909_IG14 - G_M3909_IG02 + dd G_M3909_IG13 - G_M3909_IG02 + dd G_M3909_IG13 - G_M3909_IG02 dd G_M3909_IG06 - G_M3909_IG02 - dd G_M3909_IG14 - G_M3909_IG02 - dd G_M3909_IG14 - G_M3909_IG02 - dd G_M3909_IG06 - G_M3909_IG02 -RWD36 dd G_M3909_IG06 - G_M3909_IG02 - dd G_M3909_IG06 - G_M3909_IG02 - dd G_M3909_IG14 - G_M3909_IG02 - dd G_M3909_IG14 - G_M3909_IG02 + dd G_M3909_IG13 - G_M3909_IG02 + dd G_M3909_IG13 - G_M3909_IG02 dd G_M3909_IG06 - G_M3909_IG02 -; Total bytes of code 167, prolog size 4, PerfScore 78.61, instruction count 56, allocated bytes for code 167 (MethodHash=4006f0ba) for method System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte (FullOpts) +; Total bytes of code 135, prolog size 4, PerfScore 69.04, instruction count 51, allocated bytes for code 139 (MethodHash=4006f0ba) for method System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte (FullOpts) ; ============================================================ ```

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

MihuBot commented 1 month ago

@MihaZupan