MihuBot / runtime-utils

0 stars 0 forks source link

[X64] [EgorBo] JIT: Move isinst<exact> casts to the late phase #254

Open MihuBot opened 9 months ago

MihuBot commented 9 months ago

Build completed in 2 hours 5 minutes. https://github.com/dotnet/runtime/pull/98528

CoreLib diffs

Found 2 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 6837129
Total bytes of diff: 6836862
Total bytes of delta: -267 (-0.00 % of base)
Total relative delta: -0.62
    diff is an improvement.
    relative diff is an improvement.

Top file improvements (bytes):
        -267 : System.Private.CoreLib.dasm (-0.00 % of base)

1 total files with Code Size differences (1 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
         -77 (-13.32 % of base) : System.Private.CoreLib.dasm - System.Globalization.CultureInfo:Clone():System.Object:this (FullOpts)
         -40 (-11.53 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):this (FullOpts)
         -40 (-5.98 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetTypeCodeImpl():int:this (FullOpts)
         -40 (-7.30 % of base) : System.Private.CoreLib.dasm - System.Type:GetRuntimeTypeCode(System.RuntimeType):int (FullOpts)
         -37 (-2.37 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:IsEnumDefined(System.Object):ubyte:this (FullOpts)
         -33 (-21.71 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetUnderlyingType(System.RuntimeType):ubyte (FullOpts)

Top method improvements (percentages):
         -33 (-21.71 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetUnderlyingType(System.RuntimeType):ubyte (FullOpts)
         -77 (-13.32 % of base) : System.Private.CoreLib.dasm - System.Globalization.CultureInfo:Clone():System.Object:this (FullOpts)
         -40 (-11.53 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):this (FullOpts)
         -40 (-7.30 % of base) : System.Private.CoreLib.dasm - System.Type:GetRuntimeTypeCode(System.RuntimeType):int (FullOpts)
         -40 (-5.98 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetTypeCodeImpl():int:this (FullOpts)
         -37 (-2.37 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:IsEnumDefined(System.Object):ubyte:this (FullOpts)

6 total methods with Code Size differences (6 improved, 0 regressed), 56124 unchanged.

--------------------------------------------------------------------------------

Frameworks diffs

Diffs ``` Found 281 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 38314641 Total bytes of diff: 38311020 Total bytes of delta: -3621 (-0.01 % of base) Total relative delta: -6.71 diff is an improvement. relative diff is an improvement. Top file regressions (bytes): 6 : System.Private.DataContractSerialization.dasm (0.00 % of base) Top file improvements (bytes): -671 : System.Diagnostics.TraceSource.dasm (-1.33 % of base) -593 : System.Data.Common.dasm (-0.04 % of base) -589 : System.Private.Xml.dasm (-0.01 % of base) -440 : System.Configuration.ConfigurationManager.dasm (-0.11 % of base) -267 : System.Private.CoreLib.dasm (-0.00 % of base) -226 : System.ComponentModel.Composition.dasm (-0.05 % of base) -179 : System.Data.Odbc.dasm (-0.08 % of base) -109 : Microsoft.VisualBasic.Core.dasm (-0.02 % of base) -98 : System.ComponentModel.TypeConverter.dasm (-0.03 % of base) -82 : System.Reflection.Emit.dasm (-0.07 % of base) -59 : ILCompiler.Reflection.ReadyToRun.dasm (-0.02 % of base) -40 : System.ComponentModel.Annotations.dasm (-0.08 % of base) -40 : System.CodeDom.dasm (-0.02 % of base) -40 : System.Net.WebSockets.dasm (-0.03 % of base) -34 : System.Runtime.Caching.dasm (-0.05 % of base) -29 : System.Diagnostics.TextWriterTraceListener.dasm (-0.16 % of base) -28 : System.Net.Mail.dasm (-0.01 % of base) -22 : System.Linq.Queryable.dasm (-0.01 % of base) -20 : System.Diagnostics.Process.dasm (-0.02 % of base) -20 : System.Net.Quic.dasm (-0.02 % of base) -19 : System.Runtime.Serialization.Schema.dasm (-0.03 % of base) -17 : System.Security.Cryptography.Xml.dasm (-0.01 % of base) -5 : System.DirectoryServices.Protocols.dasm (-0.00 % of base) 24 total files with Code Size differences (23 improved, 1 regressed), 232 unchanged. Top method regressions (bytes): 6 (1.45 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlObjectSerializerWriteContext:InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator,System.Object,ubyte,ubyte,int,System.RuntimeTypeHandle):this (FullOpts) Top method improvements (bytes): -82 (-7.40 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.TypeBuilderImpl:DefineDataHelper(System.String,ubyte[],int,int):System.Reflection.Emit.FieldBuilder:this (FullOpts) -77 (-13.32 % of base) : System.Private.CoreLib.dasm - System.Globalization.CultureInfo:Clone():System.Object:this (FullOpts) -72 (-2.86 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:TraceEvent(int,int,System.String,System.Object[]) (FullOpts) -62 (-4.61 % of base) : System.Data.Common.dasm - System.Data.Common.ADP:SelectAdapterRows(System.Data.DataTable,ubyte):System.Data.DataRow[] (FullOpts) -60 (-4.84 % of base) : System.Data.Common.dasm - System.Data.Common.DataColumnMappingCollection:AddEnumerableRange(System.Array,ubyte):this (FullOpts) -60 (-4.83 % of base) : System.Data.Common.dasm - System.Data.Common.DataTableMappingCollection:AddEnumerableRange(System.Array,ubyte):this (FullOpts) -56 (-1.95 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.DecimalFormatter:.ctor(System.String,System.Xml.Xsl.Runtime.DecimalFormat):this (FullOpts) -42 (-6.49 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.Configuration:ForceGroupsRecursive(System.Configuration.ConfigurationSectionGroup) (FullOpts) -41 (-4.28 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts) -40 (-4.54 % of base) : System.ComponentModel.Annotations.dasm - System.ComponentModel.DataAnnotations.ValidationAttributeStore+TypeStoreItem:GetExplicitAttributes(System.ComponentModel.PropertyDescriptor):System.ComponentModel.AttributeCollection (FullOpts) -40 (-0.40 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationElement:DeserializeElement(System.Xml.XmlReader,ubyte):this (FullOpts) -40 (-5.35 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameterCollection:AddRange(System.Array):this (FullOpts) -40 (-3.56 % of base) : System.Configuration.ConfigurationManager.dasm - System.Diagnostics.DiagnosticsConfiguration:Refresh() (FullOpts) -40 (-3.78 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Fail(System.String,System.String) (FullOpts) -40 (-3.80 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Fail(System.String) (FullOpts) -40 (-3.74 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.Object,System.String) (FullOpts) -40 (-3.80 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.Object) (FullOpts) -40 (-3.74 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.String,System.String) (FullOpts) -40 (-3.81 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.String) (FullOpts) -40 (-3.75 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.Object,System.String) (FullOpts) -40 (-3.80 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.Object) (FullOpts) -40 (-3.74 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.String,System.String) (FullOpts) -40 (-3.80 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.String) (FullOpts) -40 (-1.19 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__66:MoveNext():this (FullOpts) -40 (-11.53 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):this (FullOpts) -40 (-5.98 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetTypeCodeImpl():int:this (FullOpts) -40 (-7.30 % of base) : System.Private.CoreLib.dasm - System.Type:GetRuntimeTypeCode(System.RuntimeType):int (FullOpts) -39 (-9.70 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectTypeDescriptionProvider+ReflectedTypeData:GetEditorAttribute(System.ComponentModel.AttributeCollection,System.Type):System.ComponentModel.EditorAttribute (FullOpts) -39 (-6.44 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationManager:PreloadConfiguration(System.Configuration.Configuration) (FullOpts) -39 (-6.82 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationManager:PreloadConfigurationSectionGroup(System.Configuration.ConfigurationSectionGroup) (FullOpts) -37 (-2.37 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:IsEnumDefined(System.Object):ubyte:this (FullOpts) -36 (-1.35 % of base) : System.Data.Common.dasm - System.Data.DataRelation:set_Nested(ubyte):this (FullOpts) -36 (-1.54 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcMetaDataFactory:.ctor(System.IO.Stream,System.String,System.String,System.Data.Odbc.OdbcConnection):this (FullOpts) -36 (-3.90 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Flush() (FullOpts) -36 (-4.02 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:Flush():this (FullOpts) -36 (-5.67 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNavigator:MoveToFollowing(System.String,System.String,System.Xml.XPath.XPathNavigator):ubyte:this (FullOpts) -34 (-6.25 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:GetNormalizedNumberFormat(System.Globalization.NumberFormatInfo):System.Globalization.NumberFormatInfo (FullOpts) -34 (-6.25 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.DecimalType:GetNormalizedNumberFormat(System.Globalization.NumberFormatInfo):System.Globalization.NumberFormatInfo (FullOpts) -34 (-1.19 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationElement:MergeLocks(System.Configuration.ConfigurationElement):this (FullOpts) -34 (-2.74 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.MemoryCacheStore:Dispose():this (FullOpts) -34 (-5.84 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNavigator:MoveToFollowing(int,System.Xml.XPath.XPathNavigator):ubyte:this (FullOpts) -33 (-6.35 % of base) : System.Data.Common.dasm - System.Data.DataColumn:CheckMaxLength():ubyte:this (FullOpts) -33 (-0.86 % of base) : System.Data.Common.dasm - System.Data.ExpressionParser:Parse():System.Data.ExpressionNode:this (FullOpts) -33 (-7.67 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListenerCollection:get_Item(System.String):System.Diagnostics.TraceListener:this (FullOpts) -33 (-21.71 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetUnderlyingType(System.RuntimeType):ubyte (FullOpts) -31 (-19.14 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_AllElemChildren_AndSelf:.ctor(System.Xml.DocumentXPathNodeIterator_AllElemChildren_AndSelf):this (FullOpts) -31 (-17.13 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_AllElemChildren_AndSelf:Clone():System.Xml.XPath.XPathNodeIterator:this (FullOpts) -31 (-17.61 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf_NoLocalName:.ctor(System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf_NoLocalName):this (FullOpts) -31 (-15.98 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf_NoLocalName:Clone():System.Xml.XPath.XPathNodeIterator:this (FullOpts) -31 (-16.40 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf:.ctor(System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf):this (FullOpts) -31 (-14.98 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf:Clone():System.Xml.XPath.XPathNodeIterator:this (FullOpts) -31 (-21.53 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemDescendants:.ctor(System.Xml.DocumentXPathNavigator):this (FullOpts) -31 (-19.14 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemDescendants:.ctor(System.Xml.DocumentXPathNodeIterator_ElemDescendants):this (FullOpts) -31 (-1.96 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.XsltLoader:LoadKey(System.Xml.Xsl.Xslt.NsDecl):this (FullOpts) -30 (-0.65 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriter:WriteTypedPrimitive(System.String,System.String,System.Object,ubyte):this (FullOpts) -29 (-2.73 % of base) : System.Diagnostics.TextWriterTraceListener.dasm - System.Diagnostics.TextWriterTraceListener:g__InitializeWriter|17_0():this (FullOpts) -28 (-7.63 % of base) : System.Net.Mail.dasm - System.Net.Mime.EncodedStreamFactory:GetEncoderForHeader(System.Text.Encoding,ubyte,int):System.Net.Mime.IEncodableStream (FullOpts) -26 (-0.30 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteElements(System.String,System.String,System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte):this (FullOpts) -24 (-3.09 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[int](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[int,System.Action] (FullOpts) -24 (-3.08 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[short](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[short,System.Action] (FullOpts) -24 (-3.10 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[ubyte](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[ubyte,System.Action] (FullOpts) -23 (-6.12 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.AggregateCatalog:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.ComponentModel.Composition.Primitives.ComposablePartDefinition]:this (FullOpts) -23 (-6.12 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.DirectoryCatalog:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.ComponentModel.Composition.Primitives.ComposablePartDefinition]:this (FullOpts) -23 (-0.83 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:ReflectGetExtendedProperties(System.ComponentModel.IExtenderProvider):System.ComponentModel.PropertyDescriptor[] (FullOpts) -23 (-1.87 % of base) : System.Data.Odbc.dasm - System.Data.ProviderBase.DbMetaDataFactory:FindMetaDataCollectionRow(System.String):System.Data.DataRow:this (FullOpts) -22 (-6.92 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection+<>c__DisplayClass15_0:b__0():System.Collections.Generic.IEnumerable`1[System.ComponentModel.Composition.Primitives.ComposablePartDefinition]:this (FullOpts) -22 (-3.52 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataReaderExtensions:GetColumnSchemaCompatibility(System.Data.Common.DbDataReader):System.Collections.ObjectModel.ReadOnlyCollection`1[System.Data.Common.DbColumn] (FullOpts) -22 (-2.67 % of base) : System.Data.Common.dasm - System.Data.DataColumn:CheckNotAllowNull():this (FullOpts) -22 (-2.09 % of base) : System.Data.Common.dasm - System.Data.DataColumn:IsMaxLengthViolated():ubyte:this (FullOpts) -22 (-4.17 % of base) : System.Data.Common.dasm - System.Data.DataTable:EvaluateExpressions():this (FullOpts) -22 (-3.40 % of base) : System.Data.Common.dasm - System.Data.Index:InitRecords(System.Data.IFilter):this (FullOpts) -22 (-2.38 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcMetaDataFactory:NewDataTableFromReader(System.Data.Odbc.OdbcDataReader,byref,System.String):System.Data.DataTable (FullOpts) -22 (-1.59 % of base) : System.Data.Odbc.dasm - System.Data.ProviderBase.DbMetaDataFactory:CloneAndFilterCollection(System.String,System.String[]):System.Data.DataTable:this (FullOpts) -22 (-3.85 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:OnInitializing(System.Diagnostics.InitializingTraceSourceEventArgs):this (FullOpts) -22 (-2.21 % of base) : System.Linq.Queryable.dasm - System.Linq.EnumerableRewriter:FindEnumerableMethodForQueryable(System.String,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.Expression],System.Type[]):System.Reflection.MethodInfo (FullOpts) -21 (-2.70 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[long](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[long,System.Action] (FullOpts) -21 (-2.55 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[System.Nullable`1[int]](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[System.Nullable`1[int],System.Action] (FullOpts) -21 (-1.01 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationElement:HandleLockedAttributes(System.Configuration.ConfigurationElement):this (FullOpts) -21 (-1.98 % of base) : System.Data.Common.dasm - System.Data.DataSet:Copy():System.Data.DataSet:this (FullOpts) -20 (-1.97 % of base) : ILCompiler.Reflection.ReadyToRun.dasm - ILCompiler.Reflection.ReadyToRun.PgoInfo:ToString():System.String:this (FullOpts) -20 (-1.41 % of base) : ILCompiler.Reflection.ReadyToRun.dasm - ILCompiler.Reflection.ReadyToRun.ReadyToRunHeader:ToString():System.String:this (FullOpts) -20 (-4.76 % of base) : System.CodeDom.dasm - Microsoft.CSharp.CSharpCodeGenerator:ResolveReferencedAssemblies(System.CodeDom.Compiler.CompilerParameters,System.CodeDom.CodeCompileUnit) (FullOpts) -20 (-4.76 % of base) : System.CodeDom.dasm - System.CodeDom.Compiler.CodeCompiler:ResolveReferencedAssemblies(System.CodeDom.Compiler.CompilerParameters,System.CodeDom.CodeCompileUnit) (FullOpts) -20 (-2.40 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[System.Numerics.Vector`1[float]](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[System.Numerics.Vector`1[float],System.Action] (FullOpts) -20 (-2.53 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.MemberDescriptor:.ctor(System.ComponentModel.MemberDescriptor,System.Attribute[]):this (FullOpts) -20 (-2.92 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ClientSettingsStore:ReadSettings(System.String,ubyte):System.Collections.IDictionary (FullOpts) -20 (-2.22 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ClientSettingsStore:ReadSettingsFromFile(System.String,System.String,ubyte):System.Collections.IDictionary (FullOpts) -20 (-3.51 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.CommaDelimitedStringCollection:ToString():System.String:this (FullOpts) -20 (-1.50 % of base) : System.Data.Common.dasm - System.Data.XDRSchema:InstantiateTable(System.Data.DataSet,System.Xml.XmlElement,System.Xml.XmlElement):System.Data.DataTable:this (FullOpts) -20 (-0.73 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.Process+d__184:MoveNext():this (FullOpts) -20 (-1.74 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicConfiguration:Create(System.Net.Quic.QuicClientConnectionOptions):System.Net.Quic.MsQuicSafeHandle (FullOpts) -20 (-2.70 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReader:ReadByteArray(ubyte):ubyte[]:this (FullOpts) -19 (-1.59 % of base) : ILCompiler.Reflection.ReadyToRun.dasm - ILCompiler.Reflection.ReadyToRun.ReadyToRunReader:EnsureHeader():this (FullOpts) -19 (-2.08 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[System.__Canon](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[System.__Canon,System.__Canon] (FullOpts) -19 (-5.31 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.CommaDelimitedStringCollection:Clone():System.Configuration.CommaDelimitedStringCollection:this (FullOpts) -19 (-4.42 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ProtectedConfigurationSection:GetAllProviders():System.Configuration.ProtectedConfigurationProviderCollection:this (FullOpts) -19 (-3.75 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:AddReferencedAssembly(System.Reflection.Assembly):this (FullOpts) -19 (-6.25 % of base) : System.Private.Xml.dasm - System.Xml.XmlDocument:WriteContentTo(System.Xml.XmlWriter):this (FullOpts) -19 (-6.25 % of base) : System.Private.Xml.dasm - System.Xml.XmlDocumentFragment:WriteContentTo(System.Xml.XmlWriter):this (FullOpts) -19 (-6.25 % of base) : System.Private.Xml.dasm - System.Xml.XmlEntityReference:WriteContentTo(System.Xml.XmlWriter):this (FullOpts) Top method regressions (percentages): 6 (1.45 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlObjectSerializerWriteContext:InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator,System.Object,ubyte,ubyte,int,System.RuntimeTypeHandle):this (FullOpts) Top method improvements (percentages): -5 (-100.00 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:get_Timeout():System.TimeSpan:this (FullOpts) -33 (-21.71 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetUnderlyingType(System.RuntimeType):ubyte (FullOpts) -31 (-21.53 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemDescendants:.ctor(System.Xml.DocumentXPathNavigator):this (FullOpts) -31 (-19.14 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_AllElemChildren_AndSelf:.ctor(System.Xml.DocumentXPathNodeIterator_AllElemChildren_AndSelf):this (FullOpts) -31 (-19.14 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemDescendants:.ctor(System.Xml.DocumentXPathNodeIterator_ElemDescendants):this (FullOpts) -31 (-17.61 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf_NoLocalName:.ctor(System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf_NoLocalName):this (FullOpts) -31 (-17.13 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_AllElemChildren_AndSelf:Clone():System.Xml.XPath.XPathNodeIterator:this (FullOpts) -31 (-16.40 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf:.ctor(System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf):this (FullOpts) -31 (-15.98 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf_NoLocalName:Clone():System.Xml.XPath.XPathNodeIterator:this (FullOpts) -31 (-14.98 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNodeIterator_ElemChildren_AndSelf:Clone():System.Xml.XPath.XPathNodeIterator:this (FullOpts) -77 (-13.32 % of base) : System.Private.CoreLib.dasm - System.Globalization.CultureInfo:Clone():System.Object:this (FullOpts) -40 (-11.53 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):this (FullOpts) -39 (-9.70 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectTypeDescriptionProvider+ReflectedTypeData:GetEditorAttribute(System.ComponentModel.AttributeCollection,System.Type):System.ComponentModel.EditorAttribute (FullOpts) -33 (-7.67 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListenerCollection:get_Item(System.String):System.Diagnostics.TraceListener:this (FullOpts) -28 (-7.63 % of base) : System.Net.Mail.dasm - System.Net.Mime.EncodedStreamFactory:GetEncoderForHeader(System.Text.Encoding,ubyte,int):System.Net.Mime.IEncodableStream (FullOpts) -82 (-7.40 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.TypeBuilderImpl:DefineDataHelper(System.String,ubyte[],int,int):System.Reflection.Emit.FieldBuilder:this (FullOpts) -40 (-7.30 % of base) : System.Private.CoreLib.dasm - System.Type:GetRuntimeTypeCode(System.RuntimeType):int (FullOpts) -22 (-6.92 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection+<>c__DisplayClass15_0:b__0():System.Collections.Generic.IEnumerable`1[System.ComponentModel.Composition.Primitives.ComposablePartDefinition]:this (FullOpts) -39 (-6.82 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationManager:PreloadConfigurationSectionGroup(System.Configuration.ConfigurationSectionGroup) (FullOpts) -42 (-6.49 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.Configuration:ForceGroupsRecursive(System.Configuration.ConfigurationSectionGroup) (FullOpts) -39 (-6.44 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationManager:PreloadConfiguration(System.Configuration.Configuration) (FullOpts) -33 (-6.35 % of base) : System.Data.Common.dasm - System.Data.DataColumn:CheckMaxLength():ubyte:this (FullOpts) -34 (-6.25 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:GetNormalizedNumberFormat(System.Globalization.NumberFormatInfo):System.Globalization.NumberFormatInfo (FullOpts) -34 (-6.25 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.DecimalType:GetNormalizedNumberFormat(System.Globalization.NumberFormatInfo):System.Globalization.NumberFormatInfo (FullOpts) -19 (-6.25 % of base) : System.Private.Xml.dasm - System.Xml.XmlDocument:WriteContentTo(System.Xml.XmlWriter):this (FullOpts) -19 (-6.25 % of base) : System.Private.Xml.dasm - System.Xml.XmlDocumentFragment:WriteContentTo(System.Xml.XmlWriter):this (FullOpts) -19 (-6.25 % of base) : System.Private.Xml.dasm - System.Xml.XmlEntityReference:WriteContentTo(System.Xml.XmlWriter):this (FullOpts) -23 (-6.12 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.AggregateCatalog:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.ComponentModel.Composition.Primitives.ComposablePartDefinition]:this (FullOpts) -23 (-6.12 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.DirectoryCatalog:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.ComponentModel.Composition.Primitives.ComposablePartDefinition]:this (FullOpts) -40 (-5.98 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetTypeCodeImpl():int:this (FullOpts) -34 (-5.84 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNavigator:MoveToFollowing(int,System.Xml.XPath.XPathNavigator):ubyte:this (FullOpts) -36 (-5.67 % of base) : System.Private.Xml.dasm - System.Xml.DocumentXPathNavigator:MoveToFollowing(System.String,System.String,System.Xml.XPath.XPathNavigator):ubyte:this (FullOpts) -40 (-5.35 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameterCollection:AddRange(System.Array):this (FullOpts) -19 (-5.31 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.CommaDelimitedStringCollection:Clone():System.Configuration.CommaDelimitedStringCollection:this (FullOpts) -60 (-4.84 % of base) : System.Data.Common.dasm - System.Data.Common.DataColumnMappingCollection:AddEnumerableRange(System.Array,ubyte):this (FullOpts) -60 (-4.83 % of base) : System.Data.Common.dasm - System.Data.Common.DataTableMappingCollection:AddEnumerableRange(System.Array,ubyte):this (FullOpts) -20 (-4.76 % of base) : System.CodeDom.dasm - Microsoft.CSharp.CSharpCodeGenerator:ResolveReferencedAssemblies(System.CodeDom.Compiler.CompilerParameters,System.CodeDom.CodeCompileUnit) (FullOpts) -20 (-4.76 % of base) : System.CodeDom.dasm - System.CodeDom.Compiler.CodeCompiler:ResolveReferencedAssemblies(System.CodeDom.Compiler.CompilerParameters,System.CodeDom.CodeCompileUnit) (FullOpts) -62 (-4.61 % of base) : System.Data.Common.dasm - System.Data.Common.ADP:SelectAdapterRows(System.Data.DataTable,ubyte):System.Data.DataRow[] (FullOpts) -18 (-4.59 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.Internal.InternalConfigRoot:System.Configuration.Internal.IInternalConfigRoot.Init(System.Configuration.Internal.IInternalConfigHost,ubyte):this (FullOpts) -40 (-4.54 % of base) : System.ComponentModel.Annotations.dasm - System.ComponentModel.DataAnnotations.ValidationAttributeStore+TypeStoreItem:GetExplicitAttributes(System.ComponentModel.PropertyDescriptor):System.ComponentModel.AttributeCollection (FullOpts) -19 (-4.42 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ProtectedConfigurationSection:GetAllProviders():System.Configuration.ProtectedConfigurationProviderCollection:this (FullOpts) -18 (-4.32 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal+TraceProvider:OnIndentLevelChanged(int):this (FullOpts) -41 (-4.28 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts) -18 (-4.26 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal+TraceProvider:OnIndentSizeChanged(int):this (FullOpts) -18 (-4.26 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:Close():this (FullOpts) -22 (-4.17 % of base) : System.Data.Common.dasm - System.Data.DataTable:EvaluateExpressions():this (FullOpts) -18 (-4.09 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Close() (FullOpts) -36 (-4.02 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:Flush():this (FullOpts) -36 (-3.90 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Flush() (FullOpts) -22 (-3.85 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:OnInitializing(System.Diagnostics.InitializingTraceSourceEventArgs):this (FullOpts) -40 (-3.81 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.String) (FullOpts) -40 (-3.80 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Fail(System.String) (FullOpts) -40 (-3.80 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.Object) (FullOpts) -40 (-3.80 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.Object) (FullOpts) -40 (-3.80 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.String) (FullOpts) -40 (-3.78 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Fail(System.String,System.String) (FullOpts) -40 (-3.75 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.Object,System.String) (FullOpts) -19 (-3.75 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:AddReferencedAssembly(System.Reflection.Assembly):this (FullOpts) -40 (-3.74 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.Object,System.String) (FullOpts) -40 (-3.74 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.String,System.String) (FullOpts) -40 (-3.74 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.String,System.String) (FullOpts) -18 (-3.68 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.PropertyInformationCollection:CopyTo(System.Configuration.PropertyInformation[],int):this (FullOpts) -40 (-3.56 % of base) : System.Configuration.ConfigurationManager.dasm - System.Diagnostics.DiagnosticsConfiguration:Refresh() (FullOpts) -22 (-3.52 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataReaderExtensions:GetColumnSchemaCompatibility(System.Data.Common.DbDataReader):System.Collections.ObjectModel.ReadOnlyCollection`1[System.Data.Common.DbColumn] (FullOpts) -20 (-3.51 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.CommaDelimitedStringCollection:ToString():System.String:this (FullOpts) -22 (-3.40 % of base) : System.Data.Common.dasm - System.Data.Index:InitRecords(System.Data.IFilter):this (FullOpts) -24 (-3.10 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[ubyte](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[ubyte,System.Action] (FullOpts) -24 (-3.09 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[int](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[int,System.Action] (FullOpts) -24 (-3.08 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[short](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[short,System.Action] (FullOpts) -20 (-2.92 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ClientSettingsStore:ReadSettings(System.String,ubyte):System.Collections.IDictionary (FullOpts) -72 (-2.86 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:TraceEvent(int,int,System.String,System.Object[]) (FullOpts) -18 (-2.84 % of base) : System.Data.Common.dasm - System.Xml.XmlDataDocument:LoadTreeFromDataSet(System.Data.DataSet):this (FullOpts) -34 (-2.74 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.MemoryCacheStore:Dispose():this (FullOpts) -29 (-2.73 % of base) : System.Diagnostics.TextWriterTraceListener.dasm - System.Diagnostics.TextWriterTraceListener:g__InitializeWriter|17_0():this (FullOpts) -18 (-2.71 % of base) : System.Data.Common.dasm - System.Data.DataTable:Copy():System.Data.DataTable:this (FullOpts) -21 (-2.70 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[long](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[long,System.Action] (FullOpts) -20 (-2.70 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReader:ReadByteArray(ubyte):ubyte[]:this (FullOpts) -22 (-2.67 % of base) : System.Data.Common.dasm - System.Data.DataColumn:CheckNotAllowNull():this (FullOpts) -21 (-2.55 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[System.Nullable`1[int]](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[System.Nullable`1[int],System.Action] (FullOpts) -20 (-2.53 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.MemberDescriptor:.ctor(System.ComponentModel.MemberDescriptor,System.Attribute[]):this (FullOpts) -20 (-2.40 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[System.Numerics.Vector`1[float]](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[System.Numerics.Vector`1[float],System.Action] (FullOpts) -22 (-2.38 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcMetaDataFactory:NewDataTableFromReader(System.Data.Odbc.OdbcDataReader,byref,System.String):System.Data.DataTable (FullOpts) -37 (-2.37 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:IsEnumDefined(System.Object):ubyte:this (FullOpts) -17 (-2.28 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationLockCollection:RemoveInheritedLocks():this (FullOpts) -17 (-2.25 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSchemas:Prepare(System.Xml.Schema.XmlSchema) (FullOpts) -20 (-2.22 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ClientSettingsStore:ReadSettingsFromFile(System.String,System.String,ubyte):System.Collections.IDictionary (FullOpts) -22 (-2.21 % of base) : System.Linq.Queryable.dasm - System.Linq.EnumerableRewriter:FindEnumerableMethodForQueryable(System.String,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.Expression],System.Type[]):System.Reflection.MethodInfo (FullOpts) -22 (-2.09 % of base) : System.Data.Common.dasm - System.Data.DataColumn:IsMaxLengthViolated():ubyte:this (FullOpts) -19 (-2.08 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator+LifetimeContext:GetExportLifetimeContextFromExport[System.__Canon](System.ComponentModel.Composition.Primitives.Export):System.Tuple`2[System.__Canon,System.__Canon] (FullOpts) -21 (-1.98 % of base) : System.Data.Common.dasm - System.Data.DataSet:Copy():System.Data.DataSet:this (FullOpts) -20 (-1.97 % of base) : ILCompiler.Reflection.ReadyToRun.dasm - ILCompiler.Reflection.ReadyToRun.PgoInfo:ToString():System.String:this (FullOpts) -31 (-1.96 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.XsltLoader:LoadKey(System.Xml.Xsl.Xslt.NsDecl):this (FullOpts) -56 (-1.95 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.DecimalFormatter:.ctor(System.String,System.Xml.Xsl.Runtime.DecimalFormat):this (FullOpts) -17 (-1.94 % of base) : System.Private.Xml.dasm - System.Xml.XmlDocument:GetElement(System.Collections.ArrayList,System.Xml.XmlElement):System.WeakReference`1[System.Xml.XmlElement] (FullOpts) -23 (-1.87 % of base) : System.Data.Odbc.dasm - System.Data.ProviderBase.DbMetaDataFactory:FindMetaDataCollectionRow(System.String):System.Data.DataRow:this (FullOpts) -20 (-1.74 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicConfiguration:Create(System.Net.Quic.QuicClientConnectionOptions):System.Net.Quic.MsQuicSafeHandle (FullOpts) -17 (-1.72 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationLockCollection:ClearInternal(ubyte):this (FullOpts) -18 (-1.72 % of base) : System.Data.Common.dasm - System.Data.Merger:MergeTable(System.Data.DataTable,System.Data.DataTable):this (FullOpts) -17 (-1.66 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.SettingsPropertyValueCollection:Remove(System.String):this (FullOpts) 128 total methods with Code Size differences (127 improved, 1 regressed), 238906 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 9 months ago

Top method improvements

-77 (-13.32 % of base) - System.Globalization.CultureInfo:Clone():System.Object:this ```diff ; Assembly listing for method System.Globalization.CultureInfo:Clone():System.Object: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; 4 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 16, 11 ) ref -> rbx this class-hnd single-def ; V01 loc0 [V01,T01] ( 13, 8 ) ref -> r15 class-hnd single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" ; V04 tmp2 [V04,T05] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" -; V05 tmp3 [V05,T20] ( 4, 1.50) ref -> rax class-hnd exact single-def "Inline stloc first use temp" +; V05 tmp3 [V05,T16] ( 3, 1.50) ref -> rax class-hnd exact single-def "Inline stloc first use temp" ;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" ; V07 tmp5 [V07,T06] ( 3, 3 ) ref -> rax class-hnd exact single-def "Inlining Arg" -; V08 tmp6 [V08,T21] ( 4, 1.50) ref -> rax class-hnd exact single-def "Inline stloc first use temp" +; V08 tmp6 [V08,T17] ( 3, 1.50) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" ;* V09 tmp7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V10 tmp8 [V10,T16] ( 2, 2 ) ref -> rax class-hnd exact single-def "Inlining Arg" -; V11 tmp9 [V11,T11] ( 3, 2 ) ref -> rax single-def "argument with side effect" -; V12 tmp10 [V12,T17] ( 2, 2 ) ref -> rsi single-def "argument with side effect" -; V13 tmp11 [V13,T18] ( 2, 2 ) ref -> rsi single-def "argument with side effect" -; V14 tmp12 [V14,T12] ( 3, 2 ) ref -> rax single-def "argument with side effect" -; V15 tmp13 [V15,T13] ( 3, 2 ) ref -> rax single-def "argument with side effect" +; V10 tmp8 [V10,T12] ( 2, 2 ) ref -> rax class-hnd exact single-def "Inlining Arg" +; V11 tmp9 [V11,T09] ( 3, 2 ) ref -> rax single-def "argument with side effect" +; V12 tmp10 [V12,T13] ( 2, 2 ) ref -> rsi single-def "argument with side effect" +; V13 tmp11 [V13,T14] ( 2, 2 ) ref -> rsi single-def "argument with side effect" +; V14 tmp12 [V14,T10] ( 3, 2 ) ref -> rax single-def "argument with side effect" +; V15 tmp13 [V15,T11] ( 3, 2 ) ref -> rax single-def "argument with side effect" ; V16 tmp14 [V16,T07] ( 3, 3 ) ref -> rdi single-def "argument with side effect" -; V17 tmp15 [V17,T19] ( 2, 2 ) ref -> rsi single-def "argument with side effect" -; V18 cse0 [V18,T24] ( 3, 1.50) long -> r14 "CSE - moderate" -; V19 cse1 [V19,T10] ( 5, 2.50) long -> r13 multi-def "CSE - moderate" -; V20 cse2 [V20,T22] ( 3, 1.50) ref -> rdi "CSE - conservative" -; V21 cse3 [V21,T23] ( 3, 1.50) ref -> rdi "CSE - conservative" +; V17 tmp15 [V17,T15] ( 2, 2 ) ref -> rsi single-def "argument with side effect" +; V18 cse0 [V18,T20] ( 3, 1.50) long -> r14 "CSE - moderate" +; V19 cse1 [V19,T08] ( 5, 2.50) long -> r13 multi-def "CSE - moderate" +; V20 cse2 [V20,T18] ( 3, 1.50) ref -> rdi "CSE - conservative" +; V21 cse3 [V21,T19] ( 3, 1.50) ref -> rdi "CSE - conservative" ; V22 rat0 [V22,T02] ( 4, 3.50) ref -> rsi "replacement local" -; V23 rat1 [V23,T25] ( 3, 1 ) long -> rdi "CSE for expectedClsNode" -; V24 rat2 [V24,T08] ( 3, 3 ) ref -> rsi "replacement local" -; V25 rat3 [V25,T14] ( 3, 2 ) long -> rdi "CSE for expectedClsNode" -; V26 rat4 [V26,T03] ( 4, 3.50) ref -> rsi "replacement local" -; V27 rat5 [V27,T26] ( 3, 1 ) long -> rdi "CSE for expectedClsNode" -; V28 rat6 [V28,T09] ( 3, 3 ) ref -> rsi "replacement local" -; V29 rat7 [V29,T15] ( 3, 2 ) long -> rdi "CSE for expectedClsNode" -; V30 rat8 [V30,T04] ( 4, 3.50) ref -> rsi "replacement local" -; V31 rat9 [V31,T27] ( 3, 1 ) long -> rdi "CSE for expectedClsNode" +; V23 rat1 [V23,T21] ( 3, 1 ) long -> rdi "CSE for expectedClsNode" +; V24 rat2 [V24,T03] ( 4, 3.50) ref -> rsi "replacement local" +; V25 rat3 [V25,T22] ( 3, 1 ) long -> rdi "CSE for expectedClsNode" +; V26 rat4 [V26,T04] ( 4, 3.50) ref -> rsi "replacement local" +; V27 rat5 [V27,T23] ( 3, 1 ) long -> rdi "CSE for expectedClsNode" ; ; Lcl frame size = 0 G_M55920_IG01: push rbp push r15 push r14 push r13 push rbx lea rbp, [rsp+0x20] mov rbx, rdi ;; size=16 bbWeight=1 PerfScore 5.75 G_M55920_IG02: mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Object:MemberwiseClone():System.Object:this call [rax]System.Object:MemberwiseClone():System.Object:this mov r15, rax mov byte ptr [r15+0x60], 0 cmp byte ptr [rbx+0x61], 0 - jne G_M55920_IG07 - ;; size=33 bbWeight=1 PerfScore 8.75 + jne SHORT G_M55920_IG07 + ;; size=29 bbWeight=1 PerfScore 8.75 G_M55920_IG03: mov rdi, gword ptr [rbx+0x20] test rdi, rdi je SHORT G_M55920_IG06 mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:Clone():System.Object:this cmp dword ptr [rdi], edi call [rax]System.Globalization.DateTimeFormatInfo:Clone():System.Object:this mov rsi, rax test rsi, rsi je SHORT G_M55920_IG05 ;; size=31 bbWeight=0.50 PerfScore 5.50 G_M55920_IG04: mov rdi, 0xD1FFAB1E ; System.Globalization.DateTimeFormatInfo cmp qword ptr [rsi], rdi jne G_M55920_IG19 ;; size=19 bbWeight=0.25 PerfScore 1.06 G_M55920_IG05: lea rdi, bword ptr [r15+0x20] call CORINFO_HELP_ASSIGN_REF ;; size=9 bbWeight=0.50 PerfScore 0.75 G_M55920_IG06: mov rdi, gword ptr [rbx+0x18] test rdi, rdi je G_M55920_IG10 cmp byte ptr [rdi], dil mov rax, 0xD1FFAB1E ; code for System.Object:MemberwiseClone():System.Object:this call [rax]System.Object:MemberwiseClone():System.Object:this mov byte ptr [rax+0x12C], 0 - mov rsi, rax - mov rdi, 0xD1FFAB1E ; System.Globalization.NumberFormatInfo - cmp qword ptr [rsi], rdi - jne G_M55920_IG20 lea rdi, bword ptr [r15+0x18] + mov rsi, rax call CORINFO_HELP_ASSIGN_REF - jmp G_M55920_IG10 - ;; size=71 bbWeight=0.50 PerfScore 9.25 + jmp SHORT G_M55920_IG10 + ;; size=49 bbWeight=0.50 PerfScore 7.12 G_M55920_IG07: mov rdi, rbx mov rax, qword ptr [rbx] mov r14, qword ptr [rax+0x50] call [r14+0x20]System.Globalization.CultureInfo:get_DateTimeFormat():System.Globalization.DateTimeFormatInfo:this mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:Clone():System.Object:this cmp dword ptr [rdi], edi call [rax]System.Globalization.DateTimeFormatInfo:Clone():System.Object:this mov rsi, rax test rsi, rsi je SHORT G_M55920_IG09 ;; size=39 bbWeight=0.50 PerfScore 7.62 G_M55920_IG08: mov rdi, 0xD1FFAB1E ; System.Globalization.DateTimeFormatInfo cmp qword ptr [rsi], rdi - jne G_M55920_IG21 + jne G_M55920_IG20 ;; size=19 bbWeight=0.25 PerfScore 1.06 G_M55920_IG09: mov rdi, r15 mov rax, qword ptr [r15] mov r13, qword ptr [rax+0x50] call [r13+0x28]System.Globalization.CultureInfo:set_DateTimeFormat(System.Globalization.DateTimeFormatInfo):this mov rdi, rbx call [r14+0x10]System.Globalization.CultureInfo:get_NumberFormat():System.Globalization.NumberFormatInfo:this cmp byte ptr [rax], al mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.Object:MemberwiseClone():System.Object:this call [rax]System.Object:MemberwiseClone():System.Object:this - mov byte ptr [rax+0x12C], 0 mov rsi, rax - mov rdi, 0xD1FFAB1E ; System.Globalization.NumberFormatInfo - cmp qword ptr [rsi], rdi - jne G_M55920_IG22 + mov byte ptr [rsi+0x12C], 0 mov rdi, r15 call [r13+0x18]System.Globalization.CultureInfo:set_NumberFormat(System.Globalization.NumberFormatInfo):this - ;; size=74 bbWeight=0.50 PerfScore 12.88 + ;; size=55 bbWeight=0.50 PerfScore 10.75 G_M55920_IG10: cmp gword ptr [rbx+0x10], 0 je SHORT G_M55920_IG14 ;; size=7 bbWeight=1 PerfScore 4.00 G_M55920_IG11: mov rdi, gword ptr [rbx+0x10] mov rax, 0xD1FFAB1E ; code for System.Globalization.TextInfo:Clone():System.Object:this cmp dword ptr [rdi], edi call [rax]System.Globalization.TextInfo:Clone():System.Object:this mov rsi, rax test rsi, rsi je SHORT G_M55920_IG13 ;; size=26 bbWeight=0.50 PerfScore 4.88 G_M55920_IG12: mov rdi, 0xD1FFAB1E ; System.Globalization.TextInfo cmp qword ptr [rsi], rdi - jne G_M55920_IG23 + jne G_M55920_IG21 ;; size=19 bbWeight=0.25 PerfScore 1.06 G_M55920_IG13: lea rdi, bword ptr [r15+0x10] call CORINFO_HELP_ASSIGN_REF ;; size=9 bbWeight=0.50 PerfScore 0.75 G_M55920_IG14: cmp gword ptr [rbx+0x20], 0 je SHORT G_M55920_IG16 ;; size=7 bbWeight=1 PerfScore 4.00 G_M55920_IG15: mov rdi, gword ptr [rbx+0x20] mov rdi, gword ptr [rdi+0x90] cmp rdi, gword ptr [rbx+0x28] jne SHORT G_M55920_IG16 mov rdi, r15 mov rax, qword ptr [r15] mov r13, qword ptr [rax+0x50] call [r13+0x20]System.Globalization.CultureInfo:get_DateTimeFormat():System.Globalization.DateTimeFormatInfo:this mov rsi, gword ptr [rax+0x90] lea rdi, bword ptr [r15+0x28] call CORINFO_HELP_ASSIGN_REF jmp SHORT G_M55920_IG17 ;; size=49 bbWeight=0.50 PerfScore 10.38 G_M55920_IG16: cmp gword ptr [rbx+0x28], 0 je SHORT G_M55920_IG17 mov rdi, gword ptr [rbx+0x28] mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x48] call [rax+0x08]System.Globalization.Calendar:Clone():System.Object:this mov rsi, rax mov rdi, 0xD1FFAB1E ; System.Globalization.Calendar mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS call [rax]CORINFO_HELP_CHKCASTCLASS lea rdi, bword ptr [r15+0x28] mov rsi, rax call CORINFO_HELP_ASSIGN_REF ;; size=58 bbWeight=0.50 PerfScore 9.25 G_M55920_IG17: mov rax, r15 ;; size=3 bbWeight=1 PerfScore 0.25 G_M55920_IG18: pop rbx pop r13 pop r14 pop r15 pop rbp ret ;; size=9 bbWeight=1 PerfScore 3.50 G_M55920_IG19: mov rsi, rax mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS call [rax]CORINFO_HELP_CHKCASTCLASS int3 ;; size=16 bbWeight=0 PerfScore 0.00 G_M55920_IG20: mov rsi, rax mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS call [rax]CORINFO_HELP_CHKCASTCLASS int3 ;; size=16 bbWeight=0 PerfScore 0.00 G_M55920_IG21: mov rsi, rax mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS call [rax]CORINFO_HELP_CHKCASTCLASS int3 ;; size=16 bbWeight=0 PerfScore 0.00 -G_M55920_IG22: - mov rsi, rax - mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS - call [rax]CORINFO_HELP_CHKCASTCLASS - int3 - ;; size=16 bbWeight=0 PerfScore 0.00 -G_M55920_IG23: - mov rsi, rax - mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS - call [rax]CORINFO_HELP_CHKCASTCLASS - int3 - ;; size=16 bbWeight=0 PerfScore 0.00 -; Total bytes of code 578, prolog size 13, PerfScore 90.69, instruction count 141, allocated bytes for code 578 (MethodHash=e81d258f) for method System.Globalization.CultureInfo:Clone():System.Object:this (FullOpts) +; Total bytes of code 501, prolog size 13, PerfScore 86.44, instruction count 127, allocated bytes for code 501 (MethodHash=e81d258f) for method System.Globalization.CultureInfo:Clone():System.Object:this (FullOpts) ```
-40 (-11.53 % of base) - System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):this ```diff ; Assembly listing for method System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):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; 5 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def ; V01 arg1 [V01,T01] ( 8, 5.50) ref -> r15 class-hnd ; V02 loc0 [V02,T03] ( 4, 4 ) int -> r14 -; V03 loc1 [V03,T06] ( 4, 3 ) int -> r13 -; V04 loc2 [V04,T08] ( 3, 2.50) int -> r12 +; V03 loc1 [V03,T05] ( 4, 3 ) int -> r13 +; V04 loc2 [V04,T07] ( 3, 2.50) int -> r12 ; V05 loc3 [V05,T02] ( 8, 5 ) ref -> [rbp-0x30] class-hnd ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" ;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" -; V09 tmp3 [V09,T11] ( 3, 1 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" -; V10 tmp4 [V10,T09] ( 3, 2 ) ref -> rax single-def "argument with side effect" -; V11 tmp5 [V11,T10] ( 2, 2 ) ref -> r12 single-def "arr expr" -; V12 tmp6 [V12,T07] ( 3, 3 ) int -> rax "index expr" +; V09 tmp3 [V09,T11] ( 2, 1 ) ref -> rdi class-hnd exact single-def "Inline stloc first use temp" +; V10 tmp4 [V10,T08] ( 3, 2 ) ref -> rax single-def "argument with side effect" +; V11 tmp5 [V11,T09] ( 2, 2 ) ref -> r12 single-def "arr expr" +; V12 tmp6 [V12,T06] ( 3, 3 ) int -> rax "index expr" ; V13 rat0 [V13,T04] ( 4, 3.50) ref -> r15 "replacement local" -; V14 rat1 [V14,T12] ( 3, 1 ) long -> rdi "CSE for expectedClsNode" -; V15 rat2 [V15,T05] ( 4, 3.50) ref -> rdi "replacement local" -; V16 rat3 [V16,T13] ( 3, 1 ) long -> rax "CSE for expectedClsNode" +; V14 rat1 [V14,T10] ( 3, 1 ) long -> rdi "CSE for expectedClsNode" ; ; Lcl frame size = 8 G_M60067_IG01: push rbp push r15 push r14 push r13 push r12 push rbx push rax lea rbp, [rsp+0x30] mov rbx, rdi mov r15, rsi ;; size=22 bbWeight=1 PerfScore 8.00 G_M60067_IG02: mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.Reflection.RuntimeCustomAttributeData:TypeToCustomAttributeEncoding(System.RuntimeType):int call [rax]System.Reflection.RuntimeCustomAttributeData:TypeToCustomAttributeEncoding(System.RuntimeType):int mov r14d, eax xor r13d, r13d xor r12d, r12d xor rax, rax mov gword ptr [rbp-0x30], rax cmp r14d, 29 jne SHORT G_M60067_IG06 ;; size=36 bbWeight=1 PerfScore 6.75 G_M60067_IG03: cmp byte ptr [r15], r15b mov rdi, r15 call System.RuntimeTypeHandle:GetElementType(System.RuntimeType):System.RuntimeType mov r15, rax test r15, r15 je SHORT G_M60067_IG05 ;; size=19 bbWeight=0.50 PerfScore 2.88 G_M60067_IG04: mov rdi, 0xD1FFAB1E ; System.RuntimeType cmp qword ptr [r15], rdi - jne G_M60067_IG14 + jne G_M60067_IG12 ;; size=19 bbWeight=0.25 PerfScore 1.06 G_M60067_IG05: mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.Reflection.RuntimeCustomAttributeData:TypeToCustomAttributeEncoding(System.RuntimeType):int call [rax]System.Reflection.RuntimeCustomAttributeData:TypeToCustomAttributeEncoding(System.RuntimeType):int mov r13d, eax ;; size=18 bbWeight=0.50 PerfScore 1.88 G_M60067_IG06: cmp r14d, 85 je SHORT G_M60067_IG08 ;; size=6 bbWeight=1 PerfScore 1.25 G_M60067_IG07: cmp r13d, 85 mov rax, gword ptr [rbp-0x30] - jne G_M60067_IG11 - ;; size=14 bbWeight=0.50 PerfScore 1.12 + jne SHORT G_M60067_IG09 + ;; size=10 bbWeight=0.50 PerfScore 1.12 G_M60067_IG08: mov rax, r15 mov gword ptr [rbp-0x30], rax mov rdi, rax mov rsi, 0xD1FFAB1E ; 'enumType' mov rcx, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) call [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov r15, gword ptr [rbp-0x30] cmp byte ptr [r15], r15b mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.RuntimeType:get_IsActualEnum():ubyte:this call [rax]System.RuntimeType:get_IsActualEnum():ubyte:this test eax, eax - je G_M60067_IG15 + je SHORT G_M60067_IG13 mov rdi, 0xD1FFAB1E ; const ptr mov r12, gword ptr [rdi] mov rdi, qword ptr [r15+0x18] call System.Enum:InternalGetCorElementType(ulong):ubyte cmp eax, 26 - jae SHORT G_M60067_IG13 + jae SHORT G_M60067_IG11 mov edi, eax - mov rsi, gword ptr [r12+8*rdi+0x10] - mov rdi, rsi - test rdi, rdi - je SHORT G_M60067_IG10 - ;; size=104 bbWeight=0.50 PerfScore 12.00 -G_M60067_IG09: - mov rax, 0xD1FFAB1E ; System.RuntimeType - cmp qword ptr [rdi], rax - jne SHORT G_M60067_IG16 - ;; size=15 bbWeight=0.25 PerfScore 1.06 -G_M60067_IG10: + mov rdi, gword ptr [r12+8*rdi+0x10] mov rax, 0xD1FFAB1E ; code for System.Reflection.RuntimeCustomAttributeData:TypeToCustomAttributeEncoding(System.RuntimeType):int call [rax]System.Reflection.RuntimeCustomAttributeData:TypeToCustomAttributeEncoding(System.RuntimeType):int mov r12d, eax mov rax, r15 - ;; size=18 bbWeight=0.50 PerfScore 1.88 -G_M60067_IG11: + ;; size=110 bbWeight=0.50 PerfScore 13.12 +G_M60067_IG09: mov dword ptr [rbx+0x10], r14d mov dword ptr [rbx+0x18], r13d mov dword ptr [rbx+0x14], r12d lea rdi, bword ptr [rbx+0x08] mov rsi, rax call CORINFO_HELP_ASSIGN_REF nop ;; size=25 bbWeight=1 PerfScore 5.00 -G_M60067_IG12: +G_M60067_IG10: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 -G_M60067_IG13: +G_M60067_IG11: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 -G_M60067_IG14: +G_M60067_IG12: mov rsi, rax call CORINFO_HELP_CHKCASTCLASS int3 ;; size=9 bbWeight=0 PerfScore 0.00 -G_M60067_IG15: +G_M60067_IG13: mov rax, 0xD1FFAB1E ; code for System.RuntimeType:ThrowMustBeEnum() call [rax]System.RuntimeType:ThrowMustBeEnum() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M60067_IG16: - mov rdi, rax - call CORINFO_HELP_CHKCASTCLASS - int3 - ;; size=9 bbWeight=0 PerfScore 0.00 -; Total bytes of code 347, prolog size 16, PerfScore 47.12, instruction count 94, allocated bytes for code 347 (MethodHash=3a69155c) for method System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):this (FullOpts) +; Total bytes of code 307, prolog size 16, PerfScore 45.31, instruction count 85, allocated bytes for code 307 (MethodHash=3a69155c) for method System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):this (FullOpts) ```
-40 (-5.98 % of base) - System.RuntimeType:GetTypeCodeImpl():int:this ```diff ; Assembly listing for method System.RuntimeType:GetTypeCodeImpl():int: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; 6 single block inlinees; 4 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T02] ( 10, 6.50) ref -> rbx this class-hnd single-def -; V01 loc0 [V01,T05] ( 3, 2.50) int -> rax +; V01 loc0 [V01,T04] ( 3, 2.50) int -> rax ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V03 tmp1 [V03,T07] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" -; V04 tmp2 [V04,T09] ( 3, 1.50) ref -> rax class-hnd single-def "Inline stloc first use temp" +; V03 tmp1 [V03,T06] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" +; V04 tmp2 [V04,T08] ( 3, 1.50) ref -> rax class-hnd single-def "Inline stloc first use temp" ;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V06 tmp4 [V06 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V07 tmp5 [V07,T01] ( 18, 9 ) int -> r14 "Inline return value spill temp" ; V08 tmp6 [V08,T00] ( 19, 9.50) ref -> r15 class-hnd "Inline stloc first use temp" ;* V09 tmp7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" ;* V10 tmp8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" -; V11 tmp9 [V11,T13] ( 3, 1 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" -; V12 tmp10 [V12,T10] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" -; V13 tmp11 [V13,T11] ( 3, 1.50) ref -> rax class-hnd single-def "Inline stloc first use temp" +; V11 tmp9 [V11,T12] ( 2, 1 ) ref -> r15 class-hnd exact single-def "Inline stloc first use temp" +; V12 tmp10 [V12,T09] ( 3, 1.50) ref -> rax class-hnd "Inline return value spill temp" +; V13 tmp11 [V13,T10] ( 3, 1.50) ref -> rax class-hnd single-def "Inline stloc first use temp" ;* V14 tmp12 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V15 tmp13 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V16 tmp14 [V16,T08] ( 2, 2 ) ref -> r15 single-def "arr expr" -; V17 tmp15 [V17,T04] ( 3, 3 ) int -> rax "index expr" -; V18 cse0 [V18,T12] ( 3, 1.50) long -> rdi "CSE - moderate" -; V19 cse1 [V19,T06] ( 3, 2.50) long -> rdi "CSE - aggressive" -; V20 rat0 [V20,T03] ( 4, 3.50) ref -> r15 "replacement local" -; V21 rat1 [V21,T14] ( 3, 1 ) long -> rdi "CSE for expectedClsNode" +; V16 tmp14 [V16,T07] ( 2, 2 ) ref -> r15 single-def "arr expr" +; V17 tmp15 [V17,T03] ( 3, 3 ) int -> rax "index expr" +; V18 cse0 [V18,T11] ( 3, 1.50) long -> rdi "CSE - moderate" +; V19 cse1 [V19,T05] ( 3, 2.50) long -> rdi "CSE - aggressive" ; ; Lcl frame size = 8 G_M63136_IG01: push rbp push r15 push r14 push rbx push rax lea rbp, [rsp+0x20] mov rbx, rdi ;; size=15 bbWeight=1 PerfScore 5.75 G_M63136_IG02: mov rdi, qword ptr [rbx+0x10] test rdi, rdi je SHORT G_M63136_IG04 ;; size=9 bbWeight=1 PerfScore 3.25 G_M63136_IG03: mov rax, gword ptr [rdi] test rax, rax je SHORT G_M63136_IG04 jmp SHORT G_M63136_IG05 ;; size=10 bbWeight=0.50 PerfScore 2.62 G_M63136_IG04: mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.RuntimeType:InitializeCache():System.RuntimeType+RuntimeTypeCache:this call [rax]System.RuntimeType:InitializeCache():System.RuntimeType+RuntimeTypeCache:this ;; size=15 bbWeight=0.50 PerfScore 1.75 G_M63136_IG05: mov eax, dword ptr [rax+0x90] test eax, eax je SHORT G_M63136_IG07 ;; size=10 bbWeight=1 PerfScore 3.25 G_M63136_IG06: add rsp, 8 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=0.50 PerfScore 1.62 G_M63136_IG07: mov r15, rbx mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.RuntimeType:get_IsActualEnum():ubyte:this call [rax]System.RuntimeType:get_IsActualEnum():ubyte:this test eax, eax - je SHORT G_M63136_IG09 + je SHORT G_M63136_IG08 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.RuntimeType:get_IsActualEnum():ubyte:this call [rax]System.RuntimeType:get_IsActualEnum():ubyte:this test eax, eax - je G_M63136_IG30 + je G_M63136_IG29 mov rdi, 0xD1FFAB1E ; const ptr mov r15, gword ptr [rdi] mov rdi, qword ptr [rbx+0x18] call System.Enum:InternalGetCorElementType(ulong):ubyte cmp eax, 26 - jae G_M63136_IG29 + jae G_M63136_IG28 mov edi, eax - mov rsi, gword ptr [r15+8*rdi+0x10] - mov r15, rsi - test r15, r15 - je SHORT G_M63136_IG09 - ;; size=91 bbWeight=0.50 PerfScore 10.00 + mov r15, gword ptr [r15+8*rdi+0x10] + ;; size=83 bbWeight=0.50 PerfScore 9.25 G_M63136_IG08: - mov rdi, 0xD1FFAB1E ; System.RuntimeType - cmp qword ptr [r15], rdi - jne G_M63136_IG31 - ;; size=19 bbWeight=0.25 PerfScore 1.06 -G_M63136_IG09: mov rdi, 0xD1FFAB1E ; 'System.SByte' cmp r15, rdi - jne SHORT G_M63136_IG10 + jne SHORT G_M63136_IG09 mov r14d, 5 - jmp G_M63136_IG25 + jmp G_M63136_IG24 ;; size=26 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG10: +G_M63136_IG09: mov rdi, 0xD1FFAB1E ; 'System.Byte' cmp r15, rdi - jne SHORT G_M63136_IG11 + jne SHORT G_M63136_IG10 mov r14d, 6 - jmp G_M63136_IG25 + jmp G_M63136_IG24 ;; size=26 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG11: +G_M63136_IG10: mov rdi, 0xD1FFAB1E ; 'System.Int16' cmp r15, rdi - jne SHORT G_M63136_IG12 + jne SHORT G_M63136_IG11 mov r14d, 7 - jmp G_M63136_IG25 + jmp G_M63136_IG24 ;; size=26 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG12: +G_M63136_IG11: mov rdi, 0xD1FFAB1E ; 'System.UInt16' cmp r15, rdi - jne SHORT G_M63136_IG13 + jne SHORT G_M63136_IG12 mov r14d, 8 - jmp G_M63136_IG25 + jmp G_M63136_IG24 ;; size=26 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG13: +G_M63136_IG12: mov rdi, 0xD1FFAB1E ; 'System.Int32' cmp r15, rdi - jne SHORT G_M63136_IG14 + jne SHORT G_M63136_IG13 mov r14d, 9 - jmp G_M63136_IG25 + jmp G_M63136_IG24 ;; size=26 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG14: +G_M63136_IG13: mov rdi, 0xD1FFAB1E ; 'System.UInt32' cmp r15, rdi - jne SHORT G_M63136_IG15 + jne SHORT G_M63136_IG14 mov r14d, 10 - jmp G_M63136_IG25 + jmp G_M63136_IG24 ;; size=26 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG15: +G_M63136_IG14: mov rdi, 0xD1FFAB1E ; 'System.Int64' cmp r15, rdi - jne SHORT G_M63136_IG16 + jne SHORT G_M63136_IG15 mov r14d, 11 - jmp G_M63136_IG25 + jmp G_M63136_IG24 ;; size=26 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG16: +G_M63136_IG15: mov rdi, 0xD1FFAB1E ; 'System.UInt64' cmp r15, rdi - jne SHORT G_M63136_IG17 + jne SHORT G_M63136_IG16 mov r14d, 12 - jmp G_M63136_IG25 + jmp G_M63136_IG24 ;; size=26 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG17: +G_M63136_IG16: mov rdi, 0xD1FFAB1E ; 'System.Boolean' cmp r15, rdi - jne SHORT G_M63136_IG18 + jne SHORT G_M63136_IG17 mov r14d, 3 - jmp G_M63136_IG25 + jmp G_M63136_IG24 ;; size=26 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG18: +G_M63136_IG17: mov rdi, 0xD1FFAB1E ; 'System.Char' cmp r15, rdi - jne SHORT G_M63136_IG19 + jne SHORT G_M63136_IG18 mov r14d, 4 - jmp G_M63136_IG25 + jmp G_M63136_IG24 ;; size=26 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG19: +G_M63136_IG18: mov rdi, 0xD1FFAB1E ; 'System.Single' cmp r15, rdi - jne SHORT G_M63136_IG20 + jne SHORT G_M63136_IG19 mov r14d, 13 - jmp SHORT G_M63136_IG25 + jmp SHORT G_M63136_IG24 ;; size=23 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG20: +G_M63136_IG19: mov rdi, 0xD1FFAB1E ; 'System.Double' cmp r15, rdi - jne SHORT G_M63136_IG21 + jne SHORT G_M63136_IG20 mov r14d, 14 - jmp SHORT G_M63136_IG25 + jmp SHORT G_M63136_IG24 ;; size=23 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG21: +G_M63136_IG20: mov rdi, 0xD1FFAB1E ; 'System.Decimal' cmp r15, rdi - jne SHORT G_M63136_IG22 + jne SHORT G_M63136_IG21 mov r14d, 15 - jmp SHORT G_M63136_IG25 + jmp SHORT G_M63136_IG24 ;; size=23 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG22: +G_M63136_IG21: mov rdi, 0xD1FFAB1E ; 'System.DateTime' cmp r15, rdi - jne SHORT G_M63136_IG23 + jne SHORT G_M63136_IG22 mov r14d, 16 - jmp SHORT G_M63136_IG25 + jmp SHORT G_M63136_IG24 ;; size=23 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG23: +G_M63136_IG22: mov rdi, 0xD1FFAB1E ; 'System.String' cmp r15, rdi - jne SHORT G_M63136_IG24 + jne SHORT G_M63136_IG23 mov r14d, 18 - jmp SHORT G_M63136_IG25 + jmp SHORT G_M63136_IG24 ;; size=23 bbWeight=0.50 PerfScore 1.88 -G_M63136_IG24: +G_M63136_IG23: mov rdi, 0xD1FFAB1E ; 'System.DBNull' mov r14d, 1 mov eax, 2 cmp r15, rdi cmove r14d, eax ;; size=28 bbWeight=0.50 PerfScore 0.62 -G_M63136_IG25: +G_M63136_IG24: mov rdi, qword ptr [rbx+0x10] test rdi, rdi - je SHORT G_M63136_IG26 + je SHORT G_M63136_IG25 mov rax, gword ptr [rdi] test rax, rax - je SHORT G_M63136_IG26 - jmp SHORT G_M63136_IG27 + je SHORT G_M63136_IG25 + jmp SHORT G_M63136_IG26 ;; size=19 bbWeight=0.50 PerfScore 4.25 -G_M63136_IG26: +G_M63136_IG25: mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.RuntimeType:InitializeCache():System.RuntimeType+RuntimeTypeCache:this call [rax]System.RuntimeType:InitializeCache():System.RuntimeType+RuntimeTypeCache:this ;; size=15 bbWeight=0.50 PerfScore 1.75 -G_M63136_IG27: +G_M63136_IG26: mov dword ptr [rax+0x90], r14d mov eax, r14d ;; size=10 bbWeight=0.50 PerfScore 0.62 -G_M63136_IG28: +G_M63136_IG27: add rsp, 8 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=0.50 PerfScore 1.62 -G_M63136_IG29: +G_M63136_IG28: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 -G_M63136_IG30: +G_M63136_IG29: mov rax, 0xD1FFAB1E ; code for System.RuntimeType:ThrowMustBeEnum() call [rax]System.RuntimeType:ThrowMustBeEnum() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M63136_IG31: - mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS - call [rax]CORINFO_HELP_CHKCASTCLASS - int3 - ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 669, prolog size 12, PerfScore 66.31, instruction count 156, allocated bytes for code 669 (MethodHash=c393095f) for method System.RuntimeType:GetTypeCodeImpl():int:this (FullOpts) +; Total bytes of code 629, prolog size 12, PerfScore 64.50, instruction count 147, allocated bytes for code 629 (MethodHash=c393095f) for method System.RuntimeType:GetTypeCodeImpl():int:this (FullOpts) ```
-40 (-7.30 % of base) - System.Type:GetRuntimeTypeCode(System.RuntimeType):int ```diff ; Assembly listing for method System.Type:GetRuntimeTypeCode(System.RuntimeType):int (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T02] ( 6, 4.50) ref -> rbx class-hnd single-def ; V01 loc0 [V01,T01] ( 19, 11 ) ref -> r15 class-hnd ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" ;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" -; V05 tmp3 [V05,T06] ( 3, 1 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" +; V05 tmp3 [V05,T05] ( 2, 1 ) ref -> r15 class-hnd exact single-def "Inline stloc first use temp" ; V06 tmp4 [V06,T00] ( 14, 14 ) int -> rax "Single return block return value" -; V07 tmp5 [V07,T05] ( 2, 2 ) ref -> r15 single-def "arr expr" -; V08 tmp6 [V08,T04] ( 3, 3 ) int -> rax "index expr" -; V09 rat0 [V09,T03] ( 4, 3.50) ref -> r15 "replacement local" -; V10 rat1 [V10,T07] ( 3, 1 ) long -> rdi "CSE for expectedClsNode" +; V07 tmp5 [V07,T04] ( 2, 2 ) ref -> r15 single-def "arr expr" +; V08 tmp6 [V08,T03] ( 3, 3 ) int -> rax "index expr" ; ; Lcl frame size = 0 G_M36139_IG01: push rbp push r15 push rbx lea rbp, [rsp+0x10] mov rbx, rdi ;; size=12 bbWeight=1 PerfScore 3.75 G_M36139_IG02: mov r15, rbx mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.RuntimeType:get_IsActualEnum():ubyte:this cmp dword ptr [rdi], edi call [rax]System.RuntimeType:get_IsActualEnum():ubyte:this test eax, eax - je SHORT G_M36139_IG05 + je SHORT G_M36139_IG04 ;; size=24 bbWeight=1 PerfScore 8.00 G_M36139_IG03: mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.RuntimeType:get_IsActualEnum():ubyte:this call [rax]System.RuntimeType:get_IsActualEnum():ubyte:this test eax, eax - je G_M36139_IG27 + je G_M36139_IG26 mov rdi, 0xD1FFAB1E ; const ptr mov r15, gword ptr [rdi] mov rdi, qword ptr [rbx+0x18] call System.Enum:InternalGetCorElementType(ulong):ubyte cmp eax, 26 - jae G_M36139_IG26 + jae G_M36139_IG25 mov eax, eax - mov rsi, gword ptr [r15+8*rax+0x10] - mov r15, rsi - test r15, r15 - je SHORT G_M36139_IG05 - ;; size=69 bbWeight=0.50 PerfScore 7.50 + mov r15, gword ptr [r15+8*rax+0x10] + ;; size=61 bbWeight=0.50 PerfScore 6.75 G_M36139_IG04: - mov rdi, 0xD1FFAB1E ; System.RuntimeType - cmp qword ptr [r15], rdi - jne G_M36139_IG28 - ;; size=19 bbWeight=0.25 PerfScore 1.06 -G_M36139_IG05: mov rax, 0xD1FFAB1E ; 'System.SByte' cmp r15, rax - jne SHORT G_M36139_IG08 + jne SHORT G_M36139_IG07 ;; size=15 bbWeight=1 PerfScore 1.50 -G_M36139_IG06: +G_M36139_IG05: mov eax, 5 ;; size=5 bbWeight=0.50 PerfScore 0.12 -G_M36139_IG07: +G_M36139_IG06: pop rbx pop r15 pop rbp ret ;; size=5 bbWeight=0.50 PerfScore 1.25 -G_M36139_IG08: +G_M36139_IG07: mov rax, 0xD1FFAB1E ; 'System.Byte' cmp r15, rax - jne SHORT G_M36139_IG10 + jne SHORT G_M36139_IG09 mov eax, 6 ;; size=20 bbWeight=0.50 PerfScore 0.88 -G_M36139_IG09: +G_M36139_IG08: pop rbx pop r15 pop rbp ret ;; size=5 bbWeight=0.50 PerfScore 1.25 -G_M36139_IG10: +G_M36139_IG09: mov rax, 0xD1FFAB1E ; 'System.Int16' cmp r15, rax - jne SHORT G_M36139_IG12 + jne SHORT G_M36139_IG11 mov eax, 7 ;; size=20 bbWeight=0.50 PerfScore 0.88 -G_M36139_IG11: +G_M36139_IG10: pop rbx pop r15 pop rbp ret ;; size=5 bbWeight=0.50 PerfScore 1.25 -G_M36139_IG12: +G_M36139_IG11: mov rax, 0xD1FFAB1E ; 'System.UInt16' cmp r15, rax - jne SHORT G_M36139_IG13 + jne SHORT G_M36139_IG12 mov eax, 8 - jmp G_M36139_IG25 + jmp G_M36139_IG24 ;; size=25 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG13: +G_M36139_IG12: mov rax, 0xD1FFAB1E ; 'System.Int32' cmp r15, rax - jne SHORT G_M36139_IG14 + jne SHORT G_M36139_IG13 mov eax, 9 - jmp G_M36139_IG25 + jmp G_M36139_IG24 ;; size=25 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG14: +G_M36139_IG13: mov rax, 0xD1FFAB1E ; 'System.UInt32' cmp r15, rax - jne SHORT G_M36139_IG15 + jne SHORT G_M36139_IG14 mov eax, 10 - jmp G_M36139_IG25 + jmp G_M36139_IG24 ;; size=25 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG15: +G_M36139_IG14: mov rax, 0xD1FFAB1E ; 'System.Int64' cmp r15, rax - jne SHORT G_M36139_IG16 + jne SHORT G_M36139_IG15 mov eax, 11 - jmp G_M36139_IG25 + jmp G_M36139_IG24 ;; size=25 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG16: +G_M36139_IG15: mov rax, 0xD1FFAB1E ; 'System.UInt64' cmp r15, rax - jne SHORT G_M36139_IG17 + jne SHORT G_M36139_IG16 mov eax, 12 - jmp G_M36139_IG25 + jmp G_M36139_IG24 ;; size=25 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG17: +G_M36139_IG16: mov rax, 0xD1FFAB1E ; 'System.Boolean' cmp r15, rax - jne SHORT G_M36139_IG18 + jne SHORT G_M36139_IG17 mov eax, 3 - jmp G_M36139_IG25 + jmp G_M36139_IG24 ;; size=25 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG18: +G_M36139_IG17: mov rax, 0xD1FFAB1E ; 'System.Char' cmp r15, rax - jne SHORT G_M36139_IG19 + jne SHORT G_M36139_IG18 mov eax, 4 - jmp G_M36139_IG25 + jmp G_M36139_IG24 ;; size=25 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG19: +G_M36139_IG18: mov rax, 0xD1FFAB1E ; 'System.Single' cmp r15, rax - jne SHORT G_M36139_IG20 + jne SHORT G_M36139_IG19 mov eax, 13 - jmp SHORT G_M36139_IG25 + jmp SHORT G_M36139_IG24 ;; size=22 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG20: +G_M36139_IG19: mov rax, 0xD1FFAB1E ; 'System.Double' cmp r15, rax - jne SHORT G_M36139_IG21 + jne SHORT G_M36139_IG20 mov eax, 14 - jmp SHORT G_M36139_IG25 + jmp SHORT G_M36139_IG24 ;; size=22 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG21: +G_M36139_IG20: mov rax, 0xD1FFAB1E ; 'System.Decimal' cmp r15, rax - jne SHORT G_M36139_IG22 + jne SHORT G_M36139_IG21 mov eax, 15 - jmp SHORT G_M36139_IG25 + jmp SHORT G_M36139_IG24 ;; size=22 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG22: +G_M36139_IG21: mov rax, 0xD1FFAB1E ; 'System.DateTime' cmp r15, rax - jne SHORT G_M36139_IG23 + jne SHORT G_M36139_IG22 mov eax, 16 - jmp SHORT G_M36139_IG25 + jmp SHORT G_M36139_IG24 ;; size=22 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG23: +G_M36139_IG22: mov rax, 0xD1FFAB1E ; 'System.String' cmp r15, rax - jne SHORT G_M36139_IG24 + jne SHORT G_M36139_IG23 mov eax, 18 - jmp SHORT G_M36139_IG25 + jmp SHORT G_M36139_IG24 ;; size=22 bbWeight=0.50 PerfScore 1.88 -G_M36139_IG24: +G_M36139_IG23: mov rax, 0xD1FFAB1E ; 'System.DBNull' mov ecx, 1 mov edx, 2 cmp r15, rax mov eax, edx cmovne eax, ecx ;; size=28 bbWeight=0.50 PerfScore 0.75 -G_M36139_IG25: +G_M36139_IG24: pop rbx pop r15 pop rbp ret ;; size=5 bbWeight=0.50 PerfScore 1.25 -G_M36139_IG26: +G_M36139_IG25: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 -G_M36139_IG27: +G_M36139_IG26: mov rax, 0xD1FFAB1E ; code for System.RuntimeType:ThrowMustBeEnum() call [rax]System.RuntimeType:ThrowMustBeEnum() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M36139_IG28: - mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS - call [rax]CORINFO_HELP_CHKCASTCLASS - int3 - ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 548, prolog size 9, PerfScore 51.94, instruction count 132, allocated bytes for code 548 (MethodHash=3b6972d4) for method System.Type:GetRuntimeTypeCode(System.RuntimeType):int (FullOpts) +; Total bytes of code 508, prolog size 9, PerfScore 50.12, instruction count 123, allocated bytes for code 508 (MethodHash=3b6972d4) for method System.Type:GetRuntimeTypeCode(System.RuntimeType):int (FullOpts) ```

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

MihuBot commented 9 months ago

@MihaZupan