Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

JIT: some enhancements to redundant branch opts #60732

Merged
merged 4 commits into from
Oct 23, 2021

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.
@dotnet-issue-labeler dotnet-issue-labeler bot 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
Member

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
Member

@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
Member

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
Member

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
Member

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