Skip to content

JIT: some enhancements to redundant branch opts - #60732

Merged
AndyAyersMS merged 4 commits into
dotnet:mainfrom
AndyAyersMS:JumpThreadReverse
Oct 23, 2021
Merged

JIT: some enhancements to redundant branch opts#60732
AndyAyersMS merged 4 commits into
dotnet:mainfrom
AndyAyersMS:JumpThreadReverse

Conversation

@AndyAyersMS

Copy link
Copy Markdown
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.
@ghostghost 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
Copy Markdown

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
Copy Markdown
MemberAuthor

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

EgorBo commented Oct 21, 2021

Copy link
Copy Markdown
Member

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
Copy Markdown
MemberAuthor

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
Copy Markdown
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
Copy Markdown
MemberAuthor

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

AndyAyersMS commented Oct 21, 2021

Copy link
Copy Markdown
MemberAuthor

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

@AndyAyersMS

AndyAyersMS commented Oct 21, 2021

Copy link
Copy Markdown
MemberAuthor

[edit: removed obsolete / incorrect info]

@SingleAccretion

Copy link
Copy Markdown
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
Copy Markdown
MemberAuthor

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 IGmovrax,rcx ; gcrRegs +[rax] ;; bbWeight=1 PerfScore 0.25G_M030_IG02: ; gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, byref, iszcmp dword ptr [rax+24],0jg SHORT G_M030_IG04 ;; bbWeight=1 PerfScore 4.00G_M030_IG03: ; gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, byref, epilog, nogcret ;; bbWeight=0.50 PerfScore 0.50G_M030_IG04: ; gcrefRegs=00000001 {rax}, byrefRegs=00000000 {}, byref, epilog, nogcret

@AndyAyersMS

Copy link
Copy Markdown
MemberAuthor

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
Copy Markdown
MemberAuthor

@dotnet/jit-contrib ping

@BruceForstall

Copy link
Copy Markdown
Contributor

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

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadsrc/coreclr/jit/valuenum.cpp Outdated
//
// Arguments:
// vn - vn to base things on
// vnk - whether the new vn should swap, reverse, or both

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

Comment threadsrc/coreclr/jit/valuenum.cpp Outdated
// vn for reversed/swapped comparsion, or NoVN.
//
// Note:
// If "vn" corresponds to (x > y), the resulting VN correponds to

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

Copy link
Copy Markdown
MemberAuthor

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

AndyAyersMS commented Oct 23, 2021

Copy link
Copy Markdown
MemberAuthor

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

staticintF3(intx,inty){intr=0;if(x>y){r+=1;if(y>=x)r+=2;}returnr;}
;;; 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 = 0G_M37129_IG01: ;; offset=0000H ;; bbWeight=1 PerfScore 0.00G_M37129_IG02: ;; offset=0000H 33C0 xoreax,eax 3BCA cmpecx,edx 7E0E jle SHORT G_M37129_IG04 ;; bbWeight=1 PerfScore 1.50G_M37129_IG03: ;; offset=0006H B801000000 moveax,1 3BD1 cmpedx,ecx 7C05 jl SHORT G_M37129_IG04 B803000000 moveax,3 ;; bbWeight=0.50 PerfScore 0.88G_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 = 0G_M37129_IG01: ;; offset=0000H ;; bbWeight=1 PerfScore 0.00G_M37129_IG02: ;; offset=0000H 33C0 xoreax,eax 3BCA cmpecx,edx 7E05 jle SHORT G_M37129_IG04 ;; bbWeight=1 PerfScore 1.50G_M37129_IG03: ;; offset=0006H B801000000 moveax,1 ;; bbWeight=0.50 PerfScore 0.12G_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:mainOct 23, 2021
@AndyAyersMS
AndyAyersMS deleted the JumpThreadReverse branch October 23, 2021 16:09
@ghostghost locked as resolved and limited conversation to collaborators Nov 22, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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

@AndyAyersMS@EgorBo@SingleAccretion@BruceForstall