Skip to content

Conversation

@AndyAyersMS
Copy link
Member

Handle cases where the dominating compare is the reverse of the compare
we're trying to optimize. For example, if (x > y) dominates (y <= x)
we may be able to optimize the dominated compare.

Addresses aspects of #48115.

Handle cases where the dominating compare is the reverse of the compare
we're trying to optimize. For example, if `(x > y)` dominates `(y <= x)`
we may be able to optimize the dominated compare.

Addresses aspects of dotnet#48115.
@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Oct 21, 2021
@ghost
Copy link

ghost commented Oct 21, 2021

Tagging subscribers to this area: @JulieLeeMSFT
See info in area-owners.md if you want to be subscribed.

Issue Details

Handle cases where the dominating compare is the reverse of the compare
we're trying to optimize. For example, if (x > y) dominates (y <= x)
we may be able to optimize the dominated compare.

Addresses aspects of #48115.

Author: AndyAyersMS
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@AndyAyersMS
Copy link
Member Author

cc @dotnet/jit-contrib

Small number of regressions, mostly RA/CSE differences.

aspnet.run.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 11830317 (overridden on cmd)
Total bytes of diff: 11828839 (overridden on cmd)
Total bytes of delta: -1478 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          10 : 6661.dasm (2.03% of base)
           3 : 25192.dasm (0.10% of base)
           2 : 38969.dasm (0.04% of base)

Top file improvements (bytes):
         -56 : 39235.dasm (-4.56% of base)
         -56 : 28335.dasm (-4.56% of base)
         -39 : 6823.dasm (-0.85% of base)
         -36 : 34582.dasm (-20.93% of base)
         -36 : 31874.dasm (-20.93% of base)
         -36 : 5253.dasm (-20.93% of base)
         -36 : 10687.dasm (-20.93% of base)
         -36 : 24660.dasm (-20.93% of base)
         -36 : 33146.dasm (-20.93% of base)
         -33 : 7111.dasm (-5.47% of base)
         -24 : 28749.dasm (-48.98% of base)
         -24 : 39718.dasm (-48.98% of base)
         -21 : 6654.dasm (-0.58% of base)
         -20 : 33414.dasm (-5.43% of base)
         -20 : 23831.dasm (-5.43% of base)
         -20 : 28627.dasm (-4.96% of base)
         -20 : 35882.dasm (-4.96% of base)
         -20 : 28630.dasm (-4.77% of base)
         -20 : 39682.dasm (-4.77% of base)
         -19 : 30606.dasm (-20.43% of base)

131 total files with Code Size differences (128 improved, 3 regressed), 14 unchanged.

Top method regressions (bytes):
          10 ( 2.03% of base) : 6661.dasm - HillClimbing:LogTransition(int,double,int):this
           3 ( 0.10% of base) : 25192.dasm - <ExecuteAsync>d__8:MoveNext():this
           2 ( 0.04% of base) : 38969.dasm - SelectExpression:VisitChildren(ExpressionVisitor):Expression:this

Top method improvements (bytes):
         -56 (-4.56% of base) : 39235.dasm - RelationalCommand:CreateDbCommand(RelationalCommandParameterObject,Guid,int):DbCommand:this
         -56 (-4.56% of base) : 28335.dasm - RelationalCommand:CreateDbCommand(RelationalCommandParameterObject,Guid,int):DbCommand:this
         -39 (-0.85% of base) : 6823.dasm - <ProcessRequestsAsync>d__69:MoveNext():this
         -36 (-20.93% of base) : 34582.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 31874.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 5253.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 10687.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 24660.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 33146.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -33 (-5.47% of base) : 7111.dasm - PathUtils:PathNavigatesAboveRoot(String):bool
         -24 (-48.98% of base) : 28749.dasm - NpgsqlDataReader:get_RecordsAffected():int:this
         -24 (-48.98% of base) : 39718.dasm - NpgsqlDataReader:get_RecordsAffected():int:this
         -21 (-0.58% of base) : 6654.dasm - HillClimbing:Update(int,double,int):ValueTuple`2:this
         -20 (-4.96% of base) : 28627.dasm - ConnectorTypeMapper:BindArrayType(NpgsqlTypeHandler,PostgresArrayType,Nullable`1,ref):this
         -20 (-4.96% of base) : 35882.dasm - ConnectorTypeMapper:BindArrayType(NpgsqlTypeHandler,PostgresArrayType,Nullable`1,ref):this
         -20 (-4.77% of base) : 28630.dasm - ConnectorTypeMapper:BindRangeType(NpgsqlTypeHandler,PostgresRangeType,Nullable`1,ref):this
         -20 (-4.77% of base) : 39682.dasm - ConnectorTypeMapper:BindRangeType(NpgsqlTypeHandler,PostgresRangeType,Nullable`1,ref):this
         -20 (-5.43% of base) : 33414.dasm - SpinWait:SpinOnceCore(int):this
         -20 (-5.43% of base) : 23831.dasm - SpinWait:SpinOnceCore(int):this
         -19 (-20.43% of base) : 11923.dasm - ControllerActionInvoker:Rethrow(ActionExecutedContextSealed)

Top method regressions (percentages):
          10 ( 2.03% of base) : 6661.dasm - HillClimbing:LogTransition(int,double,int):this
           3 ( 0.10% of base) : 25192.dasm - <ExecuteAsync>d__8:MoveNext():this
           2 ( 0.04% of base) : 38969.dasm - SelectExpression:VisitChildren(ExpressionVisitor):Expression:this

Top method improvements (percentages):
         -24 (-48.98% of base) : 28749.dasm - NpgsqlDataReader:get_RecordsAffected():int:this
         -24 (-48.98% of base) : 39718.dasm - NpgsqlDataReader:get_RecordsAffected():int:this
         -36 (-20.93% of base) : 34582.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 31874.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 5253.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 10687.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 24660.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 33146.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -19 (-20.43% of base) : 11923.dasm - ControllerActionInvoker:Rethrow(ActionExecutedContextSealed)
         -19 (-20.43% of base) : 30606.dasm - ResourceInvoker:Rethrow(ResourceExecutedContextSealed)
         -19 (-20.43% of base) : 11878.dasm - ResourceInvoker:Rethrow(ResultExecutedContextSealed)
          -5 (-7.94% of base) : 24024.dasm - Pipe:GetReadAsyncStatus():int:this
          -5 (-7.94% of base) : 31947.dasm - Pipe:GetReadAsyncStatus():int:this
         -33 (-5.47% of base) : 7111.dasm - PathUtils:PathNavigatesAboveRoot(String):bool
         -20 (-5.43% of base) : 33414.dasm - SpinWait:SpinOnceCore(int):this
         -20 (-5.43% of base) : 23831.dasm - SpinWait:SpinOnceCore(int):this
         -14 (-5.15% of base) : 27105.dasm - ValueGenerationConvention:ShouldHaveGeneratedProperty(IReadOnlyKey):bool
          -8 (-5.10% of base) : 30185.dasm - Ordinal:CompareStringIgnoreCase(byref,int,byref,int):int
          -9 (-4.97% of base) : 26803.dasm - HashCode:Combine(TypeMappingInfo,__Canon,Nullable`1):int
         -20 (-4.96% of base) : 28627.dasm - ConnectorTypeMapper:BindArrayType(NpgsqlTypeHandler,PostgresArrayType,Nullable`1,ref):this

131 total methods with Code Size differences (128 improved, 3 regressed), 14 unchanged.


benchmarks.run.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 7228664 (overridden on cmd)
Total bytes of diff: 7226065 (overridden on cmd)
Total bytes of delta: -2599 (-0.04 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          39 : 3520.dasm (31.20% of base)
          39 : 2984.dasm (31.97% of base)
          23 : 17442.dasm (1.58% of base)
          21 : 8357.dasm (2.64% of base)
          21 : 14250.dasm (4.99% of base)
          20 : 2418.dasm (0.26% of base)
          18 : 2831.dasm (3.90% of base)
          13 : 2811.dasm (6.60% of base)
          12 : 450.dasm (3.30% of base)
           6 : 11512.dasm (0.43% of base)
           6 : 13226.dasm (1.76% of base)
           6 : 3255.dasm (1.75% of base)
           6 : 4784.dasm (2.76% of base)
           6 : 10097.dasm (1.04% of base)
           6 : 4781.dasm (2.76% of base)
           4 : 8180.dasm (2.78% of base)
           4 : 3085.dasm (0.07% of base)
           3 : 18000.dasm (0.63% of base)
           3 : 25502.dasm (0.45% of base)
           2 : 3155.dasm (0.02% of base)

Top file improvements (bytes):
        -215 : 3863.dasm (-3.07% of base)
        -134 : 17656.dasm (-27.46% of base)
        -126 : 25406.dasm (-1.18% of base)
         -65 : 17541.dasm (-6.52% of base)
         -63 : 19016.dasm (-4.00% of base)
         -62 : 13858.dasm (-0.27% of base)
         -62 : 18004.dasm (-2.14% of base)
         -52 : 2936.dasm (-2.85% of base)
         -48 : 19001.dasm (-17.78% of base)
         -47 : 20859.dasm (-26.86% of base)
         -46 : 394.dasm (-5.94% of base)
         -45 : 15080.dasm (-0.66% of base)
         -42 : 23254.dasm (-26.92% of base)
         -37 : 2946.dasm (-0.64% of base)
         -34 : 18975.dasm (-12.59% of base)
         -32 : 18915.dasm (-1.47% of base)
         -30 : 23147.dasm (-0.81% of base)
         -30 : 24286.dasm (-0.66% of base)
         -30 : 17829.dasm (-3.07% of base)
         -30 : 24285.dasm (-0.87% of base)

193 total files with Code Size differences (171 improved, 22 regressed), 3 unchanged.

Top method regressions (bytes):
          39 (31.20% of base) : 3520.dasm - System.Runtime.Serialization.CodeGenerator:Load(System.Object):this
          39 (31.97% of base) : 2984.dasm - System.Xml.Serialization.CodeGenerator:Load(System.Object):this
          23 ( 1.58% of base) : 17442.dasm - Microsoft.CodeAnalysis.Compilation:Emit(System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.ResourceDescription, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.Emit.EmitOptions,Microsoft.CodeAnalysis.IMethodSymbol,System.IO.Stream,System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.EmbeddedText, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.IO.Stream,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Emit.EmitResult:this
          21 ( 2.64% of base) : 8357.dasm - System.Runtime.Serialization.Json.XmlJsonReader:ParseInt(System.String,int):int
          21 ( 4.99% of base) : 14250.dasm - System.Tests.Perf_Decimal:Parse(System.String):System.Decimal:this
          20 ( 0.26% of base) : 2418.dasm - System.Text.RegularExpressions.RegexCompiler:GenerateFindFirstChar():this
          18 ( 3.90% of base) : 2831.dasm - System.Runtime.Loader.AssemblyLoadContext:LoadFromAssemblyPath(System.String):System.Reflection.Assembly:this
          13 ( 6.60% of base) : 2811.dasm - System.IO.Path:GetDirectoryName(System.String):System.String
          12 ( 3.30% of base) : 450.dasm - System.IO.Path:GetFullPath(System.String):System.String
           6 ( 2.76% of base) : 4781.dasm - System.Globalization.CompareInfo:IsPrefix(System.String,System.String,int):bool:this
           6 ( 2.76% of base) : 4784.dasm - System.Globalization.CompareInfo:IsSuffix(System.String,System.String,int):bool:this
           6 ( 1.75% of base) : 3255.dasm - System.Reflection.RuntimeAssembly:GetManifestResourceStream(System.Type,System.String):System.IO.Stream:this
           6 ( 0.43% of base) : 11512.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryParser:ReadValue(int):System.Object:this
           6 ( 1.76% of base) : 13226.dasm - System.Runtime.Serialization.Json.JsonReaderDelegator:ReadElementContentAsDateTime():System.DateTime:this
           6 ( 1.04% of base) : 10097.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.String,System.String):this
           4 ( 2.78% of base) : 8180.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:ReadEncoding(ubyte,ubyte):int
           4 ( 0.07% of base) : 3085.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this
           3 ( 0.63% of base) : 18000.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetWellKnownTypeMember(int):Microsoft.CodeAnalysis.CSharp.Symbol:this
           3 ( 0.45% of base) : 25502.dasm - Microsoft.Extensions.Logging.LoggerRuleSelector:IsBetter(Microsoft.Extensions.Logging.LoggerFilterRule,Microsoft.Extensions.Logging.LoggerFilterRule,System.String,System.String):bool
           2 ( 0.02% of base) : 3155.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this

Top method improvements (bytes):
        -215 (-3.07% of base) : 3863.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[Char][System.Char]:First(System.Buffers.ReadOnlySequence`1[Char]):int:this
        -134 (-27.46% of base) : 17656.dasm - System.Reflection.Metadata.Ecma335.StringHeap:Equals(System.Reflection.Metadata.StringHandle,System.String,System.Reflection.Metadata.MetadataStringDecoder,bool):bool:this
        -126 (-1.18% of base) : 25406.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,System.Char[]):System.DateTime
         -65 (-6.52% of base) : 17541.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:ToDeclarationModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.DiagnosticBag):int
         -63 (-4.00% of base) : 19016.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeManager:AssignTemplatesNamesAndCompile(Microsoft.CodeAnalysis.CSharp.MethodCompiler,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag):this
         -62 (-0.27% of base) : 13858.dasm - DynamicClass:_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int)
         -62 (-2.14% of base) : 18004.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:LoadMembers():this
         -52 (-2.85% of base) : 2936.dasm - System.Xml.Serialization.XmlReflectionImporter:ReconcileAccessor(System.Xml.Serialization.Accessor,System.Xml.Serialization.NameTable):System.Xml.Serialization.Accessor:this
         -48 (-17.78% of base) : 19001.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:Microsoft.Cci.ISignature.GetParameters(Microsoft.CodeAnalysis.Emit.EmitContext):System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.IParameterTypeInformation, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
         -47 (-26.86% of base) : 20859.dasm - System.Collections.IterateForEach`1[__Canon][System.__Canon]:ImmutableStack():System.__Canon:this
         -46 (-5.94% of base) : 394.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this
         -45 (-0.66% of base) : 15080.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[Char][System.Char]:FirstSpan(System.Buffers.ReadOnlySequence`1[Char]):int:this
         -42 (-26.92% of base) : 23254.dasm - System.Collections.IterateForEach`1[Int32][System.Int32]:ImmutableStack():int:this
         -37 (-0.64% of base) : 2946.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):this
         -34 (-12.59% of base) : 18975.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:OptimizeTemporaries(Microsoft.CodeAnalysis.CSharp.BoundExpression[],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]])
         -32 (-1.47% of base) : 18915.dasm - Microsoft.CodeAnalysis.CSharp.ImportChain:TranslateImports(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[UsedNamespaceOrType]:this
         -30 (-1.05% of base) : 16624.dasm - DynamicClass:_DynamicMethod11(byref):int
         -30 (-0.81% of base) : 23147.dasm - DynamicClass:_DynamicMethod3(byref):int
         -30 (-0.87% of base) : 24285.dasm - DynamicClass:_DynamicMethod3(byref):int
         -30 (-0.98% of base) : 25404.dasm - DynamicClass:_DynamicMethod3(byref):int

Top method regressions (percentages):
          39 (31.97% of base) : 2984.dasm - System.Xml.Serialization.CodeGenerator:Load(System.Object):this
          39 (31.20% of base) : 3520.dasm - System.Runtime.Serialization.CodeGenerator:Load(System.Object):this
          13 ( 6.60% of base) : 2811.dasm - System.IO.Path:GetDirectoryName(System.String):System.String
          21 ( 4.99% of base) : 14250.dasm - System.Tests.Perf_Decimal:Parse(System.String):System.Decimal:this
          18 ( 3.90% of base) : 2831.dasm - System.Runtime.Loader.AssemblyLoadContext:LoadFromAssemblyPath(System.String):System.Reflection.Assembly:this
          12 ( 3.30% of base) : 450.dasm - System.IO.Path:GetFullPath(System.String):System.String
           4 ( 2.78% of base) : 8180.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:ReadEncoding(ubyte,ubyte):int
           6 ( 2.76% of base) : 4781.dasm - System.Globalization.CompareInfo:IsPrefix(System.String,System.String,int):bool:this
           6 ( 2.76% of base) : 4784.dasm - System.Globalization.CompareInfo:IsSuffix(System.String,System.String,int):bool:this
          21 ( 2.64% of base) : 8357.dasm - System.Runtime.Serialization.Json.XmlJsonReader:ParseInt(System.String,int):int
           6 ( 1.76% of base) : 13226.dasm - System.Runtime.Serialization.Json.JsonReaderDelegator:ReadElementContentAsDateTime():System.DateTime:this
           6 ( 1.75% of base) : 3255.dasm - System.Reflection.RuntimeAssembly:GetManifestResourceStream(System.Type,System.String):System.IO.Stream:this
          23 ( 1.58% of base) : 17442.dasm - Microsoft.CodeAnalysis.Compilation:Emit(System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.ResourceDescription, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.Emit.EmitOptions,Microsoft.CodeAnalysis.IMethodSymbol,System.IO.Stream,System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.EmbeddedText, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.IO.Stream,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Emit.EmitResult:this
           6 ( 1.04% of base) : 10097.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.String,System.String):this
           3 ( 0.63% of base) : 18000.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetWellKnownTypeMember(int):Microsoft.CodeAnalysis.CSharp.Symbol:this
           3 ( 0.45% of base) : 25502.dasm - Microsoft.Extensions.Logging.LoggerRuleSelector:IsBetter(Microsoft.Extensions.Logging.LoggerFilterRule,Microsoft.Extensions.Logging.LoggerFilterRule,System.String,System.String):bool
           6 ( 0.43% of base) : 11512.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryParser:ReadValue(int):System.Object:this
          20 ( 0.26% of base) : 2418.dasm - System.Text.RegularExpressions.RegexCompiler:GenerateFindFirstChar():this
           1 ( 0.14% of base) : 16742.dasm - SorterObjectArray:PickPivotAndPartition(int,int):int:this
           4 ( 0.07% of base) : 3085.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this

Top method improvements (percentages):
        -134 (-27.46% of base) : 17656.dasm - System.Reflection.Metadata.Ecma335.StringHeap:Equals(System.Reflection.Metadata.StringHandle,System.String,System.Reflection.Metadata.MetadataStringDecoder,bool):bool:this
         -42 (-26.92% of base) : 23254.dasm - System.Collections.IterateForEach`1[Int32][System.Int32]:ImmutableStack():int:this
         -47 (-26.86% of base) : 20859.dasm - System.Collections.IterateForEach`1[__Canon][System.__Canon]:ImmutableStack():System.__Canon:this
         -48 (-17.78% of base) : 19001.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:Microsoft.Cci.ISignature.GetParameters(Microsoft.CodeAnalysis.Emit.EmitContext):System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.IParameterTypeInformation, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
         -15 (-16.48% of base) : 10081.dasm - System.Text.Json.Serialization.Converters.NullableConverter`1[DateTimeOffset][System.DateTimeOffset]:Write(System.Text.Json.Utf8JsonWriter,System.Nullable`1[DateTimeOffset],System.Text.Json.JsonSerializerOptions):this
         -14 (-15.22% of base) : 18977.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetRefKindsOrNull(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[RefKind]):System.Collections.Immutable.ImmutableArray`1[RefKind]
         -19 (-14.62% of base) : 114.dasm - System.Threading.Tasks.Task`1[VoidTaskResult][System.Threading.Tasks.VoidTaskResult]:.ctor(bool,System.Threading.Tasks.VoidTaskResult,int,System.Threading.CancellationToken):this
         -10 (-14.29% of base) : 3201.dasm - System.Reflection.Emit.InternalAssemblyBuilder:Equals(System.Object):bool:this
         -10 (-14.29% of base) : 2633.dasm - System.Reflection.Emit.InternalModuleBuilder:Equals(System.Object):bool:this
         -22 (-13.66% of base) : 5715.dasm - System.Text.Json.JsonDocument:ClearAndReturn(System.ArraySegment`1[Byte])
         -34 (-12.59% of base) : 18975.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:OptimizeTemporaries(Microsoft.CodeAnalysis.CSharp.BoundExpression[],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]])
         -13 (-11.93% of base) : 18284.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:Any(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ImmutableArray`1],System.Func`2[ImmutableArray`1,Boolean]):bool
         -23 (-10.41% of base) : 18745.dasm - Microsoft.CodeAnalysis.CSharp.DataFlowPass:IntersectWith(byref,byref):bool:this
         -10 (-8.70% of base) : 16153.dasm - System.Xml.Serialization.NameKey:Equals(System.Object):bool:this
          -9 (-7.38% of base) : 20647.dasm - Microsoft.CodeAnalysis.CSharp.DataFlowsInWalker:ResetState(LocalState):LocalState:this
         -17 (-7.17% of base) : 1192.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:GetNext(byref):System.Object:this
         -65 (-6.52% of base) : 17541.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:ToDeclarationModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.DiagnosticBag):int
         -46 (-5.94% of base) : 394.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this
         -23 (-5.93% of base) : 17549.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode:ComputeSyntaxTree(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.SyntaxTree
          -5 (-5.62% of base) : 18123.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:get_PrimitiveTypeCode():int:this

193 total methods with Code Size differences (171 improved, 22 regressed), 3 unchanged.


coreclr_tests.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 127277355 (overridden on cmd)
Total bytes of diff: 127262219 (overridden on cmd)
Total bytes of delta: -15136 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
           4 : 234406.dasm (0.07% of base)
           2 : 233072.dasm (0.46% of base)
           2 : 233083.dasm (0.27% of base)

Top file improvements (bytes):
       -1104 : 237663.dasm (-52.85% of base)
       -1104 : 237667.dasm (-52.85% of base)
        -852 : 237659.dasm (-40.79% of base)
        -852 : 237655.dasm (-40.79% of base)
        -377 : 154131.dasm (-15.48% of base)
        -377 : 151466.dasm (-14.52% of base)
        -267 : 210315.dasm (-13.34% of base)
        -150 : 151594.dasm (-43.48% of base)
        -150 : 154230.dasm (-43.48% of base)
        -136 : 152548.dasm (-17.69% of base)
        -135 : 152298.dasm (-35.71% of base)
        -135 : 154724.dasm (-35.71% of base)
        -122 : 191490.dasm (-62.24% of base)
        -119 : 152127.dasm (-31.73% of base)
         -91 : 245295.dasm (-5.89% of base)
         -91 : 245298.dasm (-5.89% of base)
         -91 : 245299.dasm (-5.89% of base)
         -91 : 245300.dasm (-5.89% of base)
         -91 : 245301.dasm (-5.89% of base)
         -84 : 151986.dasm (-28.77% of base)

421 total files with Code Size differences (418 improved, 3 regressed), 5 unchanged.

Top method regressions (bytes):
           4 ( 0.07% of base) : 234406.dasm - ScanProjectFiles:ParseAndUpdateProj(System.String,bool):bool
           2 ( 0.27% of base) : 233083.dasm - Driver`2[__Canon,__Canon][System.__Canon,System.__Canon]:AddRemoveKeyValPair(System.__Canon[],System.__Canon[],int,int):this
           2 ( 0.46% of base) : 233072.dasm - Driver`2[__Canon,__Canon][System.__Canon,System.__Canon]:BasicAdd(System.__Canon[],System.__Canon[]):this

Top method improvements (bytes):
       -1104 (-52.85% of base) : 237667.dasm - JitTest.Test:RunTests(double,double,double,double)
       -1104 (-52.85% of base) : 237663.dasm - JitTest.Test:RunTests(float,float,float,float)
        -852 (-40.79% of base) : 237659.dasm - JitTest.Test:RunTests(double,double,double,double)
        -852 (-40.79% of base) : 237655.dasm - JitTest.Test:RunTests(float,float,float,float)
        -377 (-15.48% of base) : 154131.dasm - testout1:Func_0_5_5_3():System.Decimal
        -377 (-14.52% of base) : 151466.dasm - testout1:Func_0_5_5_3():System.Decimal
        -267 (-13.34% of base) : 210315.dasm - Internal.IL.ILImporter:ImportBinaryOperation(int):this
        -150 (-43.48% of base) : 151594.dasm - testout1:Func_0_1_5_1_6():long
        -150 (-43.48% of base) : 154230.dasm - testout1:Func_0_1_5_1_6():long
        -136 (-17.69% of base) : 152548.dasm - testout1:Func_0_6_5_6_1():float
        -135 (-35.71% of base) : 152298.dasm - testout1:Func_0_5_3_5_5():double
        -135 (-35.71% of base) : 154724.dasm - testout1:Func_0_5_3_5_5():double
        -122 (-62.24% of base) : 191490.dasm - testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
        -119 (-31.73% of base) : 152127.dasm - testout1:Func_0_4_5_3_1():long
         -91 (-5.89% of base) : 245295.dasm - AA`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:Static2(System.Boolean[,,][,],byref,ubyte,System.Nullable`1[Int32],ubyte,System.Nullable`1[Int32]):System.Boolean[,,,]
         -91 (-5.89% of base) : 245300.dasm - AA`2[Double,Nullable`1][System.Double,System.Nullable`1[System.Int32]]:Static2(System.Boolean[,,][,],byref,double,System.Nullable`1[Int32],double,System.Nullable`1[Int32]):System.Boolean[,,,]
         -91 (-5.89% of base) : 245298.dasm - AA`2[Int16,Nullable`1][System.Int16,System.Nullable`1[System.Int32]]:Static2(System.Boolean[,,][,],byref,short,System.Nullable`1[Int32],short,System.Nullable`1[Int32]):System.Boolean[,,,]
         -91 (-5.89% of base) : 245299.dasm - AA`2[Int32,Nullable`1][System.Int32,System.Nullable`1[System.Int32]]:Static2(System.Boolean[,,][,],byref,int,System.Nullable`1[Int32],int,System.Nullable`1[Int32]):System.Boolean[,,,]
         -91 (-5.89% of base) : 245301.dasm - AA`2[Int64,Nullable`1][System.Int64,System.Nullable`1[System.Int32]]:Static2(System.Boolean[,,][,],byref,long,System.Nullable`1[Int32],long,System.Nullable`1[Int32]):System.Boolean[,,,]
         -84 (-28.77% of base) : 151986.dasm - testout1:Func_0_3_5_6_3():float

Top method regressions (percentages):
           2 ( 0.46% of base) : 233072.dasm - Driver`2[__Canon,__Canon][System.__Canon,System.__Canon]:BasicAdd(System.__Canon[],System.__Canon[]):this
           2 ( 0.27% of base) : 233083.dasm - Driver`2[__Canon,__Canon][System.__Canon,System.__Canon]:AddRemoveKeyValPair(System.__Canon[],System.__Canon[],int,int):this
           4 ( 0.07% of base) : 234406.dasm - ScanProjectFiles:ParseAndUpdateProj(System.String,bool):bool

Top method improvements (percentages):
         -40 (-68.97% of base) : 191424.dasm - testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
         -38 (-67.86% of base) : 191402.dasm - testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
         -80 (-64.52% of base) : 191403.dasm - testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
         -60 (-62.50% of base) : 191703.dasm - testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
         -30 (-62.50% of base) : 191435.dasm - testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
        -122 (-62.24% of base) : 191490.dasm - testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
         -48 (-60.00% of base) : 151896.dasm - testout1:Func_0_3_1_5_6():double
         -46 (-58.97% of base) : 191492.dasm - testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
         -24 (-57.14% of base) : 191734.dasm - testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
       -1104 (-52.85% of base) : 237667.dasm - JitTest.Test:RunTests(double,double,double,double)
       -1104 (-52.85% of base) : 237663.dasm - JitTest.Test:RunTests(float,float,float,float)
         -42 (-51.22% of base) : 83942.dasm - Sample10:func(System.Object):int
         -67 (-48.20% of base) : 191782.dasm - testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
         -50 (-43.86% of base) : 154447.dasm - testout1:Func_0_3_1_5_6():double
        -150 (-43.48% of base) : 151594.dasm - testout1:Func_0_1_5_1_6():long
        -150 (-43.48% of base) : 154230.dasm - testout1:Func_0_1_5_1_6():long
         -42 (-41.18% of base) : 191430.dasm - testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
        -852 (-40.79% of base) : 237659.dasm - JitTest.Test:RunTests(double,double,double,double)
        -852 (-40.79% of base) : 237655.dasm - JitTest.Test:RunTests(float,float,float,float)
        -135 (-35.71% of base) : 152298.dasm - testout1:Func_0_5_3_5_5():double

421 total methods with Code Size differences (418 improved, 3 regressed), 5 unchanged.


libraries.crossgen2.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 34156930 (overridden on cmd)
Total bytes of diff: 34151999 (overridden on cmd)
Total bytes of delta: -4931 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          14 : 136962.dasm (1.44% of base)
          12 : 41532.dasm (4.38% of base)
           9 : 158226.dasm (2.86% of base)
           9 : 136929.dasm (1.07% of base)
           8 : 210585.dasm (0.79% of base)
           7 : 45669.dasm (1.69% of base)
           7 : 54021.dasm (0.56% of base)
           7 : 65974.dasm (0.88% of base)
           5 : 199057.dasm (2.16% of base)
           4 : 37712.dasm (1.97% of base)
           4 : 86694.dasm (3.48% of base)
           4 : 145272.dasm (0.36% of base)
           3 : 45655.dasm (0.59% of base)
           3 : 183068.dasm (0.25% of base)
           3 : 49145.dasm (0.22% of base)
           2 : 205268.dasm (0.31% of base)
           2 : 145285.dasm (0.11% of base)
           2 : 153679.dasm (0.09% of base)
           1 : 58254.dasm (0.22% of base)
           1 : 210949.dasm (0.19% of base)

Top file improvements (bytes):
        -164 : 139436.dasm (-26.41% of base)
        -131 : 141371.dasm (-45.64% of base)
        -129 : 144896.dasm (-0.51% of base)
        -114 : 129283.dasm (-4.35% of base)
        -112 : 186431.dasm (-6.29% of base)
        -107 : 142245.dasm (-12.51% of base)
        -106 : 141695.dasm (-31.93% of base)
        -106 : 141694.dasm (-31.93% of base)
         -89 : 131935.dasm (-6.65% of base)
         -74 : 118585.dasm (-7.42% of base)
         -71 : 96732.dasm (-41.28% of base)
         -64 : 170272.dasm (-50.79% of base)
         -58 : 144419.dasm (-28.71% of base)
         -57 : 140274.dasm (-30.00% of base)
         -57 : 140272.dasm (-26.76% of base)
         -57 : 140207.dasm (-26.76% of base)
         -57 : 139710.dasm (-30.81% of base)
         -57 : 140141.dasm (-26.03% of base)
         -57 : 139708.dasm (-27.27% of base)
         -57 : 140209.dasm (-30.48% of base)

363 total files with Code Size differences (343 improved, 20 regressed), 8 unchanged.

Top method regressions (bytes):
          14 ( 1.44% of base) : 136962.dasm - System.Speech.Internal.Synthesis.PcmConverter:Resampling(System.Single[],System.Single[]):System.Single[]:this
          12 ( 4.38% of base) : 41532.dasm - System.IO.Path:GetFullPath(System.String):System.String
           9 ( 2.86% of base) : 158226.dasm - Microsoft.FSharp.Primitives.Basics.List:splitIntoToFreshConsTail(Microsoft.FSharp.Collections.FSharpList`1[System.__Canon],Microsoft.FSharp.Collections.FSharpList`1[Microsoft.FSharp.Collections.FSharpList`1[System.__Canon]],int,int,int,int,Microsoft.FSharp.Collections.FSharpList`1[System.__Canon])
           9 ( 1.07% of base) : 136929.dasm - System.Speech.Internal.Synthesis.SsmlParser:ParseSub(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,int,System.Speech.Internal.Synthesis.SsmlParser+SsmlAttributes,bool)
           8 ( 0.79% of base) : 210585.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:GetAsPrincipal(System.Object,System.Object):System.DirectoryServices.AccountManagement.Principal:this
           7 ( 0.88% of base) : 65974.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedOperatorSymbolBase:.ctor(int,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.DiagnosticBag,bool):this
           7 ( 0.56% of base) : 54021.dasm - System.ParseNumbers:IntToString(int,int,int,ushort,int):System.String
           7 ( 1.69% of base) : 45669.dasm - System.Runtime.Loader.AssemblyLoadContext:LoadFromAssemblyPath(System.String):System.Reflection.Assembly:this
           5 ( 2.16% of base) : 199057.dasm - System.Uri:Compare(System.Uri,System.Uri,int,int,int):int
           4 ( 0.36% of base) : 145272.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:MatchArguments(Microsoft.VisualBasic.CompilerServices.Symbols+Method,System.Object[],System.Object[])
           4 ( 1.97% of base) : 37712.dasm - Newtonsoft.Json.JsonTextWriter:SetIndentChars():int:this
           4 ( 3.48% of base) : 86694.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:ReadEncoding(ubyte,ubyte):int
           3 ( 0.22% of base) : 49145.dasm - System.Buffers.Text.Utf8Parser:TryParseDateTimeOffsetO(System.ReadOnlySpan`1[System.Byte],byref,byref,byref):bool
           3 ( 0.59% of base) : 45655.dasm - System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this
           3 ( 0.25% of base) : 183068.dasm - System.Threading.ReaderWriterLock:AcquireReaderLock(int):this
           2 ( 0.31% of base) : 205268.dasm - ManagementObjectEnumerator:MoveNext():bool:this
           2 ( 0.09% of base) : 153679.dasm - Microsoft.CodeAnalysis.Compilation:SerializeToPeStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,System.Func`1[System.Object],Microsoft.CodeAnalysis.DiagnosticBag,bool,System.Threading.CancellationToken):bool:this
           2 ( 0.11% of base) : 145285.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,bool,System.Object[],int,System.String[],System.Type[],bool,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
           1 ( 0.22% of base) : 58254.dasm - SorterObjectArray:PickPivotAndPartition(int,int):int:this
           1 ( 0.19% of base) : 210949.dasm - System.DirectoryServices.AccountManagement.AccountInfo:GetChangeStatusForProperty(System.String):bool:this

Top method improvements (bytes):
        -164 (-26.41% of base) : 139436.dasm - System.Data.Common.BigIntegerStorage:ConvertToBigInteger(System.Object,System.IFormatProvider):System.Numerics.BigInteger
        -131 (-45.64% of base) : 141371.dasm - System.Data.DataView:GetDataRowViewFromRange(System.Data.Range):System.Data.DataRowView[]:this
        -129 (-0.51% of base) : 144896.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
        -114 (-4.35% of base) : 129283.dasm - System.Xml.XmlLoader:LoadDocumentType(System.Xml.IDtdInfo,System.Xml.XmlDocumentType):this
        -112 (-6.29% of base) : 186431.dasm - System.Security.Cryptography.Xml.EncryptedXml:DecryptEncryptedKey(System.Security.Cryptography.Xml.EncryptedKey):System.Byte[]:this
        -107 (-12.51% of base) : 142245.dasm - System.Data.DataRelation:GetParentRow(System.Data.DataKey,System.Data.DataKey,System.Data.DataRow,int):System.Data.DataRow
        -106 (-31.93% of base) : 141694.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object):System.Data.DataRow:this
        -106 (-31.93% of base) : 141695.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object[]):System.Data.DataRow:this
         -89 (-6.65% of base) : 131935.dasm - System.Xml.XmlCharCheckingReader:Read():bool:this
         -74 (-7.42% of base) : 118585.dasm - Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode:GetAllChildren():System.Collections.Generic.IList`1[Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode]:this
         -71 (-41.28% of base) : 96732.dasm - System.Net.Http.Headers.ObjectCollection`1:Contains(System.__Canon):bool:this
         -64 (-50.79% of base) : 170272.dasm - System.Net.WebClient:ByteArrayHasPrefix(System.Byte[],System.Byte[]):bool
         -58 (-28.71% of base) : 144419.dasm - Microsoft.VisualBasic.ForEachEnum:MoveNext():bool:this
         -57 (-27.27% of base) : 139708.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlByte
         -57 (-30.81% of base) : 139710.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlByte
         -57 (-26.76% of base) : 140272.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlInt16
         -57 (-30.00% of base) : 140274.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt16
         -57 (-26.76% of base) : 140207.dasm - System.Data.SqlTypes.SqlInt32:op_Explicit(System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlInt32
         -57 (-30.48% of base) : 140209.dasm - System.Data.SqlTypes.SqlInt32:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt32
         -57 (-26.03% of base) : 140141.dasm - System.Data.SqlTypes.SqlInt64:op_Explicit(System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlInt64

Top method regressions (percentages):
          12 ( 4.38% of base) : 41532.dasm - System.IO.Path:GetFullPath(System.String):System.String
           4 ( 3.48% of base) : 86694.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:ReadEncoding(ubyte,ubyte):int
           9 ( 2.86% of base) : 158226.dasm - Microsoft.FSharp.Primitives.Basics.List:splitIntoToFreshConsTail(Microsoft.FSharp.Collections.FSharpList`1[System.__Canon],Microsoft.FSharp.Collections.FSharpList`1[Microsoft.FSharp.Collections.FSharpList`1[System.__Canon]],int,int,int,int,Microsoft.FSharp.Collections.FSharpList`1[System.__Canon])
           5 ( 2.16% of base) : 199057.dasm - System.Uri:Compare(System.Uri,System.Uri,int,int,int):int
           4 ( 1.97% of base) : 37712.dasm - Newtonsoft.Json.JsonTextWriter:SetIndentChars():int:this
           7 ( 1.69% of base) : 45669.dasm - System.Runtime.Loader.AssemblyLoadContext:LoadFromAssemblyPath(System.String):System.Reflection.Assembly:this
          14 ( 1.44% of base) : 136962.dasm - System.Speech.Internal.Synthesis.PcmConverter:Resampling(System.Single[],System.Single[]):System.Single[]:this
           9 ( 1.07% of base) : 136929.dasm - System.Speech.Internal.Synthesis.SsmlParser:ParseSub(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,int,System.Speech.Internal.Synthesis.SsmlParser+SsmlAttributes,bool)
           7 ( 0.88% of base) : 65974.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedOperatorSymbolBase:.ctor(int,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.DiagnosticBag,bool):this
           8 ( 0.79% of base) : 210585.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:GetAsPrincipal(System.Object,System.Object):System.DirectoryServices.AccountManagement.Principal:this
           3 ( 0.59% of base) : 45655.dasm - System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this
           7 ( 0.56% of base) : 54021.dasm - System.ParseNumbers:IntToString(int,int,int,ushort,int):System.String
           4 ( 0.36% of base) : 145272.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:MatchArguments(Microsoft.VisualBasic.CompilerServices.Symbols+Method,System.Object[],System.Object[])
           2 ( 0.31% of base) : 205268.dasm - ManagementObjectEnumerator:MoveNext():bool:this
           3 ( 0.25% of base) : 183068.dasm - System.Threading.ReaderWriterLock:AcquireReaderLock(int):this
           1 ( 0.22% of base) : 58254.dasm - SorterObjectArray:PickPivotAndPartition(int,int):int:this
           3 ( 0.22% of base) : 49145.dasm - System.Buffers.Text.Utf8Parser:TryParseDateTimeOffsetO(System.ReadOnlySpan`1[System.Byte],byref,byref,byref):bool
           1 ( 0.19% of base) : 210949.dasm - System.DirectoryServices.AccountManagement.AccountInfo:GetChangeStatusForProperty(System.String):bool:this
           2 ( 0.11% of base) : 145285.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,bool,System.Object[],int,System.String[],System.Type[],bool,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
           2 ( 0.09% of base) : 153679.dasm - Microsoft.CodeAnalysis.Compilation:SerializeToPeStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,System.Func`1[System.Object],Microsoft.CodeAnalysis.DiagnosticBag,bool,System.Threading.CancellationToken):bool:this

Top method improvements (percentages):
         -64 (-50.79% of base) : 170272.dasm - System.Net.WebClient:ByteArrayHasPrefix(System.Byte[],System.Byte[]):bool
        -131 (-45.64% of base) : 141371.dasm - System.Data.DataView:GetDataRowViewFromRange(System.Data.Range):System.Data.DataRowView[]:this
         -30 (-44.78% of base) : 88248.dasm - System.Runtime.Serialization.ExtensionDataReader:get_Item(int):System.String:this
         -30 (-44.78% of base) : 88247.dasm - System.Runtime.Serialization.ExtensionDataReader:get_Item(System.String):System.String:this
         -71 (-41.28% of base) : 96732.dasm - System.Net.Http.Headers.ObjectCollection`1:Contains(System.__Canon):bool:this
        -106 (-31.93% of base) : 141694.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object):System.Data.DataRow:this
        -106 (-31.93% of base) : 141695.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object[]):System.Data.DataRow:this
         -57 (-30.81% of base) : 139710.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlByte
         -57 (-30.48% of base) : 140209.dasm - System.Data.SqlTypes.SqlInt32:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt32
         -57 (-30.00% of base) : 140274.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt16
         -56 (-29.95% of base) : 139711.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlInt32):System.Data.SqlTypes.SqlByte
         -56 (-29.95% of base) : 140275.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlInt32):System.Data.SqlTypes.SqlInt16
         -56 (-29.63% of base) : 139712.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlInt16):System.Data.SqlTypes.SqlByte
         -58 (-28.71% of base) : 144419.dasm - Microsoft.VisualBasic.ForEachEnum:MoveNext():bool:this
         -56 (-28.43% of base) : 139709.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlSingle):System.Data.SqlTypes.SqlByte
         -56 (-27.86% of base) : 140273.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlSingle):System.Data.SqlTypes.SqlInt16
         -56 (-27.86% of base) : 140208.dasm - System.Data.SqlTypes.SqlInt32:op_Explicit(System.Data.SqlTypes.SqlSingle):System.Data.SqlTypes.SqlInt32
         -57 (-27.27% of base) : 139708.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlByte
         -56 (-27.05% of base) : 140142.dasm - System.Data.SqlTypes.SqlInt64:op_Explicit(System.Data.SqlTypes.SqlSingle):System.Data.SqlTypes.SqlInt64
         -57 (-26.76% of base) : 140272.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlInt16

363 total methods with Code Size differences (343 improved, 20 regressed), 8 unchanged.


libraries.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 45591932 (overridden on cmd)
Total bytes of diff: 45571814 (overridden on cmd)
Total bytes of delta: -20118 (-0.04 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          61 : 215520.dasm (1.66% of base)
          57 : 113516.dasm (4.43% of base)
          37 : 162372.dasm (4.39% of base)
          24 : 154748.dasm (1.42% of base)
          24 : 161245.dasm (1.75% of base)
          19 : 145852.dasm (0.30% of base)
          15 : 42310.dasm (1.38% of base)
          15 : 55630.dasm (1.66% of base)
          14 : 144390.dasm (8.24% of base)
          14 : 151409.dasm (1.43% of base)
          14 : 72452.dasm (8.92% of base)
          14 : 72506.dasm (8.14% of base)
          14 : 128133.dasm (8.09% of base)
          12 : 152697.dasm (0.39% of base)
          12 : 189014.dasm (1.00% of base)
          10 : 14926.dasm (4.78% of base)
           9 : 11016.dasm (2.95% of base)
           8 : 14923.dasm (4.23% of base)
           8 : 14924.dasm (4.26% of base)
           8 : 14910.dasm (4.32% of base)

Top file improvements (bytes):
        -480 : 22337.dasm (-5.94% of base)
        -368 : 50027.dasm (-6.47% of base)
        -284 : 49924.dasm (-2.95% of base)
        -256 : 85222.dasm (-6.29% of base)
        -222 : 104911.dasm (-0.90% of base)
        -202 : 112509.dasm (-49.88% of base)
        -191 : 151453.dasm (-11.38% of base)
        -180 : 115847.dasm (-75.95% of base)
        -177 : 221638.dasm (-7.04% of base)
        -165 : 148807.dasm (-49.25% of base)
        -150 : 137204.dasm (-6.16% of base)
        -148 : 112182.dasm (-41.11% of base)
        -148 : 112183.dasm (-41.11% of base)
        -141 : 111530.dasm (-20.11% of base)
        -141 : 43294.dasm (-7.26% of base)
        -134 : 148806.dasm (-27.46% of base)
        -124 : 113648.dasm (-5.52% of base)
        -121 : 50166.dasm (-5.40% of base)
        -119 : 49623.dasm (-10.32% of base)
        -112 : 110804.dasm (-3.28% of base)

1197 total files with Code Size differences (1112 improved, 85 regressed), 45 unchanged.

Top method regressions (bytes):
          61 ( 1.66% of base) : 215520.dasm - System.Security.AccessControl.CommonAcl:RemoveQualifiedAces(System.Security.Principal.SecurityIdentifier,int,int,ubyte,bool,int,System.Guid,System.Guid):bool:this
          57 ( 4.43% of base) : 113516.dasm - System.Data.ConstNode:SmallestDecimal(System.Object):System.Object:this
          37 ( 4.39% of base) : 162372.dasm - Microsoft.Extensions.FileProviders.Physical.Internal.PathUtils:PathNavigatesAboveRoot(System.String):bool
          24 ( 1.75% of base) : 161245.dasm - Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:VisitElement(System.Text.Json.JsonElement):this
          24 ( 1.42% of base) : 154748.dasm - System.Text.Json.Nodes.JsonObject:InitializeIfRequired():this
          19 ( 0.30% of base) : 145852.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,bool,bool,int,int):this
          15 ( 1.38% of base) : 42310.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:CheckConstraints(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.BitVector):bool
          15 ( 1.66% of base) : 55630.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation:TrySynthesizeAttribute(int,System.Collections.Immutable.ImmutableArray`1[TypedConstant],System.Collections.Immutable.ImmutableArray`1[KeyValuePair`2]):Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedAttributeData:this
          14 ( 8.92% of base) : 72452.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToChar(System.Object):ushort
          14 ( 8.14% of base) : 72506.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToDate(System.Object):System.DateTime
          14 ( 8.09% of base) : 128133.dasm - System.Runtime.Serialization.CodeGenerator:Load(System.Object):this
          14 ( 1.43% of base) : 151409.dasm - System.Speech.Internal.Synthesis.PcmConverter:Resampling(System.Single[],System.Single[]):System.Single[]:this
          14 ( 8.24% of base) : 144390.dasm - System.Xml.Serialization.CodeGenerator:Load(System.Object):this
          12 ( 1.00% of base) : 189014.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:GetAsPrincipal(System.Object,System.Object):System.DirectoryServices.AccountManagement.Principal:this
          12 ( 0.39% of base) : 152697.dasm - System.Text.GB18030Encoding:GetChars(long,int,long,int,System.Text.DecoderNLS):int:this
          10 ( 4.78% of base) : 14926.dasm - System.Enum:Parse(System.String,bool):System.Numerics.Vector`1[Single]
           9 ( 2.95% of base) : 11016.dasm - Microsoft.FSharp.Primitives.Basics.List:splitIntoToFreshConsTail(Microsoft.FSharp.Collections.FSharpList`1[__Canon],Microsoft.FSharp.Collections.FSharpList`1[__Canon],int,int,int,int,Microsoft.FSharp.Collections.FSharpList`1[__Canon])
           8 ( 4.28% of base) : 14913.dasm - System.Enum:Parse(System.String):double
           8 ( 4.40% of base) : 14912.dasm - System.Enum:Parse(System.String):int
           8 ( 4.37% of base) : 14915.dasm - System.Enum:Parse(System.String):long

Top method improvements (bytes):
        -480 (-5.94% of base) : 22337.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,bool,byref,bool):bool:this
        -368 (-6.47% of base) : 50027.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeLocalModifiersAndReportErrors(Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.DiagnosticBag):this
        -284 (-2.95% of base) : 49924.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,int,int,int,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.MemberModifiers:this
        -256 (-6.29% of base) : 85222.dasm - Microsoft.Diagnostics.Tracing.TraceEvent:PayloadString(int,System.IFormatProvider):System.String:this
        -222 (-0.90% of base) : 104911.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
        -202 (-49.88% of base) : 112509.dasm - System.Data.DataView:GetDataRowViewFromRange(System.Data.Range):System.Data.DataRowView[]:this
        -191 (-11.38% of base) : 151453.dasm - System.Speech.Internal.Synthesis.SsmlParser:ParseSayAs(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,int,SsmlAttributes,bool)
        -180 (-75.95% of base) : 115847.dasm - System.Data.Common.SqlStringStorage:Compare(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int:this
        -177 (-7.04% of base) : 221638.dasm - System.Security.Cryptography.Xml.EncryptedXml:DecryptEncryptedKey(System.Security.Cryptography.Xml.EncryptedKey):System.Byte[]:this
        -165 (-49.25% of base) : 148807.dasm - System.Reflection.Metadata.Ecma335.StringHeap:StartsWith(System.Reflection.Metadata.StringHandle,System.String,System.Reflection.Metadata.MetadataStringDecoder,bool):bool:this
        -150 (-6.16% of base) : 137204.dasm - System.Xml.XmlLoader:LoadDocumentType(System.Xml.IDtdInfo,System.Xml.XmlDocumentType):this
        -148 (-41.11% of base) : 112183.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object):System.Data.DataRow:this
        -148 (-41.11% of base) : 112182.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object[]):System.Data.DataRow:this
        -141 (-7.26% of base) : 43294.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceFieldLikeEventSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.DiagnosticBag):this
        -141 (-20.11% of base) : 111530.dasm - System.Data.DataRelation:GetParentRow(System.Data.DataKey,System.Data.DataKey,System.Data.DataRow,int):System.Data.DataRow
        -134 (-27.46% of base) : 148806.dasm - System.Reflection.Metadata.Ecma335.StringHeap:Equals(System.Reflection.Metadata.StringHandle,System.String,System.Reflection.Metadata.MetadataStringDecoder,bool):bool:this
        -124 (-5.52% of base) : 113648.dasm - System.Data.SqlTypes.SqlDecimal:op_Multiply(System.Data.SqlTypes.SqlDecimal,System.Data.SqlTypes.SqlDecimal):System.Data.SqlTypes.SqlDecimal
        -121 (-5.40% of base) : 50166.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindIndexedInvocationExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.InvocationExpressionSyntax,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.BoundExpression, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.Location, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],bool,byref,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
        -119 (-10.32% of base) : 49623.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:VisitAsNewLocalDeclarations(Microsoft.CodeAnalysis.VisualBasic.BoundAsNewLocalDeclarations):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this
        -112 (-3.28% of base) : 110804.dasm - System.Data.XSDSchema:HandleDataSet(System.Xml.Schema.XmlSchemaElement,bool):this

Top method regressions (percentages):
          14 ( 8.92% of base) : 72452.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToChar(System.Object):ushort
          14 ( 8.24% of base) : 144390.dasm - System.Xml.Serialization.CodeGenerator:Load(System.Object):this
          14 ( 8.14% of base) : 72506.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToDate(System.Object):System.DateTime
          14 ( 8.09% of base) : 128133.dasm - System.Runtime.Serialization.CodeGenerator:Load(System.Object):this
           4 ( 4.88% of base) : 232893.dasm - Xunit.TestFrameworkOptions:ToDebuggerDisplay(System.Object):System.String:this
          10 ( 4.78% of base) : 14926.dasm - System.Enum:Parse(System.String,bool):System.Numerics.Vector`1[Single]
          57 ( 4.43% of base) : 113516.dasm - System.Data.ConstNode:SmallestDecimal(System.Object):System.Object:this
           8 ( 4.40% of base) : 14912.dasm - System.Enum:Parse(System.String):int
          37 ( 4.39% of base) : 162372.dasm - Microsoft.Extensions.FileProviders.Physical.Internal.PathUtils:PathNavigatesAboveRoot(System.String):bool
           8 ( 4.37% of base) : 14915.dasm - System.Enum:Parse(System.String):long
           8 ( 4.37% of base) : 14911.dasm - System.Enum:Parse(System.String):short
           8 ( 4.32% of base) : 14910.dasm - System.Enum:Parse(System.String):ubyte
           8 ( 4.28% of base) : 14913.dasm - System.Enum:Parse(System.String):double
           8 ( 4.26% of base) : 14924.dasm - System.Enum:Parse(System.String,bool):int
           8 ( 4.23% of base) : 14927.dasm - System.Enum:Parse(System.String,bool):long
           8 ( 4.23% of base) : 14923.dasm - System.Enum:Parse(System.String,bool):short
           8 ( 4.19% of base) : 14922.dasm - System.Enum:Parse(System.String,bool):ubyte
           8 ( 4.15% of base) : 14925.dasm - System.Enum:Parse(System.String,bool):double
           8 ( 3.96% of base) : 14914.dasm - System.Enum:Parse(System.String):System.Numerics.Vector`1[Single]
           4 ( 3.74% of base) : 72371.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicExtensions:GetIdentifierText(Microsoft.CodeAnalysis.SyntaxToken):System.String

Top method improvements (percentages):
        -180 (-75.95% of base) : 115847.dasm - System.Data.Common.SqlStringStorage:Compare(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int:this
         -79 (-55.24% of base) : 114128.dasm - System.Data.SqlTypes.SqlSingle:op_Explicit(System.Data.SqlTypes.SqlString):System.Data.SqlTypes.SqlSingle
        -202 (-49.88% of base) : 112509.dasm - System.Data.DataView:GetDataRowViewFromRange(System.Data.Range):System.Data.DataRowView[]:this
         -63 (-49.61% of base) : 209502.dasm - System.Net.WebClient:ByteArrayHasPrefix(System.Byte[],System.Byte[]):bool
        -165 (-49.25% of base) : 148807.dasm - System.Reflection.Metadata.Ecma335.StringHeap:StartsWith(System.Reflection.Metadata.StringHandle,System.String,System.Reflection.Metadata.MetadataStringDecoder,bool):bool:this
         -79 (-48.47% of base) : 113754.dasm - System.Data.SqlTypes.SqlDouble:op_Explicit(System.Data.SqlTypes.SqlString):System.Data.SqlTypes.SqlDouble
         -22 (-45.83% of base) : 128700.dasm - System.Runtime.Serialization.ExtensionDataReader:get_Item(int):System.String:this
         -22 (-44.90% of base) : 128701.dasm - System.Runtime.Serialization.ExtensionDataReader:get_Item(System.String):System.String:this
         -48 (-44.04% of base) : 41056.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.IParameterTypeInformation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
         -48 (-43.24% of base) : 56402.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEModuleBuilder:Translate(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.IParameterTypeInformation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
         -34 (-41.98% of base) : 26099.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel:GetSpeculativeAliasInfoCore(int,Microsoft.CodeAnalysis.SyntaxNode,int):Microsoft.CodeAnalysis.IAliasSymbol:this
         -34 (-41.98% of base) : 55811.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:GetSpeculativeAliasInfoCore(int,Microsoft.CodeAnalysis.SyntaxNode,int):Microsoft.CodeAnalysis.IAliasSymbol:this
         -70 (-41.18% of base) : 125559.dasm - System.Net.Http.Headers.ObjectCollection`1[__Canon][System.__Canon]:Contains(System.__Canon):bool:this
        -148 (-41.11% of base) : 112183.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object):System.Data.DataRow:this
        -148 (-41.11% of base) : 112182.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object[]):System.Data.DataRow:this
         -23 (-33.82% of base) : 72530.dasm - LocalState:get_Reachable():bool:this
         -93 (-33.82% of base) : 105404.dasm - Microsoft.VisualBasic.ForEachEnum:MoveNext():bool:this
         -32 (-32.65% of base) : 178693.dasm - System.ComponentModel.InheritanceAttribute:Equals(System.Object):bool:this
         -79 (-32.64% of base) : 113921.dasm - System.Data.SqlTypes.SqlInt32:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt32
         -79 (-32.51% of base) : 114417.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlByte

1197 total methods with Code Size differences (1112 improved, 85 regressed), 45 unchanged.


libraries_tests.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 113781967 (overridden on cmd)
Total bytes of diff: 113763694 (overridden on cmd)
Total bytes of delta: -18273 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          53 : 218210.dasm (0.94% of base)
          53 : 222475.dasm (0.94% of base)
          25 : 228535.dasm (2.42% of base)
          23 : 89891.dasm (0.67% of base)
          23 : 103027.dasm (0.67% of base)
          20 : 100745.dasm (1.45% of base)
          20 : 129297.dasm (4.35% of base)
          17 : 129300.dasm (4.46% of base)
          14 : 128533.dasm (8.92% of base)
          14 : 128586.dasm (8.14% of base)
          11 : 220164.dasm (1.53% of base)
          11 : 318608.dasm (1.56% of base)
          11 : 72778.dasm (1.56% of base)
          11 : 216028.dasm (1.53% of base)
          10 : 129366.dasm (1.01% of base)
           9 : 99924.dasm (0.45% of base)
           8 : 318374.dasm (1.39% of base)
           8 : 71218.dasm (1.39% of base)
           8 : 99925.dasm (0.41% of base)
           7 : 287511.dasm (1.47% of base)

Top file improvements (bytes):
        -490 : 1088.dasm (-27.24% of base)
        -305 : 215312.dasm (-6.39% of base)
        -305 : 219468.dasm (-6.39% of base)
        -273 : 175312.dasm (-2.82% of base)
        -212 : 239760.dasm (-35.75% of base)
        -164 : 95429.dasm (-20.60% of base)
        -157 : 231196.dasm (-3.10% of base)
        -114 : 215370.dasm (-23.95% of base)
        -114 : 219526.dasm (-23.95% of base)
         -97 : 252309.dasm (-2.98% of base)
         -92 : 8807.dasm (-26.36% of base)
         -83 : 115246.dasm (-3.67% of base)
         -81 : 130595.dasm (-2.35% of base)
         -81 : 130596.dasm (-1.99% of base)
         -81 : 130598.dasm (-2.35% of base)
         -81 : 130599.dasm (-2.35% of base)
         -78 : 15989.dasm (-87.64% of base)
         -77 : 254541.dasm (-6.97% of base)
         -77 : 215414.dasm (-15.10% of base)
         -77 : 219568.dasm (-15.10% of base)

1241 total files with Code Size differences (1156 improved, 85 regressed), 35 unchanged.

Top method regressions (bytes):
          53 ( 0.94% of base) : 218210.dasm - System.Data.SqlClient.TdsParser:TdsLogin(System.Data.SqlClient.SqlLogin,int,System.Data.SqlClient.SessionData,System.Nullable`1[FederatedAuthenticationFeatureExtensionData]):this
          53 ( 0.94% of base) : 222475.dasm - System.Data.SqlClient.TdsParser:TdsLogin(System.Data.SqlClient.SqlLogin,int,System.Data.SqlClient.SessionData,System.Nullable`1[FederatedAuthenticationFeatureExtensionData]):this
          25 ( 2.42% of base) : 228535.dasm - ImTools.ImMapTree`1[__Canon][System.__Canon]:BalanceNewRightTree(ImTools.ImMapTree`1[__Canon]):ImTools.ImMapTree`1[__Canon]:this
          23 ( 0.67% of base) : 89891.dasm - <ReadArrayListOfArray>d__357:MoveNext():this
          23 ( 0.67% of base) : 103027.dasm - <ReadArrayListOfArray>d__376:MoveNext():this
          20 ( 4.35% of base) : 129297.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.StatementSyntaxExtensions:GetTopLevelBlockBegin(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.DeclarationStatementSyntax
          20 ( 1.45% of base) : 100745.dasm - System.Text.Json.Serialization.Tests.ClassWithComplexObjects:Verify():this
          17 ( 4.46% of base) : 129300.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.StatementSyntaxExtensions:GetMemberBlockBegin(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.DeclarationStatementSyntax
          14 ( 8.92% of base) : 128533.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToChar(System.Object):ushort
          14 ( 8.14% of base) : 128586.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToDate(System.Object):System.DateTime
          11 ( 1.53% of base) : 220164.dasm - System.Net.NetEventSource:Format(System.Object):System.Object
          11 ( 1.53% of base) : 216028.dasm - System.Net.NetEventSource:Format(System.Object):System.Object
          11 ( 1.56% of base) : 318608.dasm - System.Tests.UInt16Tests:EqualsTest(ushort,System.Object,bool)
          11 ( 1.56% of base) : 72778.dasm - System.Tests.UInt16Tests:EqualsTest(ushort,System.Object,bool)
          10 ( 1.01% of base) : 129366.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.SyntaxTokenExtensions:GetInnermostDeclarationContext(Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.SyntaxNode
           9 ( 0.45% of base) : 99924.dasm - System.Text.Json.Serialization.Tests.DomTests:SerializeToDocument()
           8 ( 1.39% of base) : 318374.dasm - System.Tests.CharTests:EqualsTest(ushort,System.Object,bool)
           8 ( 1.39% of base) : 71218.dasm - System.Tests.CharTests:EqualsTest(ushort,System.Object,bool)
           8 ( 0.41% of base) : 99925.dasm - System.Text.Json.Serialization.Tests.DomTests:SerializeToElement()
           7 ( 1.47% of base) : 287511.dasm - System.IO.MemoryMappedFiles.Tests.SafeMemoryMappedViewHandleTests:SafeMemoryMappedViewHandle_CanUseInPInvoke_Windows():this

Top method improvements (bytes):
        -490 (-27.24% of base) : 1088.dasm - Roslyn.Utilities.ObjectWriter:WriteValue(System.Object):this
        -305 (-6.39% of base) : 215312.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:SetCompatibleValue(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedSettersV3,int,Microsoft.SqlServer.Server.SmiMetaData,System.Object,int,int)
        -305 (-6.39% of base) : 219468.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:SetCompatibleValue(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedSettersV3,int,Microsoft.SqlServer.Server.SmiMetaData,System.Object,int,int)
        -273 (-2.82% of base) : 175312.dasm - System.Memory.Tests.ReadOnlySequenceTestsEmpty:Empty_TryGet():this
        -212 (-35.75% of base) : 239760.dasm - Lamar.IoC.Instances.GeneratedInstance:GetBuildPlan(Lamar.IoC.Scope):System.String:this
        -164 (-20.60% of base) : 95429.dasm - System.Text.Json.Tests.JsonDocumentTests:DefaultArrayEnumeratorDoesNotThrow()
        -157 (-3.10% of base) : 231196.dasm - Registry:WithDefaultService(DryIoc.Factory,int,System.Type,int):Registry:this
        -114 (-23.95% of base) : 215370.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:GetBytesConversion(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedGettersV3,int,Microsoft.SqlServer.Server.SmiMetaData,long,System.Byte[],int,int,bool):long
        -114 (-23.95% of base) : 219526.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:GetBytesConversion(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedGettersV3,int,Microsoft.SqlServer.Server.SmiMetaData,long,System.Byte[],int,int,bool):long
         -97 (-2.98% of base) : 252309.dasm - Microsoft.Extensions.Primitives.StringSegmentTest:StringSegment_CompareEqual_Globalized(System.String,System.String,int,int):this
         -92 (-26.36% of base) : 8807.dasm - Microsoft.CodeAnalysis.LanguageServices.AbstractSyntaxFacts:ContainsInterleavedDirective(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Threading.CancellationToken):bool:this
         -83 (-3.67% of base) : 115246.dasm - Microsoft.Build.Tasks.GenerateResource:Execute():bool:this
         -81 (-2.35% of base) : 130599.dasm - XmlClassifier:ClassifyXmlCData(Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlCDataSectionSyntax):this
         -81 (-2.35% of base) : 130598.dasm - XmlClassifier:ClassifyXmlComment(Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlCommentSyntax):this
         -81 (-1.99% of base) : 130596.dasm - XmlClassifier:ClassifyXmlProcessingInstruction(Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlProcessingInstructionSyntax):this
         -81 (-2.35% of base) : 130595.dasm - XmlClassifier:ClassifyXmlString(Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlStringSyntax):this
         -78 (-87.64% of base) : 15989.dasm - AbstractComplexTrivia:WithSpace(int,Microsoft.CodeAnalysis.Formatting.FormattingContext,Microsoft.CodeAnalysis.Formatting.ChainedFormattingRules):Microsoft.CodeAnalysis.Formatting.TriviaData:this
         -77 (-15.10% of base) : 215414.dasm - Microsoft.SqlServer.Server.SqlMetaData:Adjust(System.Data.SqlTypes.SqlString):System.Data.SqlTypes.SqlString:this
         -77 (-15.10% of base) : 219568.dasm - Microsoft.SqlServer.Server.SqlMetaData:Adjust(System.Data.SqlTypes.SqlString):System.Data.SqlTypes.SqlString:this
         -77 (-6.97% of base) : 254541.dasm - Moq.StringBuilderExtensions:AppendValueOf(System.Text.StringBuilder,System.Object):System.Text.StringBuilder

Top method regressions (percentages):
          14 ( 8.92% of base) : 128533.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToChar(System.Object):ushort
          14 ( 8.14% of base) : 128586.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToDate(System.Object):System.DateTime
          17 ( 4.46% of base) : 129300.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.StatementSyntaxExtensions:GetMemberBlockBegin(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.DeclarationStatementSyntax
          20 ( 4.35% of base) : 129297.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.StatementSyntaxExtensions:GetTopLevelBlockBegin(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.DeclarationStatementSyntax
          25 ( 2.42% of base) : 228535.dasm - ImTools.ImMapTree`1[__Canon][System.__Canon]:BalanceNewRightTree(ImTools.ImMapTree`1[__Canon]):ImTools.ImMapTree`1[__Canon]:this
           3 ( 2.19% of base) : 268914.dasm - <>c__DisplayClass49_0[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           3 ( 2.19% of base) : 21032.dasm - <>c__DisplayClass49_0[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           3 ( 2.19% of base) : 265895.dasm - <>c__DisplayClass49_0[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           3 ( 2.19% of base) : 268915.dasm - <>c__DisplayClass49_0[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           3 ( 2.19% of base) : 21033.dasm - <>c__DisplayClass49_0[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           3 ( 2.19% of base) : 265896.dasm - <>c__DisplayClass49_0[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           4 ( 2.16% of base) : 1253.dasm - Roslyn.Utilities.FileNameUtilities:RemoveExtension(System.String):System.String
          11 ( 1.56% of base) : 318608.dasm - System.Tests.UInt16Tests:EqualsTest(ushort,System.Object,bool)
          11 ( 1.56% of base) : 72778.dasm - System.Tests.UInt16Tests:EqualsTest(ushort,System.Object,bool)
          11 ( 1.53% of base) : 220164.dasm - System.Net.NetEventSource:Format(System.Object):System.Object
          11 ( 1.53% of base) : 216028.dasm - System.Net.NetEventSource:Format(System.Object):System.Object
           7 ( 1.47% of base) : 287511.dasm - System.IO.MemoryMappedFiles.Tests.SafeMemoryMappedViewHandleTests:SafeMemoryMappedViewHandle_CanUseInPInvoke_Windows():this
          20 ( 1.45% of base) : 100745.dasm - System.Text.Json.Serialization.Tests.ClassWithComplexObjects:Verify():this
           8 ( 1.39% of base) : 318374.dasm - System.Tests.CharTests:EqualsTest(ushort,System.Object,bool)
           8 ( 1.39% of base) : 71218.dasm - System.Tests.CharTests:EqualsTest(ushort,System.Object,bool)

Top method improvements (percentages):
         -78 (-87.64% of base) : 15989.dasm - AbstractComplexTrivia:WithSpace(int,Microsoft.CodeAnalysis.Formatting.FormattingContext,Microsoft.CodeAnalysis.Formatting.ChainedFormattingRules):Microsoft.CodeAnalysis.Formatting.TriviaData:this
         -60 (-68.97% of base) : 270512.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object):int:this
         -60 (-68.97% of base) : 265303.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object):int:this
         -60 (-68.97% of base) : 267492.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object):int:this
         -60 (-68.97% of base) : 19321.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object):int:this
         -60 (-68.97% of base) : 272298.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object):int:this
         -60 (-68.97% of base) : 270513.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object,System.Collections.IComparer):int:this
         -60 (-68.97% of base) : 265304.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object,System.Collections.IComparer):int:this
         -60 (-68.97% of base) : 267493.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object,System.Collections.IComparer):int:this
         -60 (-68.97% of base) : 19322.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object,System.Collections.IComparer):int:this
         -60 (-68.97% of base) : 272299.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object,System.Collections.IComparer):int:this
         -60 (-66.67% of base) : 265305.dasm - System.Collections.Tests.SimpleInt:Equals(System.Object,System.Collections.IEqualityComparer):bool:this
         -60 (-66.67% of base) : 267494.dasm - System.Collections.Tests.SimpleInt:Equals(System.Object,System.Collections.IEqualityComparer):bool:this
         -60 (-66.67% of base) : 19323.dasm - System.Collections.Tests.SimpleInt:Equals(System.Object,System.Collections.IEqualityComparer):bool:this
         -60 (-66.67% of base) : 270514.dasm - System.Collections.Tests.SimpleInt:Equals(System.Object,System.Collections.IEqualityComparer):bool:this
         -60 (-66.67% of base) : 272300.dasm - System.Collections.Tests.SimpleInt:Equals(System.Object,System.Collections.IEqualityComparer):bool:this
         -70 (-41.18% of base) : 181454.dasm - System.Net.Http.Headers.ObjectCollection`1[__Canon][System.__Canon]:Contains(System.__Canon):bool:this
        -212 (-35.75% of base) : 239760.dasm - Lamar.IoC.Instances.GeneratedInstance:GetBuildPlan(Lamar.IoC.Scope):System.String:this
         -57 (-33.33% of base) : 219386.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:SetSqlInt64_Unchecked(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedSettersV3,int,System.Data.SqlTypes.SqlInt64)
         -57 (-33.33% of base) : 215230.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:SetSqlInt64_Unchecked(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedSettersV3,int,System.Data.SqlTypes.SqlInt64)

1241 total methods with Code Size differences (1156 improved, 85 regressed), 35 unchanged.


Typical diff

 ; Assembly listing for method System.Data.SqlClient.TdsParser:set_CurrentTransaction(System.Data.SqlClient.SqlInternalTransaction):this
 ; ...
 ;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  rcx         this class-hnd single-def
 ;  V01 arg1         [V01,T00] (  5,  3.50)     ref  ->  rdx         class-hnd single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  lclBlk ( 0) [rsp+00H]   "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  3,  2.50)     ref  ->  rax         "CSE - aggressive"
 ;
 ; Lcl frame size = 0

@@ -17,23 +16,19 @@ G_M27428_IG01:        ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nog
                                                ;; bbWeight=1    PerfScore 0.00
 G_M27428_IG02:        ; gcrefRegs=00000006 {rcx rdx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[rcx rdx]
-       mov      rax, gword ptr [rcx+48]
-       ; gcrRegs +[rax]
-       test     rax, rax
+       cmp      gword ptr [rcx+48], 0
        jne      SHORT G_M27428_IG04
-                                               ;; bbWeight=1    PerfScore 3.25
-G_M27428_IG03:        ; gcrefRegs=00000007 {rax rcx rdx}, byrefRegs=00000000 {}, byref, isz
+                                               ;; bbWeight=1    PerfScore 4.00
+G_M27428_IG03:        ; gcrefRegs=00000006 {rcx rdx}, byrefRegs=00000000 {}, byref, isz
        test     rdx, rdx
        jne      SHORT G_M27428_IG05
-                                               ;; bbWeight=0.50 PerfScore 0.62
-G_M27428_IG04:        ; gcrefRegs=00000007 {rax rcx rdx}, byrefRegs=00000000 {}, byref, isz
-       test     rax, rax
-       je       SHORT G_M27428_IG06
+       jmp      SHORT G_M27428_IG06
+                                               ;; bbWeight=0.50 PerfScore 1.62
+G_M27428_IG04:        ; gcrefRegs=00000006 {rcx rdx}, byrefRegs=00000000 {}, byref, isz
        test     rdx, rdx
        jne      SHORT G_M27428_IG06
-                                               ;; bbWeight=0.50 PerfScore 1.25
+                                               ;; bbWeight=0.50 PerfScore 0.62
 G_M27428_IG05:        ; gcrefRegs=00000006 {rcx rdx}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[rax]
        lea      rcx, bword ptr [rcx+48]
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
@@ -48,7 +43,7 @@ G_M27428_IG07:        ; , epilog, nogc, extend
        ret
                                                ;; bbWeight=1    PerfScore 1.00

-; Total bytes of code 35, prolog size 0, PerfScore 10.63, instruction count 13, allocated bytes for code 35 (MethodHash=d2cb94db) for method System.Data.SqlClient.TdsParser:set_CurrentTransaction(System.Data.SqlClient.SqlInternalTransaction):this
+; Total bytes of code 30, prolog size 0, PerfScore 11.25, instruction count 11, allocated bytes for code 30 (MethodHash=d2cb94db) for method System.Data.SqlClient.TdsParser:set_CurrentTransaction(System.Data.SqlClient.SqlInternalTransaction):this

One interesting regression, in Microsoft.VisualBasic.CompilerServices.Conversions:ToChar(System.Object):ushort we now have a CSE of a method table fetch and this breaks assertion prop generating an exact type assertion, and this leads to a missed optimization.

;;; before

N005 (  8, 15) [000138] ---X--------              *  JTRUE     void  
N004 (  6, 13) [000029] J--X--?N----              \--*  EQ        int    $105
N002 (  3,  2) [000028] #--X--?-----                 +--*  IND       long   $142
N001 (  1,  1) [000027] ------?-----                 |  \--*  LCL_VAR   ref    V04 tmp2         u:2 $80
N003 (  2, 10) [000026] H-----?-----                 \--*  CNS_INT(h) long   0x7ffe742711c0 class $181

GenTreeNode creates assertion:
N005 (  8, 15) [000138] ---X--------              *  JTRUE     void  
In BB12 New Global Type     Assertion: ($80,$181) V04.02 is Exact Type MT(742711C0), index = #06
GenTreeNode creates assertion:
N005 (  8, 15) [000138] ---X--------              *  JTRUE     void  
In BB12 New Global Type     Assertion: ($80,$181) V04.02 is not Exact Type MT(742711C0), index = #07

;;; after

N004 (  8, 15) [000138] ------------              *  JTRUE     void  
N003 (  6, 13) [000029] J-----?N----              \--*  EQ        int    $105
N001 (  3,  2) [000168] ------------                 +--*  LCL_VAR   long   V08 cse0         u:1 $140
N002 (  2, 10) [000026] H-----?-----                 \--*  CNS_INT(h) long   0x7ffe742711c0 class $181

GenTreeNode creates assertion:
N004 (  8, 15) [000136] ------------              *  JTRUE     void  
In BB08 New Global Constant Assertion: ($140,$180) V08.01 == [00007FFE741AB0B0], index = #06
GenTreeNode creates assertion:
N004 (  8, 15) [000136] ------------              *  JTRUE     void  
In BB08 New Global Constant Assertion: ($140,$180) V08.01 != [00007FFE741AB0B0], index = #07
GenTreeNode creates assertion:
N004 (  8, 15) [000138] ------------              *  JTRUE     void  
In BB12 New Global Constant Assertion: ($140,$181) V08.01 == [00007FFE742711C0], index = #08
GenTreeNode creates assertion:
N004 (  8, 15) [000138] ------------              *  JTRUE     void  
In BB12 New Global Constant Assertion: ($140,$181) V08.01 != [00007FFE742711C0], index = #09

@EgorBo
Copy link
Member

EgorBo commented Oct 21, 2021

Nice! What about this case:

if (x > y)
{
  if (y <= x) // same as 'x > y'
  {
  }
}

both conditions are absolutely the same, just the order of operands is different.
... or some opt/Roslyn will reverse one of them?
UPD ah, they both will have the same VN

also, I assume this opt won't work for x != double.NaN?

@AndyAyersMS
Copy link
Member Author

conditions are absolutely the same, just the order of operands is different.
... or some opt/Roslyn will reverse one of them?

Not if sure all these cases are mapped to one standard form -- so probably worth looking at in more depth.

also, I assume this opt won't work for x != double.NaN?

Good point, we should exclude fp compares here. Let's see if we get any failures from this in existing testing.

@SingleAccretion
Copy link
Contributor

we should exclude fp compares here

A note to readers: this is because we do not model floating-pont EQ/NE in VN faithfully (unlike the relational operators I should note), we always assume that a floating-point EQ is ordered, and NE - unordered. This is ok because IL doesn't provide means to have them otherwise, and the compiler itself does not create them.

@AndyAyersMS
Copy link
Member Author

GCC build seems to be previously broken:

[ 87%] Building CXX object Interop/PInvoke/SetLastError/CMakeFiles/SetLastErrorNative.dir/SetLastErrorNative.cpp.o
/__w/1/s/src/tests/profiler/native/eltprofiler/slowpatheltprofiler.cpp:30:82: error: ‘visibility’ attribute ignored [-Werror=attributes]
   30 | PROFILER_STUB EnterStub(FunctionIDOrClientID functionId, COR_PRF_ELT_INFO eltInfo)

See #60225 (comment)

@AndyAyersMS
Copy link
Member Author

AndyAyersMS commented Oct 21, 2021

@EgorBo I am also seeing the case you noted above (see below, messed-up example edited out)

@AndyAyersMS
Copy link
Member Author

AndyAyersMS commented Oct 21, 2021

[edit: removed obsolete / incorrect info]

@SingleAccretion
Copy link
Contributor

Likely we should do the same trick we do for commutative ops, where we have a canonical order for operands based on the numerical value of their VNs, and swap the comparison operator to make it work.

Unfortunately it seems this would require "further work", as it trips up the fragile range check elimination.

@AndyAyersMS
Copy link
Member Author

Above summary of adding support for swapped compares wasn't quite implemented properly. Updated diff of diffs is

-131 total methods with Code Size differences (128 improved, 3 regressed), 14 unchanged.
-193 total methods with Code Size differences (171 improved, 22 regressed), 3 unchanged.
-421 total methods with Code Size differences (418 improved, 3 regressed), 5 unchanged.
-363 total methods with Code Size differences (343 improved, 20 regressed), 8 unchanged.
-1197 total methods with Code Size differences (1112 improved, 85 regressed), 45 unchanged.
-1241 total methods with Code Size differences (1156 improved, 85 regressed), 35 unchanged.
+134 total methods with Code Size differences (131 improved, 3 regressed), 14 unchanged.
+210 total methods with Code Size differences (185 improved, 25 regressed), 5 unchanged.
+385 total methods with Code Size differences (381 improved, 4 regressed), 5 unchanged.
+538 total methods with Code Size differences (519 improved, 19 regressed), 8 unchanged.
+1455 total methods with Code Size differences (1368 improved, 87 regressed), 53 unchanged.
+1281 total methods with Code Size differences (1196 improved, 85 regressed), 39 unchanged.

One interesting example:

https://github.com/dotnet/roslyn/blob/315c2e149ba7889b0937d872274c33fcbfe9af5f/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/Engine/AbstractTriviaDataFactory.AbstractComplexTrivia.cs#L58-L75

We now produce the following odd looking bit of code...

G_M030_IG01:        ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
       mov      rax, rcx
       ; gcrRegs +[rax]
						;; bbWeight=1    PerfScore 0.25
G_M030_IG02:        ; gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, byref, isz
       cmp      dword ptr [rax+24], 0
       jg       SHORT G_M030_IG04
						;; bbWeight=1    PerfScore 4.00
G_M030_IG03:        ; gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, byref, epilog, nogc
       ret      
						;; bbWeight=0.50 PerfScore 0.50
G_M030_IG04:        ; gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, byref, epilog, nogc
       ret    

@AndyAyersMS
Copy link
Member Author

Updated diff summary

aspnet.run.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 11830317 (overridden on cmd)
Total bytes of diff: 11828814 (overridden on cmd)
Total bytes of delta: -1503 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          10 : 6661.dasm (2.03% of base)
           3 : 25192.dasm (0.10% of base)
           2 : 38969.dasm (0.04% of base)

Top file improvements (bytes):
         -56 : 28335.dasm (-4.56% of base)
         -56 : 39235.dasm (-4.56% of base)
         -39 : 6823.dasm (-0.85% of base)
         -36 : 5253.dasm (-20.93% of base)
         -36 : 34582.dasm (-20.93% of base)
         -36 : 10687.dasm (-20.93% of base)
         -36 : 31874.dasm (-20.93% of base)
         -36 : 24660.dasm (-20.93% of base)
         -36 : 33146.dasm (-20.93% of base)
         -33 : 7111.dasm (-5.47% of base)
         -24 : 39718.dasm (-48.98% of base)
         -24 : 28749.dasm (-48.98% of base)
         -21 : 6654.dasm (-0.58% of base)
         -20 : 39682.dasm (-4.77% of base)
         -20 : 23831.dasm (-5.43% of base)
         -20 : 28627.dasm (-4.96% of base)
         -20 : 33414.dasm (-5.43% of base)
         -20 : 35882.dasm (-4.96% of base)
         -20 : 28630.dasm (-4.77% of base)
         -19 : 11878.dasm (-20.43% of base)

134 total files with Code Size differences (131 improved, 3 regressed), 14 unchanged.

Top method regressions (bytes):
          10 ( 2.03% of base) : 6661.dasm - HillClimbing:LogTransition(int,double,int):this
           3 ( 0.10% of base) : 25192.dasm - <ExecuteAsync>d__8:MoveNext():this
           2 ( 0.04% of base) : 38969.dasm - SelectExpression:VisitChildren(ExpressionVisitor):Expression:this

Top method improvements (bytes):
         -56 (-4.56% of base) : 28335.dasm - RelationalCommand:CreateDbCommand(RelationalCommandParameterObject,Guid,int):DbCommand:this
         -56 (-4.56% of base) : 39235.dasm - RelationalCommand:CreateDbCommand(RelationalCommandParameterObject,Guid,int):DbCommand:this
         -39 (-0.85% of base) : 6823.dasm - <ProcessRequestsAsync>d__69:MoveNext():this
         -36 (-20.93% of base) : 5253.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 34582.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 10687.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 31874.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 24660.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 33146.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -33 (-5.47% of base) : 7111.dasm - PathUtils:PathNavigatesAboveRoot(String):bool
         -24 (-48.98% of base) : 39718.dasm - NpgsqlDataReader:get_RecordsAffected():int:this
         -24 (-48.98% of base) : 28749.dasm - NpgsqlDataReader:get_RecordsAffected():int:this
         -21 (-0.58% of base) : 6654.dasm - HillClimbing:Update(int,double,int):ValueTuple`2:this
         -20 (-4.96% of base) : 28627.dasm - ConnectorTypeMapper:BindArrayType(NpgsqlTypeHandler,PostgresArrayType,Nullable`1,ref):this
         -20 (-4.96% of base) : 35882.dasm - ConnectorTypeMapper:BindArrayType(NpgsqlTypeHandler,PostgresArrayType,Nullable`1,ref):this
         -20 (-4.77% of base) : 39682.dasm - ConnectorTypeMapper:BindRangeType(NpgsqlTypeHandler,PostgresRangeType,Nullable`1,ref):this
         -20 (-4.77% of base) : 28630.dasm - ConnectorTypeMapper:BindRangeType(NpgsqlTypeHandler,PostgresRangeType,Nullable`1,ref):this
         -20 (-5.43% of base) : 23831.dasm - SpinWait:SpinOnceCore(int):this
         -20 (-5.43% of base) : 33414.dasm - SpinWait:SpinOnceCore(int):this
         -19 (-20.43% of base) : 11923.dasm - ControllerActionInvoker:Rethrow(ActionExecutedContextSealed)

Top method regressions (percentages):
          10 ( 2.03% of base) : 6661.dasm - HillClimbing:LogTransition(int,double,int):this
           3 ( 0.10% of base) : 25192.dasm - <ExecuteAsync>d__8:MoveNext():this
           2 ( 0.04% of base) : 38969.dasm - SelectExpression:VisitChildren(ExpressionVisitor):Expression:this

Top method improvements (percentages):
         -24 (-48.98% of base) : 39718.dasm - NpgsqlDataReader:get_RecordsAffected():int:this
         -24 (-48.98% of base) : 28749.dasm - NpgsqlDataReader:get_RecordsAffected():int:this
         -36 (-20.93% of base) : 5253.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 34582.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 10687.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 31874.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 24660.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -36 (-20.93% of base) : 33146.dasm - HttpUtilities:GetKnownMethod(ReadOnlySpan`1,byref):ubyte
         -19 (-20.43% of base) : 11923.dasm - ControllerActionInvoker:Rethrow(ActionExecutedContextSealed)
         -19 (-20.43% of base) : 30606.dasm - ResourceInvoker:Rethrow(ResourceExecutedContextSealed)
         -19 (-20.43% of base) : 11878.dasm - ResourceInvoker:Rethrow(ResultExecutedContextSealed)
          -5 (-7.94% of base) : 31947.dasm - Pipe:GetReadAsyncStatus():int:this
          -5 (-7.94% of base) : 24024.dasm - Pipe:GetReadAsyncStatus():int:this
         -33 (-5.47% of base) : 7111.dasm - PathUtils:PathNavigatesAboveRoot(String):bool
         -20 (-5.43% of base) : 23831.dasm - SpinWait:SpinOnceCore(int):this
         -20 (-5.43% of base) : 33414.dasm - SpinWait:SpinOnceCore(int):this
         -14 (-5.15% of base) : 27105.dasm - ValueGenerationConvention:ShouldHaveGeneratedProperty(IReadOnlyKey):bool
          -8 (-5.10% of base) : 30185.dasm - Ordinal:CompareStringIgnoreCase(byref,int,byref,int):int
          -9 (-4.97% of base) : 26803.dasm - HashCode:Combine(TypeMappingInfo,__Canon,Nullable`1):int
         -20 (-4.96% of base) : 28627.dasm - ConnectorTypeMapper:BindArrayType(NpgsqlTypeHandler,PostgresArrayType,Nullable`1,ref):this

134 total methods with Code Size differences (131 improved, 3 regressed), 14 unchanged.


benchmarks.run.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 7228664 (overridden on cmd)
Total bytes of diff: 7225979 (overridden on cmd)
Total bytes of delta: -2685 (-0.04 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          39 : 3520.dasm (31.20% of base)
          39 : 2984.dasm (31.97% of base)
          23 : 17442.dasm (1.58% of base)
          21 : 14250.dasm (4.99% of base)
          21 : 8357.dasm (2.64% of base)
          20 : 2418.dasm (0.26% of base)
          18 : 2831.dasm (3.90% of base)
          13 : 1315.dasm (2.75% of base)
          13 : 2811.dasm (6.60% of base)
          12 : 450.dasm (3.30% of base)
           6 : 13226.dasm (1.76% of base)
           6 : 4784.dasm (2.76% of base)
           6 : 10097.dasm (1.04% of base)
           6 : 11512.dasm (0.43% of base)
           6 : 4781.dasm (2.76% of base)
           6 : 3255.dasm (1.75% of base)
           4 : 21287.dasm (0.39% of base)
           4 : 3085.dasm (0.07% of base)
           4 : 8180.dasm (2.78% of base)
           3 : 18000.dasm (0.63% of base)

Top file improvements (bytes):
        -215 : 3863.dasm (-3.07% of base)
        -134 : 17656.dasm (-27.46% of base)
        -126 : 25406.dasm (-1.18% of base)
         -65 : 17541.dasm (-6.52% of base)
         -63 : 19016.dasm (-4.00% of base)
         -62 : 18004.dasm (-2.14% of base)
         -62 : 13858.dasm (-0.27% of base)
         -52 : 2936.dasm (-2.85% of base)
         -48 : 19001.dasm (-17.78% of base)
         -47 : 20859.dasm (-26.86% of base)
         -46 : 394.dasm (-5.94% of base)
         -45 : 15080.dasm (-0.66% of base)
         -42 : 23254.dasm (-26.92% of base)
         -37 : 3993.dasm (-1.14% of base)
         -37 : 2946.dasm (-0.64% of base)
         -34 : 18975.dasm (-12.59% of base)
         -32 : 18915.dasm (-1.47% of base)
         -30 : 16634.dasm (-1.32% of base)
         -30 : 16636.dasm (-0.40% of base)
         -30 : 16624.dasm (-1.05% of base)

210 total files with Code Size differences (185 improved, 25 regressed), 5 unchanged.

Top method regressions (bytes):
          39 (31.20% of base) : 3520.dasm - System.Runtime.Serialization.CodeGenerator:Load(System.Object):this
          39 (31.97% of base) : 2984.dasm - System.Xml.Serialization.CodeGenerator:Load(System.Object):this
          23 ( 1.58% of base) : 17442.dasm - Microsoft.CodeAnalysis.Compilation:Emit(System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.ResourceDescription, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.Emit.EmitOptions,Microsoft.CodeAnalysis.IMethodSymbol,System.IO.Stream,System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.EmbeddedText, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.IO.Stream,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Emit.EmitResult:this
          21 ( 2.64% of base) : 8357.dasm - System.Runtime.Serialization.Json.XmlJsonReader:ParseInt(System.String,int):int
          21 ( 4.99% of base) : 14250.dasm - System.Tests.Perf_Decimal:Parse(System.String):System.Decimal:this
          20 ( 0.26% of base) : 2418.dasm - System.Text.RegularExpressions.RegexCompiler:GenerateFindFirstChar():this
          18 ( 3.90% of base) : 2831.dasm - System.Runtime.Loader.AssemblyLoadContext:LoadFromAssemblyPath(System.String):System.Reflection.Assembly:this
          13 ( 6.60% of base) : 2811.dasm - System.IO.Path:GetDirectoryName(System.String):System.String
          13 ( 2.75% of base) : 1315.dasm - System.Runtime.Serialization.FormatterServices:GetParentTypes(System.Type,byref,byref):bool
          12 ( 3.30% of base) : 450.dasm - System.IO.Path:GetFullPath(System.String):System.String
           6 ( 2.76% of base) : 4781.dasm - System.Globalization.CompareInfo:IsPrefix(System.String,System.String,int):bool:this
           6 ( 2.76% of base) : 4784.dasm - System.Globalization.CompareInfo:IsSuffix(System.String,System.String,int):bool:this
           6 ( 1.75% of base) : 3255.dasm - System.Reflection.RuntimeAssembly:GetManifestResourceStream(System.Type,System.String):System.IO.Stream:this
           6 ( 0.43% of base) : 11512.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryParser:ReadValue(int):System.Object:this
           6 ( 1.76% of base) : 13226.dasm - System.Runtime.Serialization.Json.JsonReaderDelegator:ReadElementContentAsDateTime():System.DateTime:this
           6 ( 1.04% of base) : 10097.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.String,System.String):this
           4 ( 2.78% of base) : 8180.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:ReadEncoding(ubyte,ubyte):int
           4 ( 0.07% of base) : 3085.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this
           4 ( 0.39% of base) : 21287.dasm - System.Xml.XmlBaseWriter:WriteBase64(System.Byte[],int,int):this
           3 ( 0.23% of base) : 12543.dasm - BenchmarksGame.FannkuchRedux_5:run(int,int,int)

Top method improvements (bytes):
        -215 (-3.07% of base) : 3863.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[Char][System.Char]:First(System.Buffers.ReadOnlySequence`1[Char]):int:this
        -134 (-27.46% of base) : 17656.dasm - System.Reflection.Metadata.Ecma335.StringHeap:Equals(System.Reflection.Metadata.StringHandle,System.String,System.Reflection.Metadata.MetadataStringDecoder,bool):bool:this
        -126 (-1.18% of base) : 25406.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,System.Char[]):System.DateTime
         -65 (-6.52% of base) : 17541.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:ToDeclarationModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.DiagnosticBag):int
         -63 (-4.00% of base) : 19016.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeManager:AssignTemplatesNamesAndCompile(Microsoft.CodeAnalysis.CSharp.MethodCompiler,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag):this
         -62 (-0.27% of base) : 13858.dasm - DynamicClass:_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int)
         -62 (-2.14% of base) : 18004.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:LoadMembers():this
         -52 (-2.85% of base) : 2936.dasm - System.Xml.Serialization.XmlReflectionImporter:ReconcileAccessor(System.Xml.Serialization.Accessor,System.Xml.Serialization.NameTable):System.Xml.Serialization.Accessor:this
         -48 (-17.78% of base) : 19001.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:Microsoft.Cci.ISignature.GetParameters(Microsoft.CodeAnalysis.Emit.EmitContext):System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.IParameterTypeInformation, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
         -47 (-26.86% of base) : 20859.dasm - System.Collections.IterateForEach`1[__Canon][System.__Canon]:ImmutableStack():System.__Canon:this
         -46 (-5.94% of base) : 394.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this
         -45 (-0.66% of base) : 15080.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[Char][System.Char]:FirstSpan(System.Buffers.ReadOnlySequence`1[Char]):int:this
         -42 (-26.92% of base) : 23254.dasm - System.Collections.IterateForEach`1[Int32][System.Int32]:ImmutableStack():int:this
         -37 (-1.14% of base) : 3993.dasm - HillClimbing:Update(int,double,int):System.ValueTuple`2[Int32,Int32]:this
         -37 (-0.64% of base) : 2946.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):this
         -34 (-12.59% of base) : 18975.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:OptimizeTemporaries(Microsoft.CodeAnalysis.CSharp.BoundExpression[],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]])
         -32 (-1.47% of base) : 18915.dasm - Microsoft.CodeAnalysis.CSharp.ImportChain:TranslateImports(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[UsedNamespaceOrType]:this
         -30 (-1.05% of base) : 16624.dasm - DynamicClass:_DynamicMethod11(byref):int
         -30 (-0.87% of base) : 24285.dasm - DynamicClass:_DynamicMethod3(byref):int
         -30 (-0.98% of base) : 25404.dasm - DynamicClass:_DynamicMethod3(byref):int

Top method regressions (percentages):
          39 (31.97% of base) : 2984.dasm - System.Xml.Serialization.CodeGenerator:Load(System.Object):this
          39 (31.20% of base) : 3520.dasm - System.Runtime.Serialization.CodeGenerator:Load(System.Object):this
          13 ( 6.60% of base) : 2811.dasm - System.IO.Path:GetDirectoryName(System.String):System.String
          21 ( 4.99% of base) : 14250.dasm - System.Tests.Perf_Decimal:Parse(System.String):System.Decimal:this
          18 ( 3.90% of base) : 2831.dasm - System.Runtime.Loader.AssemblyLoadContext:LoadFromAssemblyPath(System.String):System.Reflection.Assembly:this
          12 ( 3.30% of base) : 450.dasm - System.IO.Path:GetFullPath(System.String):System.String
           4 ( 2.78% of base) : 8180.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:ReadEncoding(ubyte,ubyte):int
           6 ( 2.76% of base) : 4781.dasm - System.Globalization.CompareInfo:IsPrefix(System.String,System.String,int):bool:this
           6 ( 2.76% of base) : 4784.dasm - System.Globalization.CompareInfo:IsSuffix(System.String,System.String,int):bool:this
          13 ( 2.75% of base) : 1315.dasm - System.Runtime.Serialization.FormatterServices:GetParentTypes(System.Type,byref,byref):bool
          21 ( 2.64% of base) : 8357.dasm - System.Runtime.Serialization.Json.XmlJsonReader:ParseInt(System.String,int):int
           6 ( 1.76% of base) : 13226.dasm - System.Runtime.Serialization.Json.JsonReaderDelegator:ReadElementContentAsDateTime():System.DateTime:this
           6 ( 1.75% of base) : 3255.dasm - System.Reflection.RuntimeAssembly:GetManifestResourceStream(System.Type,System.String):System.IO.Stream:this
          23 ( 1.58% of base) : 17442.dasm - Microsoft.CodeAnalysis.Compilation:Emit(System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.ResourceDescription, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.Emit.EmitOptions,Microsoft.CodeAnalysis.IMethodSymbol,System.IO.Stream,System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.EmbeddedText, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.IO.Stream,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Emit.EmitResult:this
           6 ( 1.04% of base) : 10097.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.String,System.String):this
           3 ( 0.63% of base) : 18000.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetWellKnownTypeMember(int):Microsoft.CodeAnalysis.CSharp.Symbol:this
           3 ( 0.45% of base) : 25502.dasm - Microsoft.Extensions.Logging.LoggerRuleSelector:IsBetter(Microsoft.Extensions.Logging.LoggerFilterRule,Microsoft.Extensions.Logging.LoggerFilterRule,System.String,System.String):bool
           6 ( 0.43% of base) : 11512.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryParser:ReadValue(int):System.Object:this
           4 ( 0.39% of base) : 21287.dasm - System.Xml.XmlBaseWriter:WriteBase64(System.Byte[],int,int):this
          20 ( 0.26% of base) : 2418.dasm - System.Text.RegularExpressions.RegexCompiler:GenerateFindFirstChar():this

Top method improvements (percentages):
        -134 (-27.46% of base) : 17656.dasm - System.Reflection.Metadata.Ecma335.StringHeap:Equals(System.Reflection.Metadata.StringHandle,System.String,System.Reflection.Metadata.MetadataStringDecoder,bool):bool:this
         -42 (-26.92% of base) : 23254.dasm - System.Collections.IterateForEach`1[Int32][System.Int32]:ImmutableStack():int:this
         -47 (-26.86% of base) : 20859.dasm - System.Collections.IterateForEach`1[__Canon][System.__Canon]:ImmutableStack():System.__Canon:this
         -48 (-17.78% of base) : 19001.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:Microsoft.Cci.ISignature.GetParameters(Microsoft.CodeAnalysis.Emit.EmitContext):System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.IParameterTypeInformation, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
         -15 (-16.48% of base) : 10081.dasm - System.Text.Json.Serialization.Converters.NullableConverter`1[DateTimeOffset][System.DateTimeOffset]:Write(System.Text.Json.Utf8JsonWriter,System.Nullable`1[DateTimeOffset],System.Text.Json.JsonSerializerOptions):this
         -14 (-15.22% of base) : 18977.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetRefKindsOrNull(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[RefKind]):System.Collections.Immutable.ImmutableArray`1[RefKind]
         -19 (-14.62% of base) : 114.dasm - System.Threading.Tasks.Task`1[VoidTaskResult][System.Threading.Tasks.VoidTaskResult]:.ctor(bool,System.Threading.Tasks.VoidTaskResult,int,System.Threading.CancellationToken):this
         -10 (-14.29% of base) : 3201.dasm - System.Reflection.Emit.InternalAssemblyBuilder:Equals(System.Object):bool:this
         -10 (-14.29% of base) : 2633.dasm - System.Reflection.Emit.InternalModuleBuilder:Equals(System.Object):bool:this
         -22 (-13.66% of base) : 5715.dasm - System.Text.Json.JsonDocument:ClearAndReturn(System.ArraySegment`1[Byte])
         -34 (-12.59% of base) : 18975.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:OptimizeTemporaries(Microsoft.CodeAnalysis.CSharp.BoundExpression[],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]])
         -13 (-11.93% of base) : 18284.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:Any(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ImmutableArray`1],System.Func`2[ImmutableArray`1,Boolean]):bool
         -23 (-10.41% of base) : 18745.dasm - Microsoft.CodeAnalysis.CSharp.DataFlowPass:IntersectWith(byref,byref):bool:this
         -10 (-8.70% of base) : 16153.dasm - System.Xml.Serialization.NameKey:Equals(System.Object):bool:this
          -9 (-7.38% of base) : 20647.dasm - Microsoft.CodeAnalysis.CSharp.DataFlowsInWalker:ResetState(LocalState):LocalState:this
         -17 (-7.17% of base) : 1192.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:GetNext(byref):System.Object:this
         -65 (-6.52% of base) : 17541.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:ToDeclarationModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.DiagnosticBag):int
         -46 (-5.94% of base) : 394.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this
         -23 (-5.93% of base) : 17549.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode:ComputeSyntaxTree(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.SyntaxTree
          -5 (-5.62% of base) : 18123.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:get_PrimitiveTypeCode():int:this

210 total methods with Code Size differences (185 improved, 25 regressed), 5 unchanged.


coreclr_tests.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 127277355 (overridden on cmd)
Total bytes of diff: 127267657 (overridden on cmd)
Total bytes of delta: -9698 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
           4 : 234406.dasm (0.07% of base)
           3 : 239589.dasm (0.23% of base)
           2 : 233072.dasm (0.46% of base)
           2 : 233083.dasm (0.27% of base)

Top file improvements (bytes):
        -267 : 210315.dasm (-13.34% of base)
        -244 : 218139.dasm (-0.18% of base)
        -227 : 218220.dasm (-0.17% of base)
        -188 : 218015.dasm (-0.15% of base)
        -188 : 218099.dasm (-0.14% of base)
        -169 : 84889.dasm (-41.94% of base)
        -166 : 84887.dasm (-42.13% of base)
        -166 : 84906.dasm (-42.13% of base)
        -150 : 151594.dasm (-43.48% of base)
        -150 : 154230.dasm (-43.48% of base)
        -119 : 152127.dasm (-31.73% of base)
         -91 : 245295.dasm (-5.89% of base)
         -91 : 245298.dasm (-5.89% of base)
         -91 : 245301.dasm (-5.89% of base)
         -91 : 245299.dasm (-5.89% of base)
         -91 : 245300.dasm (-5.89% of base)
         -76 : 100783.dasm (-11.34% of base)
         -76 : 97543.dasm (-9.97% of base)
         -76 : 97544.dasm (-10.03% of base)
         -76 : 166148.dasm (-12.32% of base)

385 total files with Code Size differences (381 improved, 4 regressed), 5 unchanged.

Top method regressions (bytes):
           4 ( 0.07% of base) : 234406.dasm - ScanProjectFiles:ParseAndUpdateProj(System.String,bool):bool
           3 ( 0.23% of base) : 239589.dasm - BenchmarksGame.FannkuchRedux_5:run(int,int,int)
           2 ( 0.27% of base) : 233083.dasm - Driver`2[__Canon,__Canon][System.__Canon,System.__Canon]:AddRemoveKeyValPair(System.__Canon[],System.__Canon[],int,int):this
           2 ( 0.46% of base) : 233072.dasm - Driver`2[__Canon,__Canon][System.__Canon,System.__Canon]:BasicAdd(System.__Canon[],System.__Canon[]):this

Top method improvements (bytes):
        -267 (-13.34% of base) : 210315.dasm - Internal.IL.ILImporter:ImportBinaryOperation(int):this
        -244 (-0.18% of base) : 218139.dasm - i4rem:Main():int
        -227 (-0.17% of base) : 218220.dasm - u4rem:Main():int
        -188 (-0.15% of base) : 218015.dasm - i4div:Main():int
        -188 (-0.14% of base) : 218099.dasm - u4div:Main():int
        -169 (-41.94% of base) : 84889.dasm - _beq:main(System.String[]):int
        -166 (-42.13% of base) : 84887.dasm - _beq:main(System.String[]):int
        -166 (-42.13% of base) : 84906.dasm - _ceq:main(System.String[]):int
        -150 (-43.48% of base) : 151594.dasm - testout1:Func_0_1_5_1_6():long
        -150 (-43.48% of base) : 154230.dasm - testout1:Func_0_1_5_1_6():long
        -119 (-31.73% of base) : 152127.dasm - testout1:Func_0_4_5_3_1():long
         -91 (-5.89% of base) : 245295.dasm - AA`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:Static2(System.Boolean[,,][,],byref,ubyte,System.Nullable`1[Int32],ubyte,System.Nullable`1[Int32]):System.Boolean[,,,]
         -91 (-5.89% of base) : 245300.dasm - AA`2[Double,Nullable`1][System.Double,System.Nullable`1[System.Int32]]:Static2(System.Boolean[,,][,],byref,double,System.Nullable`1[Int32],double,System.Nullable`1[Int32]):System.Boolean[,,,]
         -91 (-5.89% of base) : 245298.dasm - AA`2[Int16,Nullable`1][System.Int16,System.Nullable`1[System.Int32]]:Static2(System.Boolean[,,][,],byref,short,System.Nullable`1[Int32],short,System.Nullable`1[Int32]):System.Boolean[,,,]
         -91 (-5.89% of base) : 245299.dasm - AA`2[Int32,Nullable`1][System.Int32,System.Nullable`1[System.Int32]]:Static2(System.Boolean[,,][,],byref,int,System.Nullable`1[Int32],int,System.Nullable`1[Int32]):System.Boolean[,,,]
         -91 (-5.89% of base) : 245301.dasm - AA`2[Int64,Nullable`1][System.Int64,System.Nullable`1[System.Int32]]:Static2(System.Boolean[,,][,],byref,long,System.Nullable`1[Int32],long,System.Nullable`1[Int32]):System.Boolean[,,,]
         -76 (-10.03% of base) : 93472.dasm - testout1:Sub_Funclet_416():double
         -76 (-10.08% of base) : 93887.dasm - testout1:Sub_Funclet_416():double
         -76 (-10.57% of base) : 97542.dasm - testout1:Sub_Funclet_416():float
         -76 (-10.51% of base) : 97127.dasm - testout1:Sub_Funclet_416():float

Top method regressions (percentages):
           2 ( 0.46% of base) : 233072.dasm - Driver`2[__Canon,__Canon][System.__Canon,System.__Canon]:BasicAdd(System.__Canon[],System.__Canon[]):this
           2 ( 0.27% of base) : 233083.dasm - Driver`2[__Canon,__Canon][System.__Canon,System.__Canon]:AddRemoveKeyValPair(System.__Canon[],System.__Canon[],int,int):this
           3 ( 0.23% of base) : 239589.dasm - BenchmarksGame.FannkuchRedux_5:run(int,int,int)
           4 ( 0.07% of base) : 234406.dasm - ScanProjectFiles:ParseAndUpdateProj(System.String,bool):bool

Top method improvements (percentages):
         -42 (-51.22% of base) : 83942.dasm - Sample10:func(System.Object):int
        -150 (-43.48% of base) : 151594.dasm - testout1:Func_0_1_5_1_6():long
        -150 (-43.48% of base) : 154230.dasm - testout1:Func_0_1_5_1_6():long
        -166 (-42.13% of base) : 84887.dasm - _beq:main(System.String[]):int
        -166 (-42.13% of base) : 84906.dasm - _ceq:main(System.String[]):int
        -169 (-41.94% of base) : 84889.dasm - _beq:main(System.String[]):int
         -20 (-32.79% of base) : 130815.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 109423.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 134106.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 8773.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 132539.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 139264.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 176758.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 184297.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 172380.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 178412.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 802.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 105815.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 175113.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte
         -20 (-32.79% of base) : 181606.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AbsSaturate(byte):byte

385 total methods with Code Size differences (381 improved, 4 regressed), 5 unchanged.


libraries.crossgen2.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 34156930 (overridden on cmd)
Total bytes of diff: 34150239 (overridden on cmd)
Total bytes of delta: -6691 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          14 : 136962.dasm (1.44% of base)
          12 : 41532.dasm (4.38% of base)
           9 : 158226.dasm (2.86% of base)
           9 : 136929.dasm (1.07% of base)
           8 : 210585.dasm (0.79% of base)
           7 : 45669.dasm (1.69% of base)
           7 : 65974.dasm (0.88% of base)
           7 : 54021.dasm (0.56% of base)
           5 : 199057.dasm (2.16% of base)
           4 : 37712.dasm (1.97% of base)
           4 : 86694.dasm (3.48% of base)
           3 : 49145.dasm (0.22% of base)
           3 : 45655.dasm (0.59% of base)
           3 : 183068.dasm (0.25% of base)
           2 : 145285.dasm (0.11% of base)
           2 : 153679.dasm (0.09% of base)
           2 : 205268.dasm (0.31% of base)
           1 : 58254.dasm (0.22% of base)
           1 : 210949.dasm (0.19% of base)

Top file improvements (bytes):
        -465 : 144896.dasm (-1.84% of base)
        -164 : 139436.dasm (-26.41% of base)
        -131 : 141371.dasm (-45.64% of base)
        -114 : 129283.dasm (-4.35% of base)
        -112 : 186431.dasm (-6.29% of base)
        -107 : 142245.dasm (-12.51% of base)
        -106 : 141694.dasm (-31.93% of base)
        -106 : 141695.dasm (-31.93% of base)
         -95 : 144883.dasm (-2.56% of base)
         -89 : 131935.dasm (-6.65% of base)
         -74 : 118585.dasm (-7.42% of base)
         -71 : 96732.dasm (-41.28% of base)
         -67 : 181092.dasm (-1.43% of base)
         -64 : 10884.dasm (-1.51% of base)
         -64 : 170272.dasm (-50.79% of base)
         -58 : 144419.dasm (-28.71% of base)
         -57 : 139708.dasm (-27.27% of base)
         -57 : 140272.dasm (-26.76% of base)
         -57 : 140209.dasm (-30.48% of base)
         -57 : 140274.dasm (-30.00% of base)

538 total files with Code Size differences (519 improved, 19 regressed), 8 unchanged.

Top method regressions (bytes):
          14 ( 1.44% of base) : 136962.dasm - System.Speech.Internal.Synthesis.PcmConverter:Resampling(System.Single[],System.Single[]):System.Single[]:this
          12 ( 4.38% of base) : 41532.dasm - System.IO.Path:GetFullPath(System.String):System.String
           9 ( 2.86% of base) : 158226.dasm - Microsoft.FSharp.Primitives.Basics.List:splitIntoToFreshConsTail(Microsoft.FSharp.Collections.FSharpList`1[System.__Canon],Microsoft.FSharp.Collections.FSharpList`1[Microsoft.FSharp.Collections.FSharpList`1[System.__Canon]],int,int,int,int,Microsoft.FSharp.Collections.FSharpList`1[System.__Canon])
           9 ( 1.07% of base) : 136929.dasm - System.Speech.Internal.Synthesis.SsmlParser:ParseSub(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,int,System.Speech.Internal.Synthesis.SsmlParser+SsmlAttributes,bool)
           8 ( 0.79% of base) : 210585.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:GetAsPrincipal(System.Object,System.Object):System.DirectoryServices.AccountManagement.Principal:this
           7 ( 0.88% of base) : 65974.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedOperatorSymbolBase:.ctor(int,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.DiagnosticBag,bool):this
           7 ( 0.56% of base) : 54021.dasm - System.ParseNumbers:IntToString(int,int,int,ushort,int):System.String
           7 ( 1.69% of base) : 45669.dasm - System.Runtime.Loader.AssemblyLoadContext:LoadFromAssemblyPath(System.String):System.Reflection.Assembly:this
           5 ( 2.16% of base) : 199057.dasm - System.Uri:Compare(System.Uri,System.Uri,int,int,int):int
           4 ( 1.97% of base) : 37712.dasm - Newtonsoft.Json.JsonTextWriter:SetIndentChars():int:this
           4 ( 3.48% of base) : 86694.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:ReadEncoding(ubyte,ubyte):int
           3 ( 0.22% of base) : 49145.dasm - System.Buffers.Text.Utf8Parser:TryParseDateTimeOffsetO(System.ReadOnlySpan`1[System.Byte],byref,byref,byref):bool
           3 ( 0.59% of base) : 45655.dasm - System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this
           3 ( 0.25% of base) : 183068.dasm - System.Threading.ReaderWriterLock:AcquireReaderLock(int):this
           2 ( 0.31% of base) : 205268.dasm - ManagementObjectEnumerator:MoveNext():bool:this
           2 ( 0.09% of base) : 153679.dasm - Microsoft.CodeAnalysis.Compilation:SerializeToPeStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,System.Func`1[System.Object],Microsoft.CodeAnalysis.DiagnosticBag,bool,System.Threading.CancellationToken):bool:this
           2 ( 0.11% of base) : 145285.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,bool,System.Object[],int,System.String[],System.Type[],bool,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
           1 ( 0.22% of base) : 58254.dasm - SorterObjectArray:PickPivotAndPartition(int,int):int:this
           1 ( 0.19% of base) : 210949.dasm - System.DirectoryServices.AccountManagement.AccountInfo:GetChangeStatusForProperty(System.String):bool:this

Top method improvements (bytes):
        -465 (-1.84% of base) : 144896.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
        -164 (-26.41% of base) : 139436.dasm - System.Data.Common.BigIntegerStorage:ConvertToBigInteger(System.Object,System.IFormatProvider):System.Numerics.BigInteger
        -131 (-45.64% of base) : 141371.dasm - System.Data.DataView:GetDataRowViewFromRange(System.Data.Range):System.Data.DataRowView[]:this
        -114 (-4.35% of base) : 129283.dasm - System.Xml.XmlLoader:LoadDocumentType(System.Xml.IDtdInfo,System.Xml.XmlDocumentType):this
        -112 (-6.29% of base) : 186431.dasm - System.Security.Cryptography.Xml.EncryptedXml:DecryptEncryptedKey(System.Security.Cryptography.Xml.EncryptedKey):System.Byte[]:this
        -107 (-12.51% of base) : 142245.dasm - System.Data.DataRelation:GetParentRow(System.Data.DataKey,System.Data.DataKey,System.Data.DataRow,int):System.Data.DataRow
        -106 (-31.93% of base) : 141694.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object):System.Data.DataRow:this
        -106 (-31.93% of base) : 141695.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object[]):System.Data.DataRow:this
         -95 (-2.56% of base) : 144883.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this
         -89 (-6.65% of base) : 131935.dasm - System.Xml.XmlCharCheckingReader:Read():bool:this
         -74 (-7.42% of base) : 118585.dasm - Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode:GetAllChildren():System.Collections.Generic.IList`1[Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode]:this
         -71 (-41.28% of base) : 96732.dasm - System.Net.Http.Headers.ObjectCollection`1:Contains(System.__Canon):bool:this
         -67 (-1.43% of base) : 181092.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this
         -64 (-1.51% of base) : 10884.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:MatchArguments(Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.Binder,byref,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,bool,byref)
         -64 (-50.79% of base) : 170272.dasm - System.Net.WebClient:ByteArrayHasPrefix(System.Byte[],System.Byte[]):bool
         -58 (-28.71% of base) : 144419.dasm - Microsoft.VisualBasic.ForEachEnum:MoveNext():bool:this
         -57 (-27.27% of base) : 139708.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlByte
         -57 (-30.81% of base) : 139710.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlByte
         -57 (-26.76% of base) : 140272.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlInt16
         -57 (-30.00% of base) : 140274.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt16

Top method regressions (percentages):
          12 ( 4.38% of base) : 41532.dasm - System.IO.Path:GetFullPath(System.String):System.String
           4 ( 3.48% of base) : 86694.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:ReadEncoding(ubyte,ubyte):int
           9 ( 2.86% of base) : 158226.dasm - Microsoft.FSharp.Primitives.Basics.List:splitIntoToFreshConsTail(Microsoft.FSharp.Collections.FSharpList`1[System.__Canon],Microsoft.FSharp.Collections.FSharpList`1[Microsoft.FSharp.Collections.FSharpList`1[System.__Canon]],int,int,int,int,Microsoft.FSharp.Collections.FSharpList`1[System.__Canon])
           5 ( 2.16% of base) : 199057.dasm - System.Uri:Compare(System.Uri,System.Uri,int,int,int):int
           4 ( 1.97% of base) : 37712.dasm - Newtonsoft.Json.JsonTextWriter:SetIndentChars():int:this
           7 ( 1.69% of base) : 45669.dasm - System.Runtime.Loader.AssemblyLoadContext:LoadFromAssemblyPath(System.String):System.Reflection.Assembly:this
          14 ( 1.44% of base) : 136962.dasm - System.Speech.Internal.Synthesis.PcmConverter:Resampling(System.Single[],System.Single[]):System.Single[]:this
           9 ( 1.07% of base) : 136929.dasm - System.Speech.Internal.Synthesis.SsmlParser:ParseSub(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,int,System.Speech.Internal.Synthesis.SsmlParser+SsmlAttributes,bool)
           7 ( 0.88% of base) : 65974.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedOperatorSymbolBase:.ctor(int,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.DiagnosticBag,bool):this
           8 ( 0.79% of base) : 210585.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:GetAsPrincipal(System.Object,System.Object):System.DirectoryServices.AccountManagement.Principal:this
           3 ( 0.59% of base) : 45655.dasm - System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this
           7 ( 0.56% of base) : 54021.dasm - System.ParseNumbers:IntToString(int,int,int,ushort,int):System.String
           2 ( 0.31% of base) : 205268.dasm - ManagementObjectEnumerator:MoveNext():bool:this
           3 ( 0.25% of base) : 183068.dasm - System.Threading.ReaderWriterLock:AcquireReaderLock(int):this
           1 ( 0.22% of base) : 58254.dasm - SorterObjectArray:PickPivotAndPartition(int,int):int:this
           3 ( 0.22% of base) : 49145.dasm - System.Buffers.Text.Utf8Parser:TryParseDateTimeOffsetO(System.ReadOnlySpan`1[System.Byte],byref,byref,byref):bool
           1 ( 0.19% of base) : 210949.dasm - System.DirectoryServices.AccountManagement.AccountInfo:GetChangeStatusForProperty(System.String):bool:this
           2 ( 0.11% of base) : 145285.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,bool,System.Object[],int,System.String[],System.Type[],bool,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
           2 ( 0.09% of base) : 153679.dasm - Microsoft.CodeAnalysis.Compilation:SerializeToPeStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,System.Func`1[System.Object],Microsoft.CodeAnalysis.DiagnosticBag,bool,System.Threading.CancellationToken):bool:this

Top method improvements (percentages):
         -64 (-50.79% of base) : 170272.dasm - System.Net.WebClient:ByteArrayHasPrefix(System.Byte[],System.Byte[]):bool
        -131 (-45.64% of base) : 141371.dasm - System.Data.DataView:GetDataRowViewFromRange(System.Data.Range):System.Data.DataRowView[]:this
         -30 (-44.78% of base) : 88248.dasm - System.Runtime.Serialization.ExtensionDataReader:get_Item(int):System.String:this
         -30 (-44.78% of base) : 88247.dasm - System.Runtime.Serialization.ExtensionDataReader:get_Item(System.String):System.String:this
         -71 (-41.28% of base) : 96732.dasm - System.Net.Http.Headers.ObjectCollection`1:Contains(System.__Canon):bool:this
        -106 (-31.93% of base) : 141694.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object):System.Data.DataRow:this
        -106 (-31.93% of base) : 141695.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object[]):System.Data.DataRow:this
         -57 (-30.81% of base) : 139710.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlByte
         -57 (-30.48% of base) : 140209.dasm - System.Data.SqlTypes.SqlInt32:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt32
         -57 (-30.00% of base) : 140274.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt16
         -56 (-29.95% of base) : 139711.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlInt32):System.Data.SqlTypes.SqlByte
         -56 (-29.95% of base) : 140275.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlInt32):System.Data.SqlTypes.SqlInt16
         -56 (-29.63% of base) : 139712.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlInt16):System.Data.SqlTypes.SqlByte
         -58 (-28.71% of base) : 144419.dasm - Microsoft.VisualBasic.ForEachEnum:MoveNext():bool:this
         -56 (-28.43% of base) : 139709.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlSingle):System.Data.SqlTypes.SqlByte
         -56 (-27.86% of base) : 140273.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlSingle):System.Data.SqlTypes.SqlInt16
         -56 (-27.86% of base) : 140208.dasm - System.Data.SqlTypes.SqlInt32:op_Explicit(System.Data.SqlTypes.SqlSingle):System.Data.SqlTypes.SqlInt32
         -57 (-27.27% of base) : 139708.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlByte
         -56 (-27.05% of base) : 140142.dasm - System.Data.SqlTypes.SqlInt64:op_Explicit(System.Data.SqlTypes.SqlSingle):System.Data.SqlTypes.SqlInt64
         -57 (-26.76% of base) : 140272.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlDouble):System.Data.SqlTypes.SqlInt16

538 total methods with Code Size differences (519 improved, 19 regressed), 8 unchanged.


libraries.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 45591932 (overridden on cmd)
Total bytes of diff: 45568732 (overridden on cmd)
Total bytes of delta: -23200 (-0.05 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          61 : 215520.dasm (1.66% of base)
          57 : 113516.dasm (4.43% of base)
          37 : 162372.dasm (4.39% of base)
          24 : 161245.dasm (1.75% of base)
          24 : 154748.dasm (1.42% of base)
          19 : 145852.dasm (0.30% of base)
          15 : 42310.dasm (1.38% of base)
          15 : 55630.dasm (1.66% of base)
          14 : 151409.dasm (1.43% of base)
          14 : 128133.dasm (8.09% of base)
          14 : 144390.dasm (8.24% of base)
          14 : 72452.dasm (8.92% of base)
          14 : 72506.dasm (8.14% of base)
          12 : 152697.dasm (0.39% of base)
          12 : 214874.dasm (2.53% of base)
          12 : 189014.dasm (1.00% of base)
          10 : 14926.dasm (4.78% of base)
           9 : 11016.dasm (2.95% of base)
           8 : 14910.dasm (4.32% of base)
           8 : 14911.dasm (4.37% of base)

Top file improvements (bytes):
        -552 : 104911.dasm (-2.23% of base)
        -480 : 22337.dasm (-5.94% of base)
        -368 : 50027.dasm (-6.47% of base)
        -284 : 49924.dasm (-2.95% of base)
        -256 : 85222.dasm (-6.29% of base)
        -202 : 112509.dasm (-49.88% of base)
        -191 : 151453.dasm (-11.38% of base)
        -180 : 115847.dasm (-75.95% of base)
        -177 : 221638.dasm (-7.04% of base)
        -165 : 148807.dasm (-49.25% of base)
        -150 : 137204.dasm (-6.16% of base)
        -148 : 112182.dasm (-41.11% of base)
        -148 : 112183.dasm (-41.11% of base)
        -141 : 43294.dasm (-7.26% of base)
        -141 : 111530.dasm (-20.11% of base)
        -134 : 148806.dasm (-27.46% of base)
        -124 : 113648.dasm (-5.52% of base)
        -121 : 50166.dasm (-5.40% of base)
        -119 : 49623.dasm (-10.32% of base)
        -113 : 50152.dasm (-1.72% of base)

1455 total files with Code Size differences (1368 improved, 87 regressed), 53 unchanged.

Top method regressions (bytes):
          61 ( 1.66% of base) : 215520.dasm - System.Security.AccessControl.CommonAcl:RemoveQualifiedAces(System.Security.Principal.SecurityIdentifier,int,int,ubyte,bool,int,System.Guid,System.Guid):bool:this
          57 ( 4.43% of base) : 113516.dasm - System.Data.ConstNode:SmallestDecimal(System.Object):System.Object:this
          37 ( 4.39% of base) : 162372.dasm - Microsoft.Extensions.FileProviders.Physical.Internal.PathUtils:PathNavigatesAboveRoot(System.String):bool
          24 ( 1.75% of base) : 161245.dasm - Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:VisitElement(System.Text.Json.JsonElement):this
          24 ( 1.42% of base) : 154748.dasm - System.Text.Json.Nodes.JsonObject:InitializeIfRequired():this
          19 ( 0.30% of base) : 145852.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,bool,bool,int,int):this
          15 ( 1.38% of base) : 42310.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:CheckConstraints(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.BitVector):bool
          15 ( 1.66% of base) : 55630.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation:TrySynthesizeAttribute(int,System.Collections.Immutable.ImmutableArray`1[TypedConstant],System.Collections.Immutable.ImmutableArray`1[KeyValuePair`2]):Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedAttributeData:this
          14 ( 8.92% of base) : 72452.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToChar(System.Object):ushort
          14 ( 8.14% of base) : 72506.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToDate(System.Object):System.DateTime
          14 ( 8.09% of base) : 128133.dasm - System.Runtime.Serialization.CodeGenerator:Load(System.Object):this
          14 ( 1.43% of base) : 151409.dasm - System.Speech.Internal.Synthesis.PcmConverter:Resampling(System.Single[],System.Single[]):System.Single[]:this
          14 ( 8.24% of base) : 144390.dasm - System.Xml.Serialization.CodeGenerator:Load(System.Object):this
          12 ( 1.00% of base) : 189014.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:GetAsPrincipal(System.Object,System.Object):System.DirectoryServices.AccountManagement.Principal:this
          12 ( 2.53% of base) : 214874.dasm - System.Runtime.Serialization.FormatterServices:GetParentTypes(System.Type,byref,byref):bool
          12 ( 0.39% of base) : 152697.dasm - System.Text.GB18030Encoding:GetChars(long,int,long,int,System.Text.DecoderNLS):int:this
          10 ( 4.78% of base) : 14926.dasm - System.Enum:Parse(System.String,bool):System.Numerics.Vector`1[Single]
           9 ( 2.95% of base) : 11016.dasm - Microsoft.FSharp.Primitives.Basics.List:splitIntoToFreshConsTail(Microsoft.FSharp.Collections.FSharpList`1[__Canon],Microsoft.FSharp.Collections.FSharpList`1[__Canon],int,int,int,int,Microsoft.FSharp.Collections.FSharpList`1[__Canon])
           8 ( 4.28% of base) : 14913.dasm - System.Enum:Parse(System.String):double
           8 ( 4.40% of base) : 14912.dasm - System.Enum:Parse(System.String):int

Top method improvements (bytes):
        -552 (-2.23% of base) : 104911.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
        -480 (-5.94% of base) : 22337.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,bool,byref,bool):bool:this
        -368 (-6.47% of base) : 50027.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeLocalModifiersAndReportErrors(Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.DiagnosticBag):this
        -284 (-2.95% of base) : 49924.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,int,int,int,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.MemberModifiers:this
        -256 (-6.29% of base) : 85222.dasm - Microsoft.Diagnostics.Tracing.TraceEvent:PayloadString(int,System.IFormatProvider):System.String:this
        -202 (-49.88% of base) : 112509.dasm - System.Data.DataView:GetDataRowViewFromRange(System.Data.Range):System.Data.DataRowView[]:this
        -191 (-11.38% of base) : 151453.dasm - System.Speech.Internal.Synthesis.SsmlParser:ParseSayAs(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,int,SsmlAttributes,bool)
        -180 (-75.95% of base) : 115847.dasm - System.Data.Common.SqlStringStorage:Compare(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int:this
        -177 (-7.04% of base) : 221638.dasm - System.Security.Cryptography.Xml.EncryptedXml:DecryptEncryptedKey(System.Security.Cryptography.Xml.EncryptedKey):System.Byte[]:this
        -165 (-49.25% of base) : 148807.dasm - System.Reflection.Metadata.Ecma335.StringHeap:StartsWith(System.Reflection.Metadata.StringHandle,System.String,System.Reflection.Metadata.MetadataStringDecoder,bool):bool:this
        -150 (-6.16% of base) : 137204.dasm - System.Xml.XmlLoader:LoadDocumentType(System.Xml.IDtdInfo,System.Xml.XmlDocumentType):this
        -148 (-41.11% of base) : 112183.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object):System.Data.DataRow:this
        -148 (-41.11% of base) : 112182.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object[]):System.Data.DataRow:this
        -141 (-7.26% of base) : 43294.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceFieldLikeEventSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.DiagnosticBag):this
        -141 (-20.11% of base) : 111530.dasm - System.Data.DataRelation:GetParentRow(System.Data.DataKey,System.Data.DataKey,System.Data.DataRow,int):System.Data.DataRow
        -134 (-27.46% of base) : 148806.dasm - System.Reflection.Metadata.Ecma335.StringHeap:Equals(System.Reflection.Metadata.StringHandle,System.String,System.Reflection.Metadata.MetadataStringDecoder,bool):bool:this
        -124 (-5.52% of base) : 113648.dasm - System.Data.SqlTypes.SqlDecimal:op_Multiply(System.Data.SqlTypes.SqlDecimal,System.Data.SqlTypes.SqlDecimal):System.Data.SqlTypes.SqlDecimal
        -121 (-5.40% of base) : 50166.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindIndexedInvocationExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.InvocationExpressionSyntax,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.BoundExpression, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.Location, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],bool,byref,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
        -119 (-10.32% of base) : 49623.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:VisitAsNewLocalDeclarations(Microsoft.CodeAnalysis.VisualBasic.BoundAsNewLocalDeclarations):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this
        -113 (-1.72% of base) : 50152.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindLateBoundInvocation(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.BoundExpression, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],Microsoft.CodeAnalysis.DiagnosticBag,bool):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this

Top method regressions (percentages):
          14 ( 8.92% of base) : 72452.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToChar(System.Object):ushort
          14 ( 8.24% of base) : 144390.dasm - System.Xml.Serialization.CodeGenerator:Load(System.Object):this
          14 ( 8.14% of base) : 72506.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToDate(System.Object):System.DateTime
          14 ( 8.09% of base) : 128133.dasm - System.Runtime.Serialization.CodeGenerator:Load(System.Object):this
           4 ( 4.88% of base) : 232893.dasm - Xunit.TestFrameworkOptions:ToDebuggerDisplay(System.Object):System.String:this
          10 ( 4.78% of base) : 14926.dasm - System.Enum:Parse(System.String,bool):System.Numerics.Vector`1[Single]
          57 ( 4.43% of base) : 113516.dasm - System.Data.ConstNode:SmallestDecimal(System.Object):System.Object:this
           8 ( 4.40% of base) : 14912.dasm - System.Enum:Parse(System.String):int
          37 ( 4.39% of base) : 162372.dasm - Microsoft.Extensions.FileProviders.Physical.Internal.PathUtils:PathNavigatesAboveRoot(System.String):bool
           8 ( 4.37% of base) : 14915.dasm - System.Enum:Parse(System.String):long
           8 ( 4.37% of base) : 14911.dasm - System.Enum:Parse(System.String):short
           8 ( 4.32% of base) : 14910.dasm - System.Enum:Parse(System.String):ubyte
           8 ( 4.28% of base) : 14913.dasm - System.Enum:Parse(System.String):double
           8 ( 4.26% of base) : 14924.dasm - System.Enum:Parse(System.String,bool):int
           8 ( 4.23% of base) : 14927.dasm - System.Enum:Parse(System.String,bool):long
           8 ( 4.23% of base) : 14923.dasm - System.Enum:Parse(System.String,bool):short
           8 ( 4.19% of base) : 14922.dasm - System.Enum:Parse(System.String,bool):ubyte
           8 ( 4.15% of base) : 14925.dasm - System.Enum:Parse(System.String,bool):double
           8 ( 3.96% of base) : 14914.dasm - System.Enum:Parse(System.String):System.Numerics.Vector`1[Single]
           4 ( 3.74% of base) : 72371.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicExtensions:GetIdentifierText(Microsoft.CodeAnalysis.SyntaxToken):System.String

Top method improvements (percentages):
        -180 (-75.95% of base) : 115847.dasm - System.Data.Common.SqlStringStorage:Compare(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int:this
         -79 (-55.24% of base) : 114128.dasm - System.Data.SqlTypes.SqlSingle:op_Explicit(System.Data.SqlTypes.SqlString):System.Data.SqlTypes.SqlSingle
        -202 (-49.88% of base) : 112509.dasm - System.Data.DataView:GetDataRowViewFromRange(System.Data.Range):System.Data.DataRowView[]:this
         -63 (-49.61% of base) : 209502.dasm - System.Net.WebClient:ByteArrayHasPrefix(System.Byte[],System.Byte[]):bool
        -165 (-49.25% of base) : 148807.dasm - System.Reflection.Metadata.Ecma335.StringHeap:StartsWith(System.Reflection.Metadata.StringHandle,System.String,System.Reflection.Metadata.MetadataStringDecoder,bool):bool:this
         -79 (-48.47% of base) : 113754.dasm - System.Data.SqlTypes.SqlDouble:op_Explicit(System.Data.SqlTypes.SqlString):System.Data.SqlTypes.SqlDouble
         -22 (-45.83% of base) : 128700.dasm - System.Runtime.Serialization.ExtensionDataReader:get_Item(int):System.String:this
         -22 (-44.90% of base) : 128701.dasm - System.Runtime.Serialization.ExtensionDataReader:get_Item(System.String):System.String:this
         -48 (-44.04% of base) : 41056.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.IParameterTypeInformation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
         -48 (-43.24% of base) : 56402.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEModuleBuilder:Translate(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.IParameterTypeInformation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
         -34 (-41.98% of base) : 26099.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel:GetSpeculativeAliasInfoCore(int,Microsoft.CodeAnalysis.SyntaxNode,int):Microsoft.CodeAnalysis.IAliasSymbol:this
         -34 (-41.98% of base) : 55811.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:GetSpeculativeAliasInfoCore(int,Microsoft.CodeAnalysis.SyntaxNode,int):Microsoft.CodeAnalysis.IAliasSymbol:this
         -70 (-41.18% of base) : 125559.dasm - System.Net.Http.Headers.ObjectCollection`1[__Canon][System.__Canon]:Contains(System.__Canon):bool:this
        -148 (-41.11% of base) : 112183.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object):System.Data.DataRow:this
        -148 (-41.11% of base) : 112182.dasm - System.Data.DataTable:FindRow(System.Data.DataKey,System.Object[]):System.Data.DataRow:this
         -23 (-33.82% of base) : 72530.dasm - LocalState:get_Reachable():bool:this
         -93 (-33.82% of base) : 105404.dasm - Microsoft.VisualBasic.ForEachEnum:MoveNext():bool:this
         -32 (-32.65% of base) : 178693.dasm - System.ComponentModel.InheritanceAttribute:Equals(System.Object):bool:this
         -79 (-32.64% of base) : 113921.dasm - System.Data.SqlTypes.SqlInt32:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt32
         -79 (-32.51% of base) : 114417.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlByte

1455 total methods with Code Size differences (1368 improved, 87 regressed), 53 unchanged.


libraries_tests.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 113781967 (overridden on cmd)
Total bytes of diff: 113763274 (overridden on cmd)
Total bytes of delta: -18693 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          53 : 222475.dasm (0.94% of base)
          53 : 218210.dasm (0.94% of base)
          25 : 228535.dasm (2.42% of base)
          23 : 103027.dasm (0.67% of base)
          23 : 89891.dasm (0.67% of base)
          20 : 129297.dasm (4.35% of base)
          20 : 100745.dasm (1.45% of base)
          17 : 129300.dasm (4.46% of base)
          14 : 128533.dasm (8.92% of base)
          14 : 128586.dasm (8.14% of base)
          11 : 72778.dasm (1.56% of base)
          11 : 220164.dasm (1.53% of base)
          11 : 216028.dasm (1.53% of base)
          11 : 318608.dasm (1.56% of base)
          10 : 129366.dasm (1.01% of base)
           9 : 99924.dasm (0.45% of base)
           8 : 318374.dasm (1.39% of base)
           8 : 99925.dasm (0.41% of base)
           8 : 71218.dasm (1.39% of base)
           7 : 287511.dasm (1.47% of base)

Top file improvements (bytes):
        -490 : 1088.dasm (-27.24% of base)
        -305 : 219468.dasm (-6.39% of base)
        -305 : 215312.dasm (-6.39% of base)
        -273 : 175312.dasm (-2.82% of base)
        -212 : 239760.dasm (-35.75% of base)
        -164 : 95429.dasm (-20.60% of base)
        -157 : 231196.dasm (-3.10% of base)
        -114 : 219526.dasm (-23.95% of base)
        -114 : 215370.dasm (-23.95% of base)
         -97 : 252309.dasm (-2.98% of base)
         -92 : 8807.dasm (-26.36% of base)
         -83 : 115246.dasm (-3.67% of base)
         -81 : 130596.dasm (-1.99% of base)
         -81 : 130598.dasm (-2.35% of base)
         -81 : 130599.dasm (-2.35% of base)
         -81 : 130595.dasm (-2.35% of base)
         -78 : 15989.dasm (-87.64% of base)
         -77 : 254541.dasm (-6.97% of base)
         -77 : 335973.dasm (-3.80% of base)
         -77 : 219568.dasm (-15.10% of base)

1281 total files with Code Size differences (1196 improved, 85 regressed), 39 unchanged.

Top method regressions (bytes):
          53 ( 0.94% of base) : 222475.dasm - System.Data.SqlClient.TdsParser:TdsLogin(System.Data.SqlClient.SqlLogin,int,System.Data.SqlClient.SessionData,System.Nullable`1[FederatedAuthenticationFeatureExtensionData]):this
          53 ( 0.94% of base) : 218210.dasm - System.Data.SqlClient.TdsParser:TdsLogin(System.Data.SqlClient.SqlLogin,int,System.Data.SqlClient.SessionData,System.Nullable`1[FederatedAuthenticationFeatureExtensionData]):this
          25 ( 2.42% of base) : 228535.dasm - ImTools.ImMapTree`1[__Canon][System.__Canon]:BalanceNewRightTree(ImTools.ImMapTree`1[__Canon]):ImTools.ImMapTree`1[__Canon]:this
          23 ( 0.67% of base) : 89891.dasm - <ReadArrayListOfArray>d__357:MoveNext():this
          23 ( 0.67% of base) : 103027.dasm - <ReadArrayListOfArray>d__376:MoveNext():this
          20 ( 4.35% of base) : 129297.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.StatementSyntaxExtensions:GetTopLevelBlockBegin(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.DeclarationStatementSyntax
          20 ( 1.45% of base) : 100745.dasm - System.Text.Json.Serialization.Tests.ClassWithComplexObjects:Verify():this
          17 ( 4.46% of base) : 129300.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.StatementSyntaxExtensions:GetMemberBlockBegin(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.DeclarationStatementSyntax
          14 ( 8.92% of base) : 128533.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToChar(System.Object):ushort
          14 ( 8.14% of base) : 128586.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToDate(System.Object):System.DateTime
          11 ( 1.53% of base) : 220164.dasm - System.Net.NetEventSource:Format(System.Object):System.Object
          11 ( 1.53% of base) : 216028.dasm - System.Net.NetEventSource:Format(System.Object):System.Object
          11 ( 1.56% of base) : 72778.dasm - System.Tests.UInt16Tests:EqualsTest(ushort,System.Object,bool)
          11 ( 1.56% of base) : 318608.dasm - System.Tests.UInt16Tests:EqualsTest(ushort,System.Object,bool)
          10 ( 1.01% of base) : 129366.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.SyntaxTokenExtensions:GetInnermostDeclarationContext(Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.SyntaxNode
           9 ( 0.45% of base) : 99924.dasm - System.Text.Json.Serialization.Tests.DomTests:SerializeToDocument()
           8 ( 1.39% of base) : 318374.dasm - System.Tests.CharTests:EqualsTest(ushort,System.Object,bool)
           8 ( 1.39% of base) : 71218.dasm - System.Tests.CharTests:EqualsTest(ushort,System.Object,bool)
           8 ( 0.41% of base) : 99925.dasm - System.Text.Json.Serialization.Tests.DomTests:SerializeToElement()
           7 ( 1.47% of base) : 287511.dasm - System.IO.MemoryMappedFiles.Tests.SafeMemoryMappedViewHandleTests:SafeMemoryMappedViewHandle_CanUseInPInvoke_Windows():this

Top method improvements (bytes):
        -490 (-27.24% of base) : 1088.dasm - Roslyn.Utilities.ObjectWriter:WriteValue(System.Object):this
        -305 (-6.39% of base) : 219468.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:SetCompatibleValue(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedSettersV3,int,Microsoft.SqlServer.Server.SmiMetaData,System.Object,int,int)
        -305 (-6.39% of base) : 215312.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:SetCompatibleValue(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedSettersV3,int,Microsoft.SqlServer.Server.SmiMetaData,System.Object,int,int)
        -273 (-2.82% of base) : 175312.dasm - System.Memory.Tests.ReadOnlySequenceTestsEmpty:Empty_TryGet():this
        -212 (-35.75% of base) : 239760.dasm - Lamar.IoC.Instances.GeneratedInstance:GetBuildPlan(Lamar.IoC.Scope):System.String:this
        -164 (-20.60% of base) : 95429.dasm - System.Text.Json.Tests.JsonDocumentTests:DefaultArrayEnumeratorDoesNotThrow()
        -157 (-3.10% of base) : 231196.dasm - Registry:WithDefaultService(DryIoc.Factory,int,System.Type,int):Registry:this
        -114 (-23.95% of base) : 219526.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:GetBytesConversion(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedGettersV3,int,Microsoft.SqlServer.Server.SmiMetaData,long,System.Byte[],int,int,bool):long
        -114 (-23.95% of base) : 215370.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:GetBytesConversion(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedGettersV3,int,Microsoft.SqlServer.Server.SmiMetaData,long,System.Byte[],int,int,bool):long
         -97 (-2.98% of base) : 252309.dasm - Microsoft.Extensions.Primitives.StringSegmentTest:StringSegment_CompareEqual_Globalized(System.String,System.String,int,int):this
         -92 (-26.36% of base) : 8807.dasm - Microsoft.CodeAnalysis.LanguageServices.AbstractSyntaxFacts:ContainsInterleavedDirective(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Threading.CancellationToken):bool:this
         -83 (-3.67% of base) : 115246.dasm - Microsoft.Build.Tasks.GenerateResource:Execute():bool:this
         -81 (-2.35% of base) : 130599.dasm - XmlClassifier:ClassifyXmlCData(Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlCDataSectionSyntax):this
         -81 (-2.35% of base) : 130598.dasm - XmlClassifier:ClassifyXmlComment(Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlCommentSyntax):this
         -81 (-1.99% of base) : 130596.dasm - XmlClassifier:ClassifyXmlProcessingInstruction(Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlProcessingInstructionSyntax):this
         -81 (-2.35% of base) : 130595.dasm - XmlClassifier:ClassifyXmlString(Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlStringSyntax):this
         -78 (-87.64% of base) : 15989.dasm - AbstractComplexTrivia:WithSpace(int,Microsoft.CodeAnalysis.Formatting.FormattingContext,Microsoft.CodeAnalysis.Formatting.ChainedFormattingRules):Microsoft.CodeAnalysis.Formatting.TriviaData:this
         -77 (-15.10% of base) : 219568.dasm - Microsoft.SqlServer.Server.SqlMetaData:Adjust(System.Data.SqlTypes.SqlString):System.Data.SqlTypes.SqlString:this
         -77 (-15.10% of base) : 215414.dasm - Microsoft.SqlServer.Server.SqlMetaData:Adjust(System.Data.SqlTypes.SqlString):System.Data.SqlTypes.SqlString:this
         -77 (-6.97% of base) : 254541.dasm - Moq.StringBuilderExtensions:AppendValueOf(System.Text.StringBuilder,System.Object):System.Text.StringBuilder

Top method regressions (percentages):
          14 ( 8.92% of base) : 128533.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToChar(System.Object):ushort
          14 ( 8.14% of base) : 128586.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToDate(System.Object):System.DateTime
          17 ( 4.46% of base) : 129300.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.StatementSyntaxExtensions:GetMemberBlockBegin(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.DeclarationStatementSyntax
          20 ( 4.35% of base) : 129297.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.StatementSyntaxExtensions:GetTopLevelBlockBegin(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.DeclarationStatementSyntax
          25 ( 2.42% of base) : 228535.dasm - ImTools.ImMapTree`1[__Canon][System.__Canon]:BalanceNewRightTree(ImTools.ImMapTree`1[__Canon]):ImTools.ImMapTree`1[__Canon]:this
           3 ( 2.19% of base) : 21032.dasm - <>c__DisplayClass49_0[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           3 ( 2.19% of base) : 268914.dasm - <>c__DisplayClass49_0[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           3 ( 2.19% of base) : 265895.dasm - <>c__DisplayClass49_0[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           3 ( 2.19% of base) : 21033.dasm - <>c__DisplayClass49_0[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           3 ( 2.19% of base) : 268915.dasm - <>c__DisplayClass49_0[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           3 ( 2.19% of base) : 265896.dasm - <>c__DisplayClass49_0[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:<IDictionary_Generic_Add_DuplicateValue>b__0(System.Nullable`1[Int32]):bool:this
           4 ( 2.16% of base) : 1253.dasm - Roslyn.Utilities.FileNameUtilities:RemoveExtension(System.String):System.String
          11 ( 1.56% of base) : 72778.dasm - System.Tests.UInt16Tests:EqualsTest(ushort,System.Object,bool)
          11 ( 1.56% of base) : 318608.dasm - System.Tests.UInt16Tests:EqualsTest(ushort,System.Object,bool)
          11 ( 1.53% of base) : 220164.dasm - System.Net.NetEventSource:Format(System.Object):System.Object
          11 ( 1.53% of base) : 216028.dasm - System.Net.NetEventSource:Format(System.Object):System.Object
           7 ( 1.47% of base) : 287511.dasm - System.IO.MemoryMappedFiles.Tests.SafeMemoryMappedViewHandleTests:SafeMemoryMappedViewHandle_CanUseInPInvoke_Windows():this
          20 ( 1.45% of base) : 100745.dasm - System.Text.Json.Serialization.Tests.ClassWithComplexObjects:Verify():this
           8 ( 1.39% of base) : 318374.dasm - System.Tests.CharTests:EqualsTest(ushort,System.Object,bool)
           8 ( 1.39% of base) : 71218.dasm - System.Tests.CharTests:EqualsTest(ushort,System.Object,bool)

Top method improvements (percentages):
         -78 (-87.64% of base) : 15989.dasm - AbstractComplexTrivia:WithSpace(int,Microsoft.CodeAnalysis.Formatting.FormattingContext,Microsoft.CodeAnalysis.Formatting.ChainedFormattingRules):Microsoft.CodeAnalysis.Formatting.TriviaData:this
         -60 (-68.97% of base) : 19321.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object):int:this
         -60 (-68.97% of base) : 267492.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object):int:this
         -60 (-68.97% of base) : 272298.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object):int:this
         -60 (-68.97% of base) : 270512.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object):int:this
         -60 (-68.97% of base) : 265303.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object):int:this
         -60 (-68.97% of base) : 19322.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object,System.Collections.IComparer):int:this
         -60 (-68.97% of base) : 267493.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object,System.Collections.IComparer):int:this
         -60 (-68.97% of base) : 270513.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object,System.Collections.IComparer):int:this
         -60 (-68.97% of base) : 272299.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object,System.Collections.IComparer):int:this
         -60 (-68.97% of base) : 265304.dasm - System.Collections.Tests.SimpleInt:CompareTo(System.Object,System.Collections.IComparer):int:this
         -60 (-66.67% of base) : 19323.dasm - System.Collections.Tests.SimpleInt:Equals(System.Object,System.Collections.IEqualityComparer):bool:this
         -60 (-66.67% of base) : 267494.dasm - System.Collections.Tests.SimpleInt:Equals(System.Object,System.Collections.IEqualityComparer):bool:this
         -60 (-66.67% of base) : 270514.dasm - System.Collections.Tests.SimpleInt:Equals(System.Object,System.Collections.IEqualityComparer):bool:this
         -60 (-66.67% of base) : 272300.dasm - System.Collections.Tests.SimpleInt:Equals(System.Object,System.Collections.IEqualityComparer):bool:this
         -60 (-66.67% of base) : 265305.dasm - System.Collections.Tests.SimpleInt:Equals(System.Object,System.Collections.IEqualityComparer):bool:this
         -70 (-41.18% of base) : 181454.dasm - System.Net.Http.Headers.ObjectCollection`1[__Canon][System.__Canon]:Contains(System.__Canon):bool:this
        -212 (-35.75% of base) : 239760.dasm - Lamar.IoC.Instances.GeneratedInstance:GetBuildPlan(Lamar.IoC.Scope):System.String:this
         -57 (-33.33% of base) : 215230.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:SetSqlInt64_Unchecked(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedSettersV3,int,System.Data.SqlTypes.SqlInt64)
         -57 (-33.33% of base) : 219386.dasm - Microsoft.SqlServer.Server.ValueUtilsSmi:SetSqlInt64_Unchecked(Microsoft.SqlServer.Server.SmiEventSink_Default,Microsoft.SqlServer.Server.ITypedSettersV3,int,System.Data.SqlTypes.SqlInt64)

1281 total methods with Code Size differences (1196 improved, 85 regressed), 39 unchanged.


@AndyAyersMS
Copy link
Member Author

@dotnet/jit-contrib ping

@BruceForstall
Copy link
Contributor

I must be missing something. In your example above, if I pass F(5,5) I should get the answer 2 but your code returns 0. Why?

Copy link
Contributor

@BruceForstall BruceForstall left a comment

Choose a reason for hiding this comment

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

The code looks good, but the discussion of the F example seems wrong.

//
// Arguments:
// vn - vn to base things on
// vnk - whether the new vn should swap, reverse, or both
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// vnk - whether the new vn should swap, reverse, or both
// vrk - whether the new vn should swap, reverse, or both

// vn for reversed/swapped comparsion, or NoVN.
//
// Note:
// If "vn" corresponds to (x > y), the resulting VN correponds to
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// If "vn" corresponds to (x > y), the resulting VN correponds to
// If "vn" corresponds to (x > y), the resulting VN corresponds to:

Comment on lines 152 to 155
// Note we could also infer the tree relop's value from similar relops higher in the dom tree.
// For example, (x >= 0) dominating (x > 0), or (x < 0) dominating (x > 0).
//
// That is left as a future enhancement.
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this comment obsolete now? (Or in need of updating to match the new code)

Copy link
Member Author

Choose a reason for hiding this comment

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

I'll update it -- there are still cases we don't get, like the first one listed.

@AndyAyersMS
Copy link
Member Author

AndyAyersMS commented Oct 23, 2021

I must be missing something. In your example above, if I pass F(5,5) I should get the answer 2 but your code returns 0. Why?

Sorry about that. My example above was indeed messed up.... here's a corrected one that matches Egor's snippet

    static int F3(int x, int y)
    {
        int r = 0;
        if (x > y) 
        {
            r += 1;
            if (y >= x) r += 2;
        }
        return r;
    }
;;; base

; Assembly listing for method X:F3(int,int):int
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
;  V00 arg0         [V00,T00] (  4,  3.50)     int  ->  rcx         single-def
;  V01 arg1         [V01,T01] (  4,  3.50)     int  ->  rdx         single-def
;  V02 loc0         [V02,T02] (  4,  3   )     int  ->  rax        
;# V03 OutArgs      [V03    ] (  1,  1   )  lclBlk ( 0) [rsp+00H]   "OutgoingArgSpace"
;
; Lcl frame size = 0

G_M37129_IG01:              ;; offset=0000H
						;; bbWeight=1    PerfScore 0.00
G_M37129_IG02:              ;; offset=0000H
       33C0                 xor      eax, eax
       3BCA                 cmp      ecx, edx
       7E0E                 jle      SHORT G_M37129_IG04
						;; bbWeight=1    PerfScore 1.50
G_M37129_IG03:              ;; offset=0006H
       B801000000           mov      eax, 1
       3BD1                 cmp      edx, ecx
       7C05                 jl       SHORT G_M37129_IG04
       B803000000           mov      eax, 3
						;; bbWeight=0.50 PerfScore 0.88
G_M37129_IG04:              ;; offset=0014H
       C3                   ret      
						;; bbWeight=1    PerfScore 1.00

; Total bytes of code 21, prolog size 0, PerfScore 5.48, instruction count 8, allocated bytes for code 21 (MethodHash=ddcb6ef6) for method X:F3(int,int):int

;;; diff

; Assembly listing for method X:F3(int,int):int
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
;  V00 arg0         [V00,T00] (  3,  3   )     int  ->  rcx         single-def
;  V01 arg1         [V01,T01] (  3,  3   )     int  ->  rdx         single-def
;  V02 loc0         [V02,T02] (  3,  2.50)     int  ->  rax        
;# V03 OutArgs      [V03    ] (  1,  1   )  lclBlk ( 0) [rsp+00H]   "OutgoingArgSpace"
;
; Lcl frame size = 0

G_M37129_IG01:              ;; offset=0000H
						;; bbWeight=1    PerfScore 0.00
G_M37129_IG02:              ;; offset=0000H
       33C0                 xor      eax, eax
       3BCA                 cmp      ecx, edx
       7E05                 jle      SHORT G_M37129_IG04
						;; bbWeight=1    PerfScore 1.50
G_M37129_IG03:              ;; offset=0006H
       B801000000           mov      eax, 1
						;; bbWeight=0.50 PerfScore 0.12
G_M37129_IG04:              ;; offset=000BH
       C3                   ret      
						;; bbWeight=1    PerfScore 1.00

; Total bytes of code 12, prolog size 0, PerfScore 3.83, instruction count 5, allocated bytes for code 12 (MethodHash=ddcb6ef6) for method X:F3(int,int):int

@AndyAyersMS AndyAyersMS merged commit 63d9790 into dotnet:main Oct 23, 2021
@AndyAyersMS AndyAyersMS deleted the JumpThreadReverse branch October 23, 2021 16:09
@ghost ghost locked as resolved and limited conversation to collaborators Nov 22, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants