Skip to content

JIT: extend redundant relop to handle side effects - #61275

Merged
AndyAyersMS merged 2 commits into
dotnet:mainfrom
AndyAyersMS:RedundantRelopWithSideEffect
Nov 9, 2021
Merged

JIT: extend redundant relop to handle side effects#61275
AndyAyersMS merged 2 commits into
dotnet:mainfrom
AndyAyersMS:RedundantRelopWithSideEffect

Conversation

@AndyAyersMS

Copy link
Copy Markdown
Member

Handle the case where the side-effecting redundant relop appears
just before the jump tree relop.

Also revamp how we search for related VNs so it can be done as a
search loop.

Handle the case where the side-effecting redundant relop appears
just before the jump tree relop.
Also revamp how we search for related VNs so it can be done as a
search loop.
@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Nov 6, 2021
@ghost

ghost commented Nov 6, 2021

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 the case where the side-effecting redundant relop appears
just before the jump tree relop.

Also revamp how we search for related VNs so it can be done as a
search loop.

Author:AndyAyersMS
Assignees:-
Labels:

area-CodeGen-coreclr

Milestone:-

@AndyAyersMS

Copy link
Copy Markdown
MemberAuthor

cc @dotnet/jit-contrib

SPMI diffs (as before, somewhat inflated because of the checked SPC)

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


Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 13648293 (overridden on cmd)
Total bytes of diff: 13642555 (overridden on cmd)
Total bytes of delta: -5738 (-0.04 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
3 : 15409.dasm (2.50% of base)
3 : 10361.dasm (0.98% of base)
3 : 30168.dasm (0.98% of base)
3 : 33767.dasm (0.98% of base)
3 : 10363.dasm (2.50% of base)
Top file improvements (bytes):
-60 : 33947.dasm (-1.27% of base)
-60 : 39682.dasm (-1.12% of base)
-58 : 39944.dasm (-0.58% of base)
-52 : 34030.dasm (-0.52% of base)
-44 : 14821.dasm (-6.81% of base)
-43 : 8220.dasm (-8.55% of base)
-43 : 20541.dasm (-0.45% of base)
-43 : 16061.dasm (-8.55% of base)
-40 : 10064.dasm (-0.80% of base)
-39 : 39942.dasm (-0.73% of base)
-38 : 39674.dasm (-14.79% of base)
-38 : 14251.dasm (-14.79% of base)
-38 : 9610.dasm (-14.79% of base)
-37 : 34024.dasm (-0.73% of base)
-36 : 14882.dasm (-0.56% of base)
-35 : 29711.dasm (-0.90% of base)
-33 : 34035.dasm (-1.08% of base)
-32 : 17535.dasm (-11.55% of base)
-32 : 23893.dasm (-11.55% of base)
-30 : 34032.dasm (-0.96% of base)
485 total files with Code Size differences (480 improved, 5 regressed), 26 unchanged.
Top method regressions (bytes):
3 ( 0.98% of base) : 10361.dasm - ASCIIUtility:WidenAsciiToUtf16(long,long,long):long
3 ( 0.98% of base) : 30168.dasm - ASCIIUtility:WidenAsciiToUtf16(long,long,long):long
3 ( 0.98% of base) : 33767.dasm - ASCIIUtility:WidenAsciiToUtf16(long,long,long):long
3 ( 2.50% of base) : 15409.dasm - ASCIIUtility:WidenAsciiToUtf16_Intrinsified(long,long,long):long
3 ( 2.50% of base) : 10363.dasm - ASCIIUtility:WidenAsciiToUtf16_Intrinsified(long,long,long):long
Top method improvements (bytes):
-60 (-1.27% of base) : 33947.dasm - NpgsqlLTreeTranslator:.ctor(IRelationalTypeMappingSource,NpgsqlSqlExpressionFactory,IModel):this
-60 (-1.12% of base) : 39682.dasm - NpgsqlLTreeTranslator:.ctor(IRelationalTypeMappingSource,NpgsqlSqlExpressionFactory,IModel):this
-58 (-0.58% of base) : 39944.dasm - NpgsqlMethodCallTranslatorProvider:.ctor(RelationalMethodCallTranslatorProviderDependencies,IModel,INpgsqlOptions):this
-52 (-0.52% of base) : 34030.dasm - NpgsqlMethodCallTranslatorProvider:.ctor(RelationalMethodCallTranslatorProviderDependencies,IModel,INpgsqlOptions):this
-44 (-6.81% of base) : 14821.dasm - DateHeaderParser:TryParseValue(String,Object,byref,byref):bool:this
-43 (-0.45% of base) : 20541.dasm - <NextResult>d__47:MoveNext():this
-43 (-8.55% of base) : 8220.dasm - StringUtilities:BytesOrdinalEqualsStringAndAscii(String,ReadOnlySpan`1):bool
-43 (-8.55% of base) : 16061.dasm - StringUtilities:BytesOrdinalEqualsStringAndAscii(String,ReadOnlySpan`1):bool
-40 (-0.80% of base) : 10064.dasm - <CopyAsync>d__2:MoveNext():this
-39 (-0.73% of base) : 39942.dasm - NpgsqlMemberTranslatorProvider:.ctor(RelationalMemberTranslatorProviderDependencies,IModel,IRelationalTypeMappingSource,INpgsqlOptions):this
-38 (-14.79% of base) : 39674.dasm - MemoryExtensions:Trim(ReadOnlySpan`1):ReadOnlySpan`1
-38 (-14.79% of base) : 14251.dasm - MemoryExtensions:Trim(ReadOnlySpan`1):ReadOnlySpan`1
-38 (-14.79% of base) : 9610.dasm - MemoryExtensions:Trim(ReadOnlySpan`1):ReadOnlySpan`1
-37 (-0.73% of base) : 34024.dasm - NpgsqlMemberTranslatorProvider:.ctor(RelationalMemberTranslatorProviderDependencies,IModel,IRelationalTypeMappingSource,INpgsqlOptions):this
-36 (-0.56% of base) : 14882.dasm - <CopyAsync>d__2:MoveNext():this
-35 (-0.90% of base) : 29711.dasm - HttpResponseWritingExtensions:WriteAsync(HttpResponse,String,Encoding,CancellationToken):Task
-33 (-1.08% of base) : 34035.dasm - NpgsqlNetworkTranslator:.ctor(IRelationalTypeMappingSource,NpgsqlSqlExpressionFactory,IModel):this
-32 (-11.55% of base) : 17535.dasm - NpgsqlSqlGenerationHelper:RequiresQuoting(String):bool
-32 (-11.55% of base) : 23893.dasm - NpgsqlSqlGenerationHelper:RequiresQuoting(String):bool
-30 (-6.42% of base) : 14735.dasm - HttpDateParser:TryParse(ReadOnlySpan`1,byref):bool
Top method regressions (percentages):
3 ( 2.50% of base) : 15409.dasm - ASCIIUtility:WidenAsciiToUtf16_Intrinsified(long,long,long):long
3 ( 2.50% of base) : 10363.dasm - ASCIIUtility:WidenAsciiToUtf16_Intrinsified(long,long,long):long
3 ( 0.98% of base) : 10361.dasm - ASCIIUtility:WidenAsciiToUtf16(long,long,long):long
3 ( 0.98% of base) : 30168.dasm - ASCIIUtility:WidenAsciiToUtf16(long,long,long):long
3 ( 0.98% of base) : 33767.dasm - ASCIIUtility:WidenAsciiToUtf16(long,long,long):long
Top method improvements (percentages):
-8 (-21.62% of base) : 38959.dasm - CancellationToken:ThrowIfCancellationRequested():this
-8 (-21.62% of base) : 13939.dasm - CancellationToken:ThrowIfCancellationRequested():this
-8 (-21.05% of base) : 6211.dasm - CancellationToken:ThrowIfCancellationRequested():this
-8 (-21.05% of base) : 28722.dasm - CancellationToken:ThrowIfCancellationRequested():this
-8 (-21.05% of base) : 41497.dasm - CancellationToken:ThrowIfCancellationRequested():this
-8 (-21.05% of base) : 4744.dasm - CancellationToken:ThrowIfCancellationRequested():this
-8 (-21.05% of base) : 42664.dasm - CancellationToken:ThrowIfCancellationRequested():this
-8 (-20.51% of base) : 14430.dasm - CancellationHelper:ThrowIfCancellationRequested(CancellationToken)
-8 (-20.51% of base) : 10338.dasm - CancellationHelper:ThrowIfCancellationRequested(CancellationToken)
-8 (-16.00% of base) : 24076.dasm - Node:get_Is4Node():bool:this
-38 (-14.79% of base) : 39674.dasm - MemoryExtensions:Trim(ReadOnlySpan`1):ReadOnlySpan`1
-38 (-14.79% of base) : 14251.dasm - MemoryExtensions:Trim(ReadOnlySpan`1):ReadOnlySpan`1
-38 (-14.79% of base) : 9610.dasm - MemoryExtensions:Trim(ReadOnlySpan`1):ReadOnlySpan`1
-8 (-13.56% of base) : 24291.dasm - Node:get_Is2Node():bool:this
-10 (-12.66% of base) : 15382.dasm - UnmanagedMemoryStream:EnsureReadable():this
-10 (-12.66% of base) : 38559.dasm - UnmanagedMemoryStream:EnsureReadable():this
-32 (-11.55% of base) : 17535.dasm - NpgsqlSqlGenerationHelper:RequiresQuoting(String):bool
-32 (-11.55% of base) : 23893.dasm - NpgsqlSqlGenerationHelper:RequiresQuoting(String):bool
-8 (-11.43% of base) : 40827.dasm - HttpResponsePipeWriter:ValidateState(CancellationToken):this
-8 (-11.43% of base) : 14859.dasm - HttpResponsePipeWriter:ValidateState(CancellationToken):this
485 total methods with Code Size differences (480 improved, 5 regressed), 26 unchanged.

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


Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 7151027 (overridden on cmd)
Total bytes of diff: 7122053 (overridden on cmd)
Total bytes of delta: -28974 (-0.41 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
6 : 1397.dasm (2.30% of base)
6 : 26161.dasm (0.43% of base)
5 : 4252.dasm (0.42% of base)
5 : 18259.dasm (2.07% of base)
3 : 4245.dasm (0.66% of base)
1 : 722.dasm (0.04% of base)
Top file improvements (bytes):
-555 : 1489.dasm (-7.74% of base)
-412 : 9944.dasm (-14.33% of base)
-404 : 1296.dasm (-4.33% of base)
-264 : 17181.dasm (-2.84% of base)
-240 : 17239.dasm (-5.73% of base)
-238 : 5870.dasm (-36.73% of base)
-234 : 3196.dasm (-13.59% of base)
-217 : 21157.dasm (-9.99% of base)
-208 : 6916.dasm (-36.56% of base)
-202 : 170.dasm (-19.42% of base)
-200 : 5763.dasm (-14.53% of base)
-185 : 20677.dasm (-20.93% of base)
-181 : 22193.dasm (-11.94% of base)
-181 : 14469.dasm (-8.86% of base)
-170 : 293.dasm (-5.71% of base)
-169 : 7295.dasm (-19.38% of base)
-168 : 8221.dasm (-36.68% of base)
-160 : 15409.dasm (-2.98% of base)
-160 : 18080.dasm (-4.13% of base)
-159 : 11537.dasm (-12.72% of base)
1032 total files with Code Size differences (1026 improved, 6 regressed), 42 unchanged.
Top method regressions (bytes):
6 ( 0.43% of base) : 26161.dasm - System.Diagnostics.Tracing.EventSource:DecodeObjects(System.Object[],System.Type[],long)
6 ( 2.30% of base) : 1397.dasm - System.Text.ASCIIUtility:WidenAsciiToUtf16_Intrinsified(long,long,long):long
5 ( 2.07% of base) : 18259.dasm - Microsoft.CodeAnalysis.ConcurrentCache`2[BinderCacheKey,__Canon][Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderCacheKey,System.__Canon]:TryAdd(BinderCacheKey,System.__Canon):bool:this
5 ( 0.42% of base) : 4252.dasm - System.Diagnostics.Activity:Create(System.Diagnostics.ActivitySource,System.String,int,System.String,System.Diagnostics.ActivityContext,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[ActivityLink],System.DateTimeOffset,System.Diagnostics.ActivityTagsCollection,int,bool,int):System.Diagnostics.Activity
3 ( 0.66% of base) : 4245.dasm - System.Diagnostics.ActivityCreationOptions`1[ActivityContext][System.Diagnostics.ActivityContext]:.ctor(System.Diagnostics.ActivitySource,System.String,System.Diagnostics.ActivityContext,int,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[ActivityLink],int):this
1 ( 0.04% of base) : 722.dasm - System.Number:Dragon4(long,int,int,bool,int,bool,System.Span`1[Byte],byref):int
Top method improvements (bytes):
-555 (-7.74% of base) : 1489.dasm - ProtoBuf.Meta.MetaType:ApplyDefaultBehaviourImpl(int):this
-412 (-14.33% of base) : 9944.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this
-404 (-4.33% of base) : 1296.dasm - DynamicClass:Regex2_Go(System.Text.RegularExpressions.RegexRunner)
-264 (-2.84% of base) : 17181.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort
-240 (-5.73% of base) : 17239.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort
-238 (-36.73% of base) : 5870.dasm - System.Text.RegularExpressions.RegexCharClass:<MayOverlap>g__KnownDistinctSets|72_0(System.String,System.String):bool
-234 (-13.59% of base) : 3196.dasm - NamespaceManager:AddNamespace(System.String,System.String,System.Xml.XmlDictionaryString):this
-217 (-9.99% of base) : 21157.dasm - DynamicClass:ReadMyEventsListerItemTaskFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object
-208 (-36.56% of base) : 6916.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:IsConcurrentOrObservableCollection(System.Type):bool
-202 (-19.42% of base) : 170.dasm - System.IO.StreamReader:DetectEncoding():this
-200 (-14.53% of base) : 5763.dasm - System.Text.Json.Reflection.ReflectionExtensions:IsImmutableEnumerableType(System.Type,bool):bool
-185 (-20.93% of base) : 20677.dasm - System.Xml.Serialization.AccessorMapping:ElementsMatch(System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.ElementAccessor[]):bool
-181 (-11.94% of base) : 22193.dasm - DynamicClass:ReadKeyValueOfintstringFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object
-181 (-8.86% of base) : 14469.dasm - DynamicClass:ReadLoginViewModelFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object
-170 (-5.71% of base) : 293.dasm - MemberInfoCache`1[__Canon][System.__Canon]:PopulateMethods(Filter):System.Reflection.RuntimeMethodInfo[]:this
-169 (-19.38% of base) : 7295.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):bool
-168 (-36.68% of base) : 8221.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:CheckPropertyName(Newtonsoft.Json.JsonReader,System.String):bool:this
-160 (-2.98% of base) : 15409.dasm - DynamicClass:Regex4_Go(System.Text.RegularExpressions.RegexRunner)
-160 (-4.13% of base) : 18080.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:ComputeMethodKind():int:this
-159 (-12.72% of base) : 11537.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteEndAttribute():this
Top method regressions (percentages):
6 ( 2.30% of base) : 1397.dasm - System.Text.ASCIIUtility:WidenAsciiToUtf16_Intrinsified(long,long,long):long
5 ( 2.07% of base) : 18259.dasm - Microsoft.CodeAnalysis.ConcurrentCache`2[BinderCacheKey,__Canon][Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderCacheKey,System.__Canon]:TryAdd(BinderCacheKey,System.__Canon):bool:this
3 ( 0.66% of base) : 4245.dasm - System.Diagnostics.ActivityCreationOptions`1[ActivityContext][System.Diagnostics.ActivityContext]:.ctor(System.Diagnostics.ActivitySource,System.String,System.Diagnostics.ActivityContext,int,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[ActivityLink],int):this
6 ( 0.43% of base) : 26161.dasm - System.Diagnostics.Tracing.EventSource:DecodeObjects(System.Object[],System.Type[],long)
5 ( 0.42% of base) : 4252.dasm - System.Diagnostics.Activity:Create(System.Diagnostics.ActivitySource,System.String,int,System.String,System.Diagnostics.ActivityContext,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[ActivityLink],System.DateTimeOffset,System.Diagnostics.ActivityTagsCollection,int,bool,int):System.Diagnostics.Activity
1 ( 0.04% of base) : 722.dasm - System.Number:Dragon4(long,int,int,bool,int,bool,System.Span`1[Byte],byref):int
Top method improvements (percentages):
-72 (-58.54% of base) : 3925.dasm - System.String:Equals(System.String):bool:this
-67 (-56.30% of base) : 228.dasm - System.String:Equals(System.String,System.String):bool
-72 (-49.66% of base) : 812.dasm - System.String:Equals(System.Object):bool:this
-51 (-43.97% of base) : 4232.dasm - <>c:<.cctor>b__6_0(System.Diagnostics.ActivitySource):bool:this
-58 (-41.43% of base) : 3306.dasm - XmlNode:IsNamespaceUri(System.Xml.XmlDictionaryString):bool:this
-79 (-37.80% of base) : 11552.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:TrySetWritingNameWithMapping(System.String,System.String):bool:this
-238 (-36.73% of base) : 5870.dasm - System.Text.RegularExpressions.RegexCharClass:<MayOverlap>g__KnownDistinctSets|72_0(System.String,System.String):bool
-168 (-36.68% of base) : 8221.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:CheckPropertyName(Newtonsoft.Json.JsonReader,System.String):bool:this
-208 (-36.56% of base) : 6916.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:IsConcurrentOrObservableCollection(System.Type):bool
-137 (-35.49% of base) : 11416.dasm - System.Globalization.DateTimeFormatInfoScanner:EqualStringArrays(System.String[],System.String[]):bool
-42 (-33.60% of base) : 7266.dasm - System.Xml.Serialization.CodeGenerator:IsNullableGenericType(System.Type):bool
-89 (-33.21% of base) : 6915.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:ShouldSkipSerializing(System.Type):bool
-42 (-32.81% of base) : 6131.dasm - <>c:<.cctor>b__6_0(System.Reflection.MethodInfo):bool:this
-90 (-31.80% of base) : 211.dasm - System.Globalization.CultureData:get_CultureName():System.String:this
-48 (-31.58% of base) : 6831.dasm - Newtonsoft.Json.Converters.RegexConverter:CanConvert(System.Type):bool:this
-45 (-31.47% of base) : 17344.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsVar(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):bool
-70 (-30.97% of base) : 8533.dasm - System.Runtime.Serialization.DataContract:IsBuiltInNamespace(System.String):bool
-20 (-30.77% of base) : 20454.dasm - IncrementalBinder:TryGetBoundNodeFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundNode:this
-66 (-29.60% of base) : 10453.dasm - System.LocalAppContextSwitches:GetSwitchDefaultValue(System.String):bool
-66 (-29.60% of base) : 93.dasm - System.LocalAppContextSwitches:GetSwitchDefaultValue(System.String):bool
1032 total methods with Code Size differences (1026 improved, 6 regressed), 42 unchanged.

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


Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 124162882 (overridden on cmd)
Total bytes of diff: 124110497 (overridden on cmd)
Total bytes of delta: -52385 (-0.04 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
84 : 165493.dasm (8.00% of base)
8 : 165552.dasm (3.08% of base)
6 : 237697.dasm (17.14% of base)
Top file improvements (bytes):
-800 : 247650.dasm (-13.83% of base)
-800 : 247652.dasm (-13.81% of base)
-800 : 247660.dasm (-13.88% of base)
-800 : 247662.dasm (-13.88% of base)
-532 : 244134.dasm (-28.27% of base)
-486 : 237513.dasm (-9.83% of base)
-482 : 198211.dasm (-9.60% of base)
-367 : 244096.dasm (-16.01% of base)
-367 : 244097.dasm (-16.01% of base)
-367 : 244098.dasm (-16.01% of base)
-367 : 244100.dasm (-16.01% of base)
-367 : 244101.dasm (-16.01% of base)
-367 : 244102.dasm (-16.01% of base)
-367 : 244083.dasm (-16.01% of base)
-367 : 244084.dasm (-16.01% of base)
-367 : 244085.dasm (-16.01% of base)
-359 : 86565.dasm (-18.79% of base)
-326 : 232990.dasm (-22.51% of base)
-321 : 238062.dasm (-24.65% of base)
-317 : 238061.dasm (-23.60% of base)
944 total files with Code Size differences (941 improved, 3 regressed), 62 unchanged.
Top method regressions (bytes):
84 ( 8.00% of base) : 165493.dasm - NativeVarargTest.VarArg:TestPassingManyFloatsManaged(System.Single[]):bool
8 ( 3.08% of base) : 165552.dasm - NativeVarargTest.VarArg:TestPassingFloatsAndDoublesManaged(System.Single[],System.Double[]):bool
6 (17.14% of base) : 237697.dasm - InlineBool.Program:Id74(bool):bool
Top method improvements (bytes):
-800 (-13.83% of base) : 247650.dasm - _mul:main(System.String[]):int
-800 (-13.81% of base) : 247652.dasm - _mul:main(System.String[]):int
-800 (-13.88% of base) : 247660.dasm - _sub:main(System.String[]):int
-800 (-13.88% of base) : 247662.dasm - _sub:main(System.String[]):int
-532 (-28.27% of base) : 244134.dasm - TestClass:LoadTypeInternal(System.String):System.Type
-486 (-9.83% of base) : 237513.dasm - Test:bar(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String):int
-482 (-9.60% of base) : 198211.dasm - TailcallVerify.Program:Run(System.String):int
-367 (-16.01% of base) : 244098.dasm - Test:TestGenInterface_GenType()
-367 (-16.01% of base) : 244102.dasm - Test:TestGenInterface_GenType()
-367 (-16.01% of base) : 244085.dasm - Test:TestGenInterface_GenType()
-367 (-16.01% of base) : 244097.dasm - Test:TestGenInterface_NonGenType()
-367 (-16.01% of base) : 244101.dasm - Test:TestGenInterface_NonGenType()
-367 (-16.01% of base) : 244084.dasm - Test:TestGenInterface_NonGenType()
-367 (-16.01% of base) : 244096.dasm - Test:TestNonGenInterface_GenType()
-367 (-16.01% of base) : 244100.dasm - Test:TestNonGenInterface_GenType()
-367 (-16.01% of base) : 244083.dasm - Test:TestNonGenInterface_GenType()
-359 (-18.79% of base) : 86565.dasm - Test:Main():int
-326 (-22.51% of base) : 232990.dasm - GC_Microbenchmarks.GCMicroBench:ParseArgs(System.String[]):bool:this
-321 (-24.65% of base) : 238062.dasm - Test2:TestDiffObjRef():bool
-317 (-23.60% of base) : 238061.dasm - Test2:TestSameObjRef():bool
Top method regressions (percentages):
6 (17.14% of base) : 237697.dasm - InlineBool.Program:Id74(bool):bool
84 ( 8.00% of base) : 165493.dasm - NativeVarargTest.VarArg:TestPassingManyFloatsManaged(System.Single[]):bool
8 ( 3.08% of base) : 165552.dasm - NativeVarargTest.VarArg:TestPassingFloatsAndDoublesManaged(System.Single[],System.Double[]):bool
Top method improvements (percentages):
-51 (-39.84% of base) : 190621.dasm - decimaldiv:i_f(System.String):int
-51 (-39.84% of base) : 190623.dasm - decimaldiv:l_f(System.String):long
-51 (-39.84% of base) : 190622.dasm - decimaldiv:ui_f(System.String):int
-51 (-39.84% of base) : 190624.dasm - decimaldiv:ul_f(System.String):long
-51 (-39.84% of base) : 190696.dasm - decimalrem:i_f(System.String):int
-51 (-39.84% of base) : 190698.dasm - decimalrem:l_f(System.String):long
-51 (-39.84% of base) : 190697.dasm - decimalrem:ui_f(System.String):int
-51 (-39.84% of base) : 190699.dasm - decimalrem:ul_f(System.String):long
-51 (-39.84% of base) : 217484.dasm - i4div:i_f(System.String):int
-51 (-39.84% of base) : 217486.dasm - i4div:l_f(System.String):long
-51 (-39.84% of base) : 217485.dasm - i4div:ui_f(System.String):int
-51 (-39.84% of base) : 217487.dasm - i4div:ul_f(System.String):long
-51 (-39.84% of base) : 217607.dasm - i4rem:i_f(System.String):int
-51 (-39.84% of base) : 217609.dasm - i4rem:l_f(System.String):long
-51 (-39.84% of base) : 217608.dasm - i4rem:ui_f(System.String):int
-51 (-39.84% of base) : 217610.dasm - i4rem:ul_f(System.String):long
-51 (-39.84% of base) : 217504.dasm - i8div:i_f(System.String):int
-51 (-39.84% of base) : 217506.dasm - i8div:l_f(System.String):long
-51 (-39.84% of base) : 217505.dasm - i8div:ui_f(System.String):int
-51 (-39.84% of base) : 217507.dasm - i8div:ul_f(System.String):long
944 total methods with Code Size differences (941 improved, 3 regressed), 62 unchanged.

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


Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 34283537 (overridden on cmd)
Total bytes of diff: 34263305 (overridden on cmd)
Total bytes of delta: -20232 (-0.06 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
44 : 125627.dasm (3.84% of base)
44 : 125791.dasm (3.84% of base)
44 : 126022.dasm (3.84% of base)
43 : 105822.dasm (3.64% of base)
41 : 105797.dasm (3.42% of base)
38 : 125801.dasm (3.71% of base)
34 : 126035.dasm (3.26% of base)
34 : 126492.dasm (3.26% of base)
28 : 125737.dasm (2.81% of base)
28 : 125871.dasm (2.85% of base)
25 : 61418.dasm (2.72% of base)
11 : 122236.dasm (1.11% of base)
10 : 126249.dasm (0.76% of base)
9 : 107010.dasm (0.74% of base)
8 : 88135.dasm (3.77% of base)
7 : 105714.dasm (0.47% of base)
5 : 103079.dasm (0.60% of base)
4 : 105745.dasm (0.57% of base)
4 : 21876.dasm (0.80% of base)
4 : 91697.dasm (1.08% of base)
Top file improvements (bytes):
-170 : 108311.dasm (-18.10% of base)
-136 : 54443.dasm (-7.09% of base)
-83 : 124084.dasm (-59.71% of base)
-80 : 109032.dasm (-1.74% of base)
-74 : 108288.dasm (-1.77% of base)
-68 : 124082.dasm (-54.40% of base)
-66 : 115290.dasm (-3.94% of base)
-64 : 23811.dasm (-2.05% of base)
-64 : 166087.dasm (-12.88% of base)
-64 : 22700.dasm (-2.15% of base)
-63 : 61937.dasm (-6.92% of base)
-63 : 121046.dasm (-5.22% of base)
-60 : 93293.dasm (-11.07% of base)
-60 : 138210.dasm (-1.48% of base)
-57 : 36895.dasm (-1.92% of base)
-56 : 196566.dasm (-5.53% of base)
-55 : 196564.dasm (-6.31% of base)
-55 : 124085.dasm (-37.16% of base)
-55 : 115280.dasm (-3.92% of base)
-54 : 115285.dasm (-3.08% of base)
1957 total files with Code Size differences (1922 improved, 35 regressed), 156 unchanged.
Top method regressions (bytes):
44 ( 3.84% of base) : 125627.dasm - System.Collections.Generic.Dictionary`2:TryInsert(System.__Canon,bool,ubyte):bool:this
44 ( 3.84% of base) : 126022.dasm - System.Collections.Generic.Dictionary`2:TryInsert(System.__Canon,int,ubyte):bool:this
44 ( 3.84% of base) : 125791.dasm - System.Collections.Generic.Dictionary`2:TryInsert(System.__Canon,long,ubyte):bool:this
43 ( 3.64% of base) : 105822.dasm - System.Collections.Generic.Dictionary`2:TryInsert(System.__Canon,System.__Canon,ubyte):bool:this
41 ( 3.42% of base) : 105797.dasm - CollectionsMarshalHelper:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.__Canon, System.__Canon],System.__Canon,byref):byref
38 ( 3.71% of base) : 125801.dasm - System.Collections.Generic.Dictionary`2:TryInsert(int,System.__Canon,ubyte):bool:this
34 ( 3.26% of base) : 126035.dasm - System.Collections.Generic.Dictionary`2:TryInsert(long,System.__Canon,ubyte):bool:this
34 ( 3.26% of base) : 126492.dasm - System.Collections.Generic.Dictionary`2:TryInsert(long,System.__Canon,ubyte):bool:this
28 ( 2.85% of base) : 125871.dasm - System.Collections.Generic.Dictionary`2:TryInsert(int,bool,ubyte):bool:this
28 ( 2.81% of base) : 125737.dasm - System.Collections.Generic.Dictionary`2:TryInsert(long,ushort,ubyte):bool:this
25 ( 2.72% of base) : 61418.dasm - ObjectPrinter:GenericToString(Microsoft.FSharp.Core.PrintfImpl+FormatSpecifier):Microsoft.FSharp.Core.PrintfImpl+ValueConverter
11 ( 1.11% of base) : 122236.dasm - System.DateTimeFormat:TryFormatR(System.DateTime,System.TimeSpan,System.Span`1[System.Char],byref):bool
10 ( 0.76% of base) : 126249.dasm - System.Collections.Generic.Dictionary`2:TryInsert(System.__Canon,System.Resources.ResourceLocator,ubyte):bool:this
9 ( 0.74% of base) : 107010.dasm - System.Diagnostics.Tracing.EventSource:DecodeObjects(System.Object[],System.Type[],long)
8 ( 3.77% of base) : 88135.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceModuleSymbol:AtomicSetFlagAndRaiseSymbolDeclaredEvent(byref,int,int,Microsoft.CodeAnalysis.VisualBasic.Symbol):bool:this
7 ( 0.47% of base) : 105714.dasm - System.Collections.Generic.HashSet`1:AddIfNotPresent(System.__Canon,byref):bool:this
5 ( 0.60% of base) : 103079.dasm - System.Data.DataTable:InsertRow(System.Data.DataRow,long,int,bool):this
4 ( 0.80% of base) : 21876.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindGlobalStatement(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax,Microsoft.CodeAnalysis.DiagnosticBag,bool):Microsoft.CodeAnalysis.CSharp.BoundInitializer
4 ( 1.08% of base) : 91697.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindGlobalStatement(Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax,Microsoft.CodeAnalysis.DiagnosticBag,bool):Microsoft.CodeAnalysis.VisualBasic.BoundInitializer:this
4 ( 0.57% of base) : 105745.dasm - System.Collections.Generic.HashSet`1:FindItemIndex(System.__Canon):int:this
Top method improvements (bytes):
-170 (-18.10% of base) : 108311.dasm - System.IO.StreamReader:DetectEncoding():this
-136 (-7.09% of base) : 54443.dasm - Microsoft.Diagnostics.Tracing.StackSources.LinuxPerfScriptEventParser:ReadScheduleSwitch(Microsoft.Diagnostics.Tracing.Utilities.FastStream):Microsoft.Diagnostics.Tracing.StackSources.ScheduleSwitch:this
-83 (-59.71% of base) : 124084.dasm - System.String:Equals(System.String):bool:this
-80 (-1.74% of base) : 109032.dasm - <WriteToUnderlyingStreamAsync>d__60:MoveNext():this
-74 (-1.77% of base) : 108288.dasm - <ReadAsyncInternal>d__68:MoveNext():this
-68 (-54.40% of base) : 124082.dasm - System.String:Equals(System.String,System.String):bool
-66 (-3.94% of base) : 115290.dasm - System.Threading.ReaderWriterLockSlim:TryEnterReadLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):bool:this
-64 (-12.88% of base) : 166087.dasm - System.Data.Common.DBConnectionString:Intersect(System.Data.Common.DBConnectionString):System.Data.Common.DBConnectionString:this
-64 (-2.15% of base) : 22700.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexSet`1:CreateMulti(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]],int):System.Text.RegularExpressions.Symbolic.SymbolicRegexSet`1[System.__Canon]
-64 (-2.05% of base) : 23811.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexSet`1:CreateMulti(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.UInt64],System.Collections.Generic.IEnumerable`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.UInt64]],int):System.Text.RegularExpressions.Symbolic.SymbolicRegexSet`1[System.UInt64]
-63 (-5.22% of base) : 121046.dasm - Grisu3:TryDigitGenShortest(byref,byref,byref,System.Span`1[System.Byte],byref,byref):bool
-63 (-6.92% of base) : 61937.dasm - Microsoft.FSharp.Quotations.PatternsModule:u_ModuleDefn$cont@1552(Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[System.String, System.Int32]],System.Type,System.String,Microsoft.FSharp.Core.Unit):Microsoft.FSharp.Quotations.PatternsModule+ModuleDefinitionBindingResult`2[Microsoft.FSharp.Quotations.ExprConstInfo, Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[System.Type], Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[System.Type], Microsoft.FSharp.Quotations.ExprConstInfo]]]
-60 (-11.07% of base) : 93293.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundForToStatement:.ctor(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,bool,Microsoft.CodeAnalysis.VisualBasic.BoundForToUserDefinedOperators,Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.VisualBasic.Symbols.LabelSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.LabelSymbol,bool):this
-60 (-1.48% of base) : 138210.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:VisitLoop(System.Xml.Xsl.Qil.QilLoop):System.Xml.Xsl.Qil.QilNode:this
-57 (-1.92% of base) : 36895.dasm - <NextEvent>d__30:MoveNext():bool:this
-56 (-5.53% of base) : 196566.dasm - System.ComponentModel.Composition.Hosting.ImportEngine:TrySatisfyImportsStateMachine(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager,System.ComponentModel.Composition.Primitives.ComposablePart):System.ComponentModel.Composition.CompositionResult:this
-55 (-6.31% of base) : 196564.dasm - System.ComponentModel.Composition.Hosting.ImportEngine:TrySatisfyImportSubset(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager,System.Collections.Generic.IEnumerable`1[System.ComponentModel.Composition.Primitives.ImportDefinition],System.ComponentModel.Composition.Hosting.AtomicComposition):System.ComponentModel.Composition.CompositionResult:this
-55 (-37.16% of base) : 124085.dasm - System.String:Equals(System.Object):bool:this
-55 (-3.92% of base) : 115280.dasm - System.Threading.ReaderWriterLockSlim:TryEnterUpgradeableReadLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):bool:this
-54 (-3.08% of base) : 115285.dasm - System.Threading.ReaderWriterLockSlim:TryEnterWriteLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):bool:this
Top method regressions (percentages):
44 ( 3.84% of base) : 125627.dasm - System.Collections.Generic.Dictionary`2:TryInsert(System.__Canon,bool,ubyte):bool:this
44 ( 3.84% of base) : 126022.dasm - System.Collections.Generic.Dictionary`2:TryInsert(System.__Canon,int,ubyte):bool:this
44 ( 3.84% of base) : 125791.dasm - System.Collections.Generic.Dictionary`2:TryInsert(System.__Canon,long,ubyte):bool:this
8 ( 3.77% of base) : 88135.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceModuleSymbol:AtomicSetFlagAndRaiseSymbolDeclaredEvent(byref,int,int,Microsoft.CodeAnalysis.VisualBasic.Symbol):bool:this
38 ( 3.71% of base) : 125801.dasm - System.Collections.Generic.Dictionary`2:TryInsert(int,System.__Canon,ubyte):bool:this
43 ( 3.64% of base) : 105822.dasm - System.Collections.Generic.Dictionary`2:TryInsert(System.__Canon,System.__Canon,ubyte):bool:this
41 ( 3.42% of base) : 105797.dasm - CollectionsMarshalHelper:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.__Canon, System.__Canon],System.__Canon,byref):byref
34 ( 3.26% of base) : 126035.dasm - System.Collections.Generic.Dictionary`2:TryInsert(long,System.__Canon,ubyte):bool:this
34 ( 3.26% of base) : 126492.dasm - System.Collections.Generic.Dictionary`2:TryInsert(long,System.__Canon,ubyte):bool:this
28 ( 2.85% of base) : 125871.dasm - System.Collections.Generic.Dictionary`2:TryInsert(int,bool,ubyte):bool:this
28 ( 2.81% of base) : 125737.dasm - System.Collections.Generic.Dictionary`2:TryInsert(long,ushort,ubyte):bool:this
25 ( 2.72% of base) : 61418.dasm - ObjectPrinter:GenericToString(Microsoft.FSharp.Core.PrintfImpl+FormatSpecifier):Microsoft.FSharp.Core.PrintfImpl+ValueConverter
2 ( 1.98% of base) : 86911.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundExpressionExtensions:ToStatement(Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement
2 ( 1.83% of base) : 106146.dasm - System.Collections.HashHelpers:FastMod(int,int,long):int
3 ( 1.51% of base) : 116722.dasm - System.Globalization.NumberFormatInfo:InitializeInvariantAndNegativeSignFlags():this
3 ( 1.44% of base) : 111568.dasm - Container:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon, System.__Canon],System.Int32[],System.Runtime.CompilerServices.ConditionalWeakTable`2+Entry[System.__Canon, System.__Canon][],int):this
2 ( 1.40% of base) : 125739.dasm - System.Collections.Generic.Dictionary`2:GetBucket(int):byref:this
2 ( 1.40% of base) : 105798.dasm - System.Collections.Generic.Dictionary`2:GetBucket(int):byref:this
2 ( 1.40% of base) : 105744.dasm - System.Collections.Generic.HashSet`1:GetBucketRef(int):byref:this
11 ( 1.11% of base) : 122236.dasm - System.DateTimeFormat:TryFormatR(System.DateTime,System.TimeSpan,System.Span`1[System.Char],byref):bool
Top method improvements (percentages):
-83 (-59.71% of base) : 124084.dasm - System.String:Equals(System.String):bool:this
-68 (-54.40% of base) : 124082.dasm - System.String:Equals(System.String,System.String):bool
-55 (-37.16% of base) : 124085.dasm - System.String:Equals(System.Object):bool:this
-8 (-26.67% of base) : 146329.dasm - System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this
-16 (-23.19% of base) : 23392.dasm - System.Text.RegularExpressions.RegexCharClass:TryAddCharClass(System.Text.RegularExpressions.RegexCharClass):bool:this
-44 (-21.57% of base) : 73522.dasm - Microsoft.CodeAnalysis.VisualBasic.LambdaUtilities:IsNonUserCodeQueryLambda(Microsoft.CodeAnalysis.SyntaxNode):bool
-11 (-20.37% of base) : 108734.dasm - System.IO.FileStream:BaseReadAsync(System.Byte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Int32]:this
-11 (-20.37% of base) : 108731.dasm - System.IO.FileStream:BaseWriteAsync(System.Byte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this
-11 (-18.97% of base) : 108423.dasm - System.IO.Stream:ReadAsync(System.Byte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Int32]:this
-11 (-18.97% of base) : 108413.dasm - System.IO.Stream:WriteAsync(System.Byte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this
-11 (-18.33% of base) : 107777.dasm - System.IO.Strategies.DerivedFileStreamStrategy:ReadAsync(System.Byte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Int32]:this
-11 (-18.33% of base) : 107770.dasm - System.IO.Strategies.DerivedFileStreamStrategy:WriteAsync(System.Byte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this
-12 (-18.18% of base) : 121081.dasm - BigInteger:GetBlock(int):int:this
-8 (-18.18% of base) : 115504.dasm - System.Threading.CancellationToken:ThrowIfCancellationRequested():this
-170 (-18.10% of base) : 108311.dasm - System.IO.StreamReader:DetectEncoding():this
-11 (-18.03% of base) : 35951.dasm - System.Data.OleDb.OleDbParameter:get_ScaleInternal():ubyte:this
-8 (-16.00% of base) : 192287.dasm - Node:get_Is4Node():bool:this
-11 (-15.49% of base) : 165572.dasm - System.Data.Odbc.OdbcParameter:get_ScaleInternal():ubyte:this
-11 (-15.07% of base) : 136182.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:IsSequence(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[]):bool:this
-11 (-15.07% of base) : 136093.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:IsSequence(System.Xml.Serialization.XmlSerializationReaderILGen+Member[]):bool:this
1957 total methods with Code Size differences (1922 improved, 35 regressed), 156 unchanged.

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


Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 45313983 (overridden on cmd)
Total bytes of diff: 45123590 (overridden on cmd)
Total bytes of delta: -190393 (-0.42 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
30 : 133830.dasm (0.38% of base)
25 : 6765.dasm (2.86% of base)
9 : 29361.dasm (0.60% of base)
8 : 150863.dasm (0.47% of base)
8 : 53236.dasm (0.22% of base)
8 : 54058.dasm (3.27% of base)
6 : 175008.dasm (0.39% of base)
5 : 110357.dasm (0.61% of base)
5 : 186670.dasm (0.42% of base)
4 : 68590.dasm (0.36% of base)
4 : 49656.dasm (0.40% of base)
4 : 49676.dasm (2.14% of base)
4 : 49677.dasm (2.09% of base)
4 : 49689.dasm (0.84% of base)
4 : 49698.dasm (2.52% of base)
4 : 23828.dasm (0.48% of base)
4 : 143746.dasm (0.82% of base)
4 : 50247.dasm (1.00% of base)
3 : 218498.dasm (0.53% of base)
3 : 218631.dasm (0.53% of base)
Top file improvements (bytes):
-932 : 149489.dasm (-17.31% of base)
-781 : 149490.dasm (-25.01% of base)
-698 : 184164.dasm (-32.45% of base)
-698 : 186198.dasm (-32.45% of base)
-647 : 108774.dasm (-30.97% of base)
-629 : 140788.dasm (-10.54% of base)
-572 : 29687.dasm (-6.66% of base)
-560 : 108992.dasm (-25.01% of base)
-560 : 149504.dasm (-21.87% of base)
-555 : 224695.dasm (-19.03% of base)
-554 : 35300.dasm (-29.61% of base)
-552 : 224771.dasm (-20.40% of base)
-552 : 108991.dasm (-20.84% of base)
-550 : 108781.dasm (-16.51% of base)
-544 : 139004.dasm (-28.32% of base)
-540 : 224849.dasm (-22.30% of base)
-539 : 185996.dasm (-15.65% of base)
-536 : 140567.dasm (-31.09% of base)
-535 : 224806.dasm (-11.86% of base)
-530 : 143134.dasm (-16.17% of base)
5398 total files with Code Size differences (5366 improved, 32 regressed), 215 unchanged.
Top method regressions (bytes):
30 ( 0.38% of base) : 133830.dasm - <ParseXmlDeclarationAsync>d__505:MoveNext():this
25 ( 2.86% of base) : 6765.dasm - ObjectPrinter:GenericToString(FormatSpecifier):ValueConverter
9 ( 0.60% of base) : 29361.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:TrivialLiftedComparisonOperatorOptimizations(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
8 ( 0.22% of base) : 53236.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:Create(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,int):Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol
8 ( 3.27% of base) : 54058.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceModuleSymbol:AtomicSetFlagAndRaiseSymbolDeclaredEvent(byref,int,int,Microsoft.CodeAnalysis.VisualBasic.Symbol):bool:this
8 ( 0.47% of base) : 150863.dasm - System.Text.Json.ThrowHelper:GetResourceString(byref,int,ubyte,System.String):System.String
6 ( 0.39% of base) : 175008.dasm - System.Collections.BitArray:CopyTo(System.Array,int):this
5 ( 0.61% of base) : 110357.dasm - System.Data.DataTable:InsertRow(System.Data.DataRow,long,int,bool):this
5 ( 0.42% of base) : 186670.dasm - System.Diagnostics.Activity:Create(System.Diagnostics.ActivitySource,System.String,int,System.String,System.Diagnostics.ActivityContext,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[ActivityLink],System.DateTimeOffset,System.Diagnostics.ActivityTagsCollection,int,bool,int):System.Diagnostics.Activity
4 ( 0.48% of base) : 23828.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindGlobalStatement(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax,Microsoft.CodeAnalysis.DiagnosticBag,bool):Microsoft.CodeAnalysis.CSharp.BoundInitializer
4 ( 1.00% of base) : 50247.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindGlobalStatement(Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax,Microsoft.CodeAnalysis.DiagnosticBag,bool):Microsoft.CodeAnalysis.VisualBasic.BoundInitializer:this
4 ( 0.36% of base) : 68590.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyMethodConversionForLambdaOrAnonymousDelegateBasedOnParameters(TargetSignature,System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],byref):int
4 ( 2.52% of base) : 49698.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:CheckAssigned(Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,int):this
4 ( 0.84% of base) : 49689.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:CheckAssignedFromArgumentWrite(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode):this
4 ( 0.40% of base) : 49656.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:VisitAsNewLocalDeclarations(Microsoft.CodeAnalysis.VisualBasic.BoundAsNewLocalDeclarations):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this
4 ( 2.14% of base) : 49676.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:VisitFieldAccess(Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this
4 ( 2.09% of base) : 49677.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:VisitFieldAccessInReadWriteContext(Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess,int):this
4 ( 0.82% of base) : 143746.dasm - System.Xml.Serialization.XmlSchemaExporter:FindImport(System.Xml.Schema.XmlSchema,System.String):System.Xml.Schema.XmlSchemaImport:this
3 ( 0.12% of base) : 57200.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:RewriteLiftedBooleanBinaryOperator(Microsoft.CodeAnalysis.VisualBasic.BoundBinaryOperator,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,bool,bool,bool,bool):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
3 ( 0.45% of base) : 186801.dasm - System.Diagnostics.ActivityCreationOptions`1[__Canon][System.__Canon]:.ctor(System.Diagnostics.ActivitySource,System.String,System.__Canon,int,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[ActivityLink],int):this
Top method improvements (bytes):
-932 (-17.31% of base) : 149489.dasm - System.Speech.Internal.SrgsParser.XmlParser:ParseGrammar(System.Xml.XmlReader,System.Speech.Internal.SrgsParser.IGrammar):this
-781 (-25.01% of base) : 149490.dasm - System.Speech.Internal.SrgsParser.XmlParser:ParseRule(System.Speech.Internal.SrgsParser.IGrammar,System.Xml.XmlReader):System.Speech.Internal.SrgsParser.IRule:this
-698 (-32.45% of base) : 184164.dasm - System.Data.Common.DbConnectionOptions:ExpandDataDirectories(byref,byref):System.String:this
-698 (-32.45% of base) : 186198.dasm - System.Data.Common.DbConnectionOptions:ExpandDataDirectories(byref,byref):System.String:this
-647 (-30.97% of base) : 108774.dasm - System.Data.XDRSchema:FindTypeNode(System.Xml.XmlElement):System.Xml.XmlElement:this
-629 (-10.54% of base) : 140788.dasm - System.Xml.Xsl.Runtime.XmlCollation:Create(System.String,bool):System.Xml.Xsl.Runtime.XmlCollation
-572 (-6.66% of base) : 29687.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort
-560 (-25.01% of base) : 108992.dasm - System.Data.XSDSchema:HandleSimpleContentColumn(System.String,System.Data.DataTable,bool,System.Xml.XmlAttribute[],bool):this
-560 (-21.87% of base) : 149504.dasm - System.Speech.Internal.SrgsParser.XmlParser:ProcessChildNodes(System.Xml.XmlReader,System.Speech.Internal.SrgsParser.IElement,System.Speech.Internal.SrgsParser.IRule,System.String):bool:this
-555 (-19.03% of base) : 224695.dasm - System.ServiceModel.Syndication.Atom10FeedFormatter:ReadLink(System.Xml.XmlReader,System.ServiceModel.Syndication.SyndicationLink,System.Uri):this
-554 (-29.61% of base) : 35300.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DocumentationCommentXmlTokens:LookupXmlElementTag(System.String):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
-552 (-20.84% of base) : 108991.dasm - System.Data.XSDSchema:HandleSimpleTypeSimpleContentColumn(System.Xml.Schema.XmlSchemaSimpleType,System.String,System.Data.DataTable,bool,System.Xml.XmlAttribute[],bool):this
-552 (-20.40% of base) : 224771.dasm - System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter:ReadInlineCategories(System.Xml.XmlReader,System.ServiceModel.Syndication.InlineCategoriesDocument,System.Uri,System.String,int)
-550 (-16.51% of base) : 108781.dasm - System.Data.XDRSchema:HandleColumn(System.Xml.XmlElement,System.Data.DataTable):this
-544 (-28.32% of base) : 139004.dasm - System.Xml.Xsl.Xslt.QilGenerator:IsElementAvailable(System.Xml.XmlQualifiedName):bool
-540 (-22.30% of base) : 224849.dasm - System.ServiceModel.Syndication.Rss20FeedFormatter:ReadMediaEnclosure(System.Xml.XmlReader,System.Uri):System.ServiceModel.Syndication.SyndicationLink:this
-539 (-15.65% of base) : 185996.dasm - System.Data.OleDb.OleDbMetaDataFactory:PrepareCollection(System.String,System.String[],System.Data.Common.DbConnection):System.Data.DataTable:this
-536 (-31.09% of base) : 140567.dasm - System.Xml.Xsl.XPath.XPathScanner:CheckAxis():int:this
-535 (-11.86% of base) : 224806.dasm - System.ServiceModel.Syndication.DateTimeHelper:NormalizeTimeZone(System.String,byref):System.String
-530 (-16.17% of base) : 143134.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:ConvertPrimitiveToString(System.Object,System.Xml.Serialization.TypeDesc):System.String:this
Top method regressions (percentages):
8 ( 3.27% of base) : 54058.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceModuleSymbol:AtomicSetFlagAndRaiseSymbolDeclaredEvent(byref,int,int,Microsoft.CodeAnalysis.VisualBasic.Symbol):bool:this
25 ( 2.86% of base) : 6765.dasm - ObjectPrinter:GenericToString(FormatSpecifier):ValueConverter
4 ( 2.52% of base) : 49698.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:CheckAssigned(Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,int):this
4 ( 2.14% of base) : 49676.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:VisitFieldAccess(Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this
4 ( 2.09% of base) : 49677.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:VisitFieldAccessInReadWriteContext(Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess,int):this
2 ( 1.85% of base) : 55283.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundExpressionExtensions:ToStatement(Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement
4 ( 1.00% of base) : 50247.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindGlobalStatement(Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax,Microsoft.CodeAnalysis.DiagnosticBag,bool):Microsoft.CodeAnalysis.VisualBasic.BoundInitializer:this
3 ( 0.90% of base) : 186796.dasm - System.Diagnostics.ActivityCreationOptions`1[__Canon][System.__Canon]:get_TraceId():System.Diagnostics.ActivityTraceId:this
4 ( 0.84% of base) : 49689.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:CheckAssignedFromArgumentWrite(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode):this
4 ( 0.82% of base) : 143746.dasm - System.Xml.Serialization.XmlSchemaExporter:FindImport(System.Xml.Schema.XmlSchema,System.String):System.Xml.Schema.XmlSchemaImport:this
5 ( 0.61% of base) : 110357.dasm - System.Data.DataTable:InsertRow(System.Data.DataRow,long,int,bool):this
9 ( 0.60% of base) : 29361.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:TrivialLiftedComparisonOperatorOptimizations(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
3 ( 0.53% of base) : 218498.dasm - System.Security.Cryptography.DSA:VerifyData(System.Byte[],int,int,System.Byte[],System.Security.Cryptography.HashAlgorithmName,int):bool:this
3 ( 0.53% of base) : 218631.dasm - System.Security.Cryptography.ECDsa:VerifyData(System.Byte[],int,int,System.Byte[],System.Security.Cryptography.HashAlgorithmName,int):bool:this
4 ( 0.48% of base) : 23828.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindGlobalStatement(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax,Microsoft.CodeAnalysis.DiagnosticBag,bool):Microsoft.CodeAnalysis.CSharp.BoundInitializer
8 ( 0.47% of base) : 150863.dasm - System.Text.Json.ThrowHelper:GetResourceString(byref,int,ubyte,System.String):System.String
3 ( 0.45% of base) : 186801.dasm - System.Diagnostics.ActivityCreationOptions`1[__Canon][System.__Canon]:.ctor(System.Diagnostics.ActivitySource,System.String,System.__Canon,int,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[ActivityLink],int):this
5 ( 0.42% of base) : 186670.dasm - System.Diagnostics.Activity:Create(System.Diagnostics.ActivitySource,System.String,int,System.String,System.Diagnostics.ActivityContext,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[ActivityLink],System.DateTimeOffset,System.Diagnostics.ActivityTagsCollection,int,bool,int):System.Diagnostics.Activity
4 ( 0.40% of base) : 49656.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:VisitAsNewLocalDeclarations(Microsoft.CodeAnalysis.VisualBasic.BoundAsNewLocalDeclarations):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this
6 ( 0.39% of base) : 175008.dasm - System.Collections.BitArray:CopyTo(System.Array,int):this
Top method improvements (percentages):
-53 (-39.26% of base) : 108609.dasm - System.Xml.XPathNodePointer:IsNamespaceNode(int,System.String):bool:this
-40 (-37.04% of base) : 70087.dasm - Microsoft.CodeAnalysis.VisualBasic.LambdaUtilities:IsNonUserCodeQueryLambda(Microsoft.CodeAnalysis.SyntaxNode):bool
-45 (-36.89% of base) : 232399.dasm - <>c:<CreateLibrary>b__20_1(RuntimeTargetEntryStub):bool:this
-45 (-36.89% of base) : 232402.dasm - <>c:<CreateLibrary>b__20_4(RuntimeTargetEntryStub):bool:this
-45 (-36.89% of base) : 161591.dasm - <>c:<CreateLibrary>b__25_1(RuntimeTargetEntryStub):bool:this
-45 (-36.89% of base) : 161594.dasm - <>c:<CreateLibrary>b__25_4(RuntimeTargetEntryStub):bool:this
-45 (-36.59% of base) : 82429.dasm - <>c:<WritePeToStream>b__15_1(Microsoft.Cci.SectionHeader):bool:this
-45 (-36.59% of base) : 82430.dasm - <>c:<WritePeToStream>b__15_2(Microsoft.Cci.SectionHeader):bool:this
-45 (-36.59% of base) : 206652.dasm - System.Net.Mime.ContentDisposition:get_Inline():bool:this
-50 (-35.71% of base) : 129894.dasm - MS.Internal.Xml.Cache.XPathNode:get_IsXmlNamespaceNode():bool:this
-92 (-35.38% of base) : 186587.dasm - <>c__DisplayClass7_0:<CreateActivityListener>b__2(System.Diagnostics.ActivitySource):bool:this
-414 (-35.38% of base) : 108835.dasm - System.Data.XmlTreeGen:FindTypeNode(System.Xml.XmlElement,System.String):System.Xml.XmlElement:this
-50 (-34.48% of base) : 128555.dasm - XmlNode:IsNamespaceUri(System.Xml.XmlDictionaryString):bool:this
-141 (-34.39% of base) : 215367.dasm - System.Reflection.Runtime.BindingFlagSupport.EventPolicies:IsSuppressedByMoreDerivedMember(System.Reflection.EventInfo,System.Reflection.EventInfo[],int,int):bool:this
-176 (-34.38% of base) : 136891.dasm - System.Xml.Schema.SchemaEntity:IsPredefinedEntity(System.String):bool
-267 (-34.10% of base) : 155188.dasm - System.Text.RegularExpressions.Symbolic.Unicode.IgnoreCaseTransformer:IsTurkishAlphabet(System.String):bool
-521 (-34.10% of base) : 139003.dasm - System.Xml.Xsl.Xslt.QilGenerator:IsFunctionAvailable(System.String,System.String):bool
-214 (-34.08% of base) : 154063.dasm - System.Text.RegularExpressions.RegexCharClass:<MayOverlap>g__KnownDistinctSets|72_0(System.String,System.String):bool
-209 (-33.98% of base) : 219687.dasm - System.Security.Cryptography.CngKey:EcdhCurveNameToAlgorithm(System.String):System.Security.Cryptography.CngAlgorithm
-209 (-33.98% of base) : 219686.dasm - System.Security.Cryptography.CngKey:EcdsaCurveNameToAlgorithm(System.String):System.Security.Cryptography.CngAlgorithm
5398 total methods with Code Size differences (5366 improved, 32 regressed), 215 unchanged.

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


Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 114243521 (overridden on cmd)
Total bytes of diff: 114063613 (overridden on cmd)
Total bytes of delta: -179908 (-0.16 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
39 : 34205.dasm (1.58% of base)
18 : 184810.dasm (0.79% of base)
18 : 64730.dasm (0.79% of base)
7 : 314077.dasm (0.53% of base)
4 : 118668.dasm (0.32% of base)
3 : 129094.dasm (0.19% of base)
3 : 127005.dasm (0.18% of base)
2 : 353138.dasm (0.57% of base)
1 : 134678.dasm (0.16% of base)
1 : 157635.dasm (0.15% of base)
1 : 128954.dasm (0.08% of base)
1 : 132217.dasm (0.75% of base)
1 : 233313.dasm (0.08% of base)
1 : 245934.dasm (0.17% of base)
1 : 245199.dasm (0.16% of base)
1 : 245200.dasm (0.17% of base)
Top file improvements (bytes):
-697 : 118306.dasm (-20.37% of base)
-572 : 260126.dasm (-8.94% of base)
-520 : 6841.dasm (-15.90% of base)
-520 : 348413.dasm (-13.11% of base)
-520 : 10420.dasm (-15.71% of base)
-520 : 345322.dasm (-12.54% of base)
-518 : 242668.dasm (-17.26% of base)
-507 : 132628.dasm (-21.46% of base)
-502 : 253384.dasm (-10.88% of base)
-499 : 345557.dasm (-7.44% of base)
-496 : 261279.dasm (-18.24% of base)
-491 : 121986.dasm (-27.93% of base)
-483 : 261291.dasm (-24.09% of base)
-483 : 261299.dasm (-12.54% of base)
-481 : 328323.dasm (-15.83% of base)
-480 : 125744.dasm (-15.24% of base)
-480 : 328325.dasm (-10.03% of base)
-480 : 181087.dasm (-22.76% of base)
-456 : 132632.dasm (-16.50% of base)
-453 : 261305.dasm (-27.08% of base)
4968 total files with Code Size differences (4952 improved, 16 regressed), 137 unchanged.
Top method regressions (bytes):
39 ( 1.58% of base) : 34205.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.method.genmethod.genclass.genclass008.genclass008.Test:MainMethod():int
18 ( 0.79% of base) : 184810.dasm - <SendResponseAsync>d__65:MoveNext():this
18 ( 0.79% of base) : 64730.dasm - <SendResponseAsync>d__65:MoveNext():this
7 ( 0.53% of base) : 314077.dasm - System.Collections.ObjectModel.Tests.IReadOnlyList_T_Test`1[Byte][System.Byte]:VerifyEnumerator(System.Collections.Generic.IReadOnlyList`1[Byte],System.Byte[]):this
4 ( 0.32% of base) : 118668.dasm - Microsoft.Build.Graph.GraphBuilder:<DetectCycles>g__VisitNode|32_0(Microsoft.Build.Graph.ProjectGraphNode,System.Collections.Generic.IDictionary`2[[Microsoft.Build.Graph.ProjectGraphNode, Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[Microsoft.Build.Graph.GraphBuilder+NodeVisitationState, Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]):System.ValueTuple`2[[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Generic.List`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
3 ( 0.18% of base) : 127005.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator:DocumentationCommentTrivia(System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxTriviaList,Microsoft.CodeAnalysis.SyntaxTrivia,System.String):Microsoft.CodeAnalysis.SyntaxNode:this
3 ( 0.19% of base) : 129094.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGeneration.VisualBasicSyntaxGenerator:DocumentationCommentTrivia(System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxTriviaList,Microsoft.CodeAnalysis.SyntaxTrivia,System.String):Microsoft.CodeAnalysis.SyntaxNode:this
2 ( 0.57% of base) : 353138.dasm - System.AssertExtensions:AtLeastOneEquals(short,short,short)
1 ( 0.16% of base) : 134678.dasm - <EnumerateObjectsOfType>d__34:MoveNext():bool:this
1 ( 0.15% of base) : 157635.dasm - BasicEventSourceTests.EventListenerListener:EventSourceCommand(System.String,int,BasicEventSourceTests.FilteringOptions):this
1 ( 0.08% of base) : 233313.dasm - FluentAssertions.Xml.XmlReaderValidator:ValidateAttributes():ValidationResult:this
1 ( 0.16% of base) : 245199.dasm - Microsoft.CodeAnalysis.Scripting.Hosting.ObjectFormatterHelpers:GetApplicableDebuggerDisplayAttribute(System.Reflection.MemberInfo):System.Diagnostics.DebuggerDisplayAttribute
1 ( 0.17% of base) : 245200.dasm - Microsoft.CodeAnalysis.Scripting.Hosting.ObjectFormatterHelpers:GetApplicableDebuggerTypeProxyAttribute(System.Reflection.TypeInfo):System.Diagnostics.DebuggerTypeProxyAttribute
1 ( 0.08% of base) : 128954.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGeneration.VisualBasicSyntaxGenerator:WithBody(Microsoft.CodeAnalysis.SyntaxNode,bool):Microsoft.CodeAnalysis.SyntaxNode:this
1 ( 0.75% of base) : 132217.dasm - Microsoft.Diagnostics.Runtime.CoreDumpReader:ReadMemory(long,long,int,byref):bool:this
1 ( 0.17% of base) : 245934.dasm - Microsoft.DotNet.ProjectModel.Resolution.LibraryManager:AddDiagnostics(System.Collections.Generic.List`1[[Microsoft.DotNet.ProjectModel.DiagnosticMessage, Microsoft.DotNet.ProjectModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]],Microsoft.DotNet.ProjectModel.LibraryDescription,System.String,int,System.String):this
Top method improvements (bytes):
-697 (-20.37% of base) : 118306.dasm - Microsoft.Build.Construction.ProjectParser:Parse():this
-572 (-8.94% of base) : 260126.dasm - NuGet.Frameworks.NuGetFramework:TryParseCommonFramework(System.String,byref):bool
-520 (-15.71% of base) : 10420.dasm - Microsoft.CodeAnalysis.Editing.SyntaxGenerator:GetOperatorKind(Microsoft.CodeAnalysis.IMethodSymbol):int
-520 (-15.90% of base) : 6841.dasm - Microsoft.CodeAnalysis.Shared.Extensions.IMethodSymbolExtensions:GetPredefinedOperator(Microsoft.CodeAnalysis.IMethodSymbol):int
-520 (-13.11% of base) : 348413.dasm - TCWriteState:InvokeMethod(System.Xml.XmlWriter,System.String):this
-520 (-12.54% of base) : 345322.dasm - TCWriteState:InvokeMethod(System.Xml.XmlWriter,System.String):this
-518 (-17.26% of base) : 242668.dasm - Microsoft.Build.Utilities.SDKManifest:ReadFileListAttributes(System.Xml.XmlAttributeCollection):this
-507 (-21.46% of base) : 132628.dasm - Microsoft.Diagnostics.Runtime.Desktop.DesktopGCHeap:GetElementType(Microsoft.Diagnostics.Runtime.Desktop.BaseDesktopHeapType,int):int:this
-502 (-10.88% of base) : 253384.dasm - Microsoft.Interop.MarshallingAttributeInfoParser:CreateInfoFromMarshalAs(Microsoft.CodeAnalysis.ITypeSymbol,Microsoft.CodeAnalysis.AttributeData,System.Collections.Immutable.ImmutableHashSet`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],byref):Microsoft.Interop.MarshallingInfo:this
-499 (-7.44% of base) : 345557.dasm - TCNamespace:TestNamespace6():this
-496 (-18.24% of base) : 261279.dasm - <>c__DisplayClass14_0:<GetPackageSpec>b__0(System.String):this
-491 (-27.93% of base) : 121986.dasm - Microsoft.Build.BackEnd.Logging.BaseConsoleLogger:ApplyParameter(System.String,System.String):bool:this
-483 (-24.09% of base) : 261291.dasm - <>c__DisplayClass20_1:<ReadDependencies>b__1(System.String):this
-483 (-12.54% of base) : 261299.dasm - <>c__DisplayClass27_0:<ReadMSBuildMetadata>b__0(System.String):this
-481 (-15.83% of base) : 328323.dasm - System.Numerics.Tests.StackCalc:DoUnaryOperatorSN(System.Numerics.BigInteger,System.String):System.Numerics.BigInteger:this
-480 (-15.24% of base) : 125744.dasm - Microsoft.CodeAnalysis.CSharp.Recommendations.CSharpRecommendationServiceRunner:IsLiftableOperator(Microsoft.CodeAnalysis.IMethodSymbol):bool
-480 (-22.76% of base) : 181087.dasm - System.Net.Http.Headers.CacheControlHeaderValue:TrySetCacheControlValues(System.Net.Http.Headers.CacheControlHeaderValue,System.Collections.Generic.List`1[[System.Net.Http.Headers.NameValueHeaderValue, System.Net.Http.Unit.Tests, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51]]):bool
-480 (-10.03% of base) : 328325.dasm - System.Numerics.Tests.StackCalc:DoBinaryOperatorSN(System.Numerics.BigInteger,System.Numerics.BigInteger,System.String,byref):System.Numerics.BigInteger:this
-456 (-16.50% of base) : 132632.dasm - Microsoft.Diagnostics.Runtime.Desktop.DesktopGCHeap:InitBasicTypes():this
-453 (-27.08% of base) : 261305.dasm - <>c__DisplayClass33_0:<ReadPackOptions>b__0(System.String):this
Top method regressions (percentages):
39 ( 1.58% of base) : 34205.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.method.genmethod.genclass.genclass008.genclass008.Test:MainMethod():int
18 ( 0.79% of base) : 184810.dasm - <SendResponseAsync>d__65:MoveNext():this
18 ( 0.79% of base) : 64730.dasm - <SendResponseAsync>d__65:MoveNext():this
1 ( 0.75% of base) : 132217.dasm - Microsoft.Diagnostics.Runtime.CoreDumpReader:ReadMemory(long,long,int,byref):bool:this
2 ( 0.57% of base) : 353138.dasm - System.AssertExtensions:AtLeastOneEquals(short,short,short)
7 ( 0.53% of base) : 314077.dasm - System.Collections.ObjectModel.Tests.IReadOnlyList_T_Test`1[Byte][System.Byte]:VerifyEnumerator(System.Collections.Generic.IReadOnlyList`1[Byte],System.Byte[]):this
4 ( 0.32% of base) : 118668.dasm - Microsoft.Build.Graph.GraphBuilder:<DetectCycles>g__VisitNode|32_0(Microsoft.Build.Graph.ProjectGraphNode,System.Collections.Generic.IDictionary`2[[Microsoft.Build.Graph.ProjectGraphNode, Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[Microsoft.Build.Graph.GraphBuilder+NodeVisitationState, Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]):System.ValueTuple`2[[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Generic.List`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
3 ( 0.19% of base) : 129094.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGeneration.VisualBasicSyntaxGenerator:DocumentationCommentTrivia(System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxTriviaList,Microsoft.CodeAnalysis.SyntaxTrivia,System.String):Microsoft.CodeAnalysis.SyntaxNode:this
3 ( 0.18% of base) : 127005.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator:DocumentationCommentTrivia(System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxTriviaList,Microsoft.CodeAnalysis.SyntaxTrivia,System.String):Microsoft.CodeAnalysis.SyntaxNode:this
1 ( 0.17% of base) : 245934.dasm - Microsoft.DotNet.ProjectModel.Resolution.LibraryManager:AddDiagnostics(System.Collections.Generic.List`1[[Microsoft.DotNet.ProjectModel.DiagnosticMessage, Microsoft.DotNet.ProjectModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]],Microsoft.DotNet.ProjectModel.LibraryDescription,System.String,int,System.String):this
1 ( 0.17% of base) : 245200.dasm - Microsoft.CodeAnalysis.Scripting.Hosting.ObjectFormatterHelpers:GetApplicableDebuggerTypeProxyAttribute(System.Reflection.TypeInfo):System.Diagnostics.DebuggerTypeProxyAttribute
1 ( 0.16% of base) : 245199.dasm - Microsoft.CodeAnalysis.Scripting.Hosting.ObjectFormatterHelpers:GetApplicableDebuggerDisplayAttribute(System.Reflection.MemberInfo):System.Diagnostics.DebuggerDisplayAttribute
1 ( 0.16% of base) : 134678.dasm - <EnumerateObjectsOfType>d__34:MoveNext():bool:this
1 ( 0.15% of base) : 157635.dasm - BasicEventSourceTests.EventListenerListener:EventSourceCommand(System.String,int,BasicEventSourceTests.FilteringOptions):this
1 ( 0.08% of base) : 128954.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGeneration.VisualBasicSyntaxGenerator:WithBody(Microsoft.CodeAnalysis.SyntaxNode,bool):Microsoft.CodeAnalysis.SyntaxNode:this
1 ( 0.08% of base) : 233313.dasm - FluentAssertions.Xml.XmlReaderValidator:ValidateAttributes():ValidationResult:this
Top method improvements (percentages):
-70 (-43.48% of base) : 39515.dasm - System.Globalization.Tests.ConformanceIdnaTestResult:IsIgnoredError(System.String):bool:this
-70 (-43.48% of base) : 39657.dasm - System.Globalization.Tests.ConformanceIdnaTestResult:IsIgnoredError(System.String):bool:this
-47 (-41.59% of base) : 206067.dasm - <>c:<TestRunPerformance>b__15_1(System.IO.FileInfo):bool:this
-47 (-41.59% of base) : 206068.dasm - <>c:<TestRunPerformance>b__15_2(System.IO.FileInfo):bool:this
-49 (-41.18% of base) : 224568.dasm - Castle.Core.Resource.AssemblyResourceFactory:Accept(Castle.Core.Resource.CustomUri):bool:this
-49 (-41.18% of base) : 224585.dasm - Castle.Core.Resource.FileResourceFactory:Accept(Castle.Core.Resource.CustomUri):bool:this
-51 (-40.80% of base) : 32756.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.property.autoproperty.genclass.genclass008.genclass008.Test:TestMethod(System.String):int
-86 (-40.76% of base) : 119804.dasm - Microsoft.Build.Execution.BuildManager:HandleResult(int,Microsoft.Build.Execution.BuildResult):this
-47 (-40.17% of base) : 117233.dasm - <>c:<TryLoadTaskBody>b__21_1(System.Xml.Linq.XAttribute):bool:this
-47 (-40.17% of base) : 117234.dasm - <>c:<TryLoadTaskBody>b__21_2(System.Xml.Linq.XAttribute):bool:this
-48 (-39.34% of base) : 251927.dasm - <>c:<AddFilterLastWins>b__7_2(System.String,System.String,int):bool:this
-51 (-39.23% of base) : 353068.dasm - CustomAttributesTestApp.TargetFrameworkNameTestApp:Main():int
-48 (-38.40% of base) : 129227.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.ExpressionSyntaxExtensions:IsAnyLiteralExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):bool
-45 (-36.89% of base) : 251848.dasm - <>c:<LogValues_With_Basic_Types>b__0_0(System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):bool:this
-45 (-36.89% of base) : 319702.dasm - <>c:<NativeResources>b__14_1(System.Reflection.PortableExecutable.SectionHeader):bool:this
-45 (-36.89% of base) : 64794.dasm - <>c:<SendResponseAsync>b__31_0(System.Net.Test.Common.HttpHeaderData):bool:this
-45 (-36.89% of base) : 300040.dasm - <>c:<ValidateRequest>b__8_0(System.Net.Test.Common.HttpHeaderData):bool:this
-45 (-36.89% of base) : 12236.dasm - Microsoft.CodeAnalysis.Classification.ClassifierHelper:IsClassifiedAsText(Microsoft.CodeAnalysis.Classification.ClassifiedSpan):bool
-45 (-36.59% of base) : 318507.dasm - <>c:<AssemblyGetReferencedAssemblies>b__21_0(System.Reflection.AssemblyName):bool:this
-45 (-36.59% of base) : 318508.dasm - <>c:<AssemblyGetReferencedAssemblies>b__21_1(System.Reflection.AssemblyName):bool:this
4968 total methods with Code Size differences (4952 improved, 16 regressed), 137 unchanged.

@AndyAyersMS

Copy link
Copy Markdown
MemberAuthor

Sample diff.

Note we could not get this before because test byte ptr [rcx+48], 2 might cause an exception.

;; before; Assembly listing for method System.IO.Strategies.OSFileStreamStrategy:Flush(bool):this; Emitting BLENDED_CODE for X64 CPU with AVX - Windows; optimized code; rsp based frame; fully interruptible; No matching PGO data; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data; Final local variable assignments;; V00 this [V00,T00] ( 5, 3.50) ref -> rcx this class-hnd single-def; V01 arg1 [V01,T01] ( 3, 3 ) bool -> rdx single-def;# V02 OutArgs [V02 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"; V03 tmp1 [V03,T03] ( 2, 1 ) bool -> rax "Inline return value spill temp"; V04 tmp2 [V04,T02] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg";; Lcl frame size = 0G_M9306_IG01: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG ;; bbWeight=1 PerfScore 0.00G_M9306_IG02: ; gcrefRegs=00000002 {rcx}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[rcx]testdl,dlje SHORT G_M9306_IG05 ;; bbWeight=1 PerfScore 1.25G_M9306_IG03: ; gcrefRegs=00000002 {rcx}, byrefRegs=00000000 {}, byref, iszmovrax, gword ptr [rcx+16] ; gcrRegs +[rax]test byte ptr [rax+16],1jne SHORT G_M9306_IG05test byte ptr [rcx+48],2 setne al ; gcrRegs -[rax]movzxrax,altesteax,eaxje SHORT G_M9306_IG05movrcx, gword ptr [rcx+16] ;; bbWeight=0.50 PerfScore 6.75G_M9306_IG04: ; , epilog, nogc, extendjmp System.IO.Strategies.FileStreamHelpers:FlushToDisk(Microsoft.Win32.SafeHandles.SafeFileHandle) ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 1.00G_M9306_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc ; gcrRegs -[rcx]ret; Total bytes of code 38, prolog size 0, PerfScore 13.30, instruction count 13, allocated bytes for code 38 (MethodHash=e8aedba5) for method System.IO.Strategies.OSFileStreamStrategy:Flush(bool):this;; after ; Assembly listing for method System.IO.Strategies.OSFileStreamStrategy:Flush(bool):this; Emitting BLENDED_CODE for X64 CPU with AVX - Windows; optimized code; rsp based frame; fully interruptible; No matching PGO data; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data; Final local variable assignments;; V00 this [V00,T00] ( 5, 3.50) ref -> rcx this class-hnd single-def; V01 arg1 [V01,T01] ( 3, 3 ) bool -> rdx single-def;# V02 OutArgs [V02 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace";* V03 tmp1 [V03,T03] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp"; V04 tmp2 [V04,T02] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg";; Lcl frame size = 0G_M9306_IG01: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG ;; bbWeight=1 PerfScore 0.00G_M9306_IG02: ; gcrefRegs=00000002 {rcx}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[rcx]testdl,dlje SHORT G_M9306_IG05 ;; bbWeight=1 PerfScore 1.25G_M9306_IG03: ; gcrefRegs=00000002 {rcx}, byrefRegs=00000000 {}, byref, iszmovrax, gword ptr [rcx+16] ; gcrRegs +[rax]test byte ptr [rax+16],1jne SHORT G_M9306_IG05test byte ptr [rcx+48],2je SHORT G_M9306_IG05movrcx, gword ptr [rcx+16] ;; bbWeight=0.50 PerfScore 6.00G_M9306_IG04: ; , epilog, nogc, extendjmp System.IO.Strategies.FileStreamHelpers:FlushToDisk(Microsoft.Win32.SafeHandles.SafeFileHandle) ; gcr arg pop 0 ;; bbWeight=0.50 PerfScore 1.00G_M9306_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc ; gcrRegs -[rax rcx]ret ;; bbWeight=0.50 PerfScore 0.50; Total bytes of code 30, prolog size 0, PerfScore 11.75, instruction count 10, allocated bytes for code 30 (MethodHash=e8aedba5) for method System.IO.Strategies.OSFileStreamStrategy:Flush(bool):this

@dotnet/jit-contrib PTAL


// Update the tree. Note we don't actually swap operands...?
//
substituteTree->SetOper(GenTree::ReverseRelop(substituteTree->OperGet()));

@jakobbotschjakobbotschNov 8, 2021

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is the comment incomplete?

Also, we can use substitudeTree->SetOper(..., ValueNumberUpdate::PRESERVE_VN); here instead. Nevermind, I misread the code.

@jakobbotschjakobbotsch left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM with one question: I notice we allow exception side effects in the JTRUE tree, is there a risk that we swap the order of side effects in the RHS of the assignment and the JTRUE?

@AndyAyersMS

Copy link
Copy Markdown
MemberAuthor

is there a risk that we swap the order of side effects in the RHS of the assignment and the JTRUE?

Good point. I need to verify that the RHS exec set "covers" the JTRUE set so any exception we would have thrown we'll still throw.

@AndyAyersMS

AndyAyersMS commented Nov 8, 2021

Copy link
Copy Markdown
MemberAuthor

Not sure exc set overing is sufficient to prove that we'll throw the same exception for the same reason, but seems like it may be close enough? Will think about this some more.

The extra check didn't lead to any new diffs.

[EDIT] -- seems like CSE would run into this problem too -- we verify two trees are value-congruent and that all uses have exception sets that are (roughly speaking) the intersection of all the def sets.

@AndyAyersMS

Copy link
Copy Markdown
MemberAuthor

Formatter failure seems like some random CI glitch.

Running: C:\Users\VSSADM~1\AppData\Local\Temp\tmp90enqfh1\jitutils\bin\jit-format.bat -a x64 -b Checked -o windows -c D:\a\1\s\src\coreclr --verbose --projects dll
Traceback (most recent call last):
File "D:\a\1\s\src\tests\Common\scripts\format.py", line 266, in <module>
return_code = main(sys.argv[1:])
File "D:\a\1\s\src\tests\Common\scripts\format.py", line 212, in main
proc = subprocess.Popen([jitformat, "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env)
File "C:\hostedtoolcache\windows\Python\3.10.0\x64\lib\subprocess.py", line 966, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\hostedtoolcache\windows\Python\3.10.0\x64\lib\subprocess.py", line 1435, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

Ditto with the arm build failure:

CSC : error CS2012: Cannot open 'D:\a\_work\1\s\artifacts\obj\DllImportGenerator\netstandard2.0-Release\Microsoft.Interop.DllImportGenerator.dll' for writing -- 'The process cannot access the file 'D:\a\_work\1\s\artifacts\obj\DllImportGenerator\netstandard2.0-Release\Microsoft.Interop.DllImportGenerator.dll' because it is being used by another process.' [D:\a\_work\1\s\src\libraries\System.Runtime.InteropServices\gen\DllImportGenerator\DllImportGenerator.csproj]

@AndyAyersMS

Copy link
Copy Markdown
MemberAuthor

Formatting is good locally, so will merge and hope for the best.

@AndyAyersMS
AndyAyersMS merged commit 0797038 into dotnet:mainNov 9, 2021
@AndyAyersMS
AndyAyersMS deleted the RedundantRelopWithSideEffect branch November 9, 2021 01:30
@EgorBo

Copy link
Copy Markdown
Member

Windows-x64 improvements: dotnet/perf-autofiling-issues#2373

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.

3 participants

@AndyAyersMS@EgorBo@jakobbotsch