Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

JIT: refactor jump threading to prepare for allowing side effects #60884

Merged
merged 3 commits into from
Oct 28, 2021

Conversation

AndyAyersMS
Copy link
Member

Update jump threading so that whenever possible it re-uses the original
block, rather than bypassing it. This lays the groundwork for a subsequent
change that will allow jump threading when the block with the threadable
jump has side effects.

Also handle the case where we have both a fall through pred and an ambiguous
pred, by treating the fall through pred as ambiguous.

Update jump threading so that whenever possible it re-uses the original
block, rather than bypassing it. This lays the groundwork for a subsequent
change that will allow jump threading when the block with the threadable
jump has side effects.

Also handle the case where we have both a fall through pred and an ambiguous
pred, by treating the fall through pred as ambiguous.
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Oct 26, 2021
@ghost
Copy link

ghost commented Oct 26, 2021

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

Issue Details

Update jump threading so that whenever possible it re-uses the original
block, rather than bypassing it. This lays the groundwork for a subsequent
change that will allow jump threading when the block with the threadable
jump has side effects.

Also handle the case where we have both a fall through pred and an ambiguous
pred, by treating the fall through pred as ambiguous.

Author: AndyAyersMS
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@AndyAyersMS
Copy link
Member Author

cc @dotnet/jit-contrib

Notes on diffs: a few cases where we do more jump threading (since we now "handle" the amb+ft case), and a few others where we stop doing a CSE as we clean up block more often and so delete a redundant expression occurrence.

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 11893704 (overridden on cmd)
Total bytes of diff: 11893744 (overridden on cmd)
Total bytes of delta: 40 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
           6 : 33392.dasm (0.53% of base)
           5 : 24973.dasm (0.97% of base)
           5 : 28606.dasm (0.72% of base)
           5 : 30464.dasm (0.97% of base)
           5 : 39722.dasm (0.74% of base)
           4 : 34044.dasm (1.97% of base)
           4 : 31378.dasm (1.47% of base)
           4 : 36249.dasm (1.97% of base)
           4 : 33619.dasm (1.48% of base)

Top file improvements (bytes):
          -2 : 30139.dasm (-0.18% of base)

10 total files with Code Size differences (1 improved, 9 regressed), 2 unchanged.

Top method regressions (bytes):
           6 ( 0.53% of base) : 33392.dasm - NpgsqlConnector:ReadParameterStatus(ReadOnlySpan`1,ReadOnlySpan`1):this
           5 ( 0.97% of base) : 24973.dasm - <<DisposeAsync>g__DisposeAsyncCore|70_0>d:MoveNext():this
           5 ( 0.72% of base) : 28606.dasm - <<DisposeAsync>g__DisposeAsyncCore|70_0>d:MoveNext():this
           5 ( 0.97% of base) : 30464.dasm - <<DisposeAsync>g__DisposeAsyncCore|70_0>d:MoveNext():this
           5 ( 0.74% of base) : 39722.dasm - <<DisposeAsync>g__DisposeAsyncCore|70_0>d:MoveNext():this
           4 ( 1.97% of base) : 34044.dasm - NpgsqlDataReader:Dispose(bool):this
           4 ( 1.47% of base) : 31378.dasm - NpgsqlDataReader:Dispose(bool):this
           4 ( 1.97% of base) : 36249.dasm - NpgsqlDataReader:Dispose(bool):this
           4 ( 1.48% of base) : 33619.dasm - NpgsqlDataReader:Dispose(bool):this

Top method improvements (bytes):
          -2 (-0.18% of base) : 30139.dasm - NpgsqlConnector:ReadParameterStatus(ReadOnlySpan`1,ReadOnlySpan`1):this

Top method regressions (percentages):
           4 ( 1.97% of base) : 34044.dasm - NpgsqlDataReader:Dispose(bool):this
           4 ( 1.97% of base) : 36249.dasm - NpgsqlDataReader:Dispose(bool):this
           4 ( 1.48% of base) : 33619.dasm - NpgsqlDataReader:Dispose(bool):this
           4 ( 1.47% of base) : 31378.dasm - NpgsqlDataReader:Dispose(bool):this
           5 ( 0.97% of base) : 30464.dasm - <<DisposeAsync>g__DisposeAsyncCore|70_0>d:MoveNext():this
           5 ( 0.97% of base) : 24973.dasm - <<DisposeAsync>g__DisposeAsyncCore|70_0>d:MoveNext():this
           5 ( 0.74% of base) : 39722.dasm - <<DisposeAsync>g__DisposeAsyncCore|70_0>d:MoveNext():this
           5 ( 0.72% of base) : 28606.dasm - <<DisposeAsync>g__DisposeAsyncCore|70_0>d:MoveNext():this
           6 ( 0.53% of base) : 33392.dasm - NpgsqlConnector:ReadParameterStatus(ReadOnlySpan`1,ReadOnlySpan`1):this

Top method improvements (percentages):
          -2 (-0.18% of base) : 30139.dasm - NpgsqlConnector:ReadParameterStatus(ReadOnlySpan`1,ReadOnlySpan`1):this

10 total methods with Code Size differences (1 improved, 9 regressed), 2 unchanged.


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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 7236062 (overridden on cmd)
Total bytes of diff: 7236093 (overridden on cmd)
Total bytes of delta: 31 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          26 : 10428.dasm (0.23% of base)
           4 : 2810.dasm (0.68% of base)
           1 : 6081.dasm (0.61% of base)
           1 : 13347.dasm (0.27% of base)
           1 : 839.dasm (0.01% of base)
           1 : 13954.dasm (0.33% of base)

Top file improvements (bytes):
          -3 : 9653.dasm (-2.91% of base)

7 total files with Code Size differences (1 improved, 6 regressed), 15 unchanged.

Top method regressions (bytes):
          26 ( 0.23% of base) : 10428.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo
           4 ( 0.68% of base) : 2810.dasm - System.Xml.Serialization.TempAssembly:LoadAssemblyByPath(System.Type,System.String):System.Reflection.Assembly
           1 ( 0.27% of base) : 13347.dasm - Microsoft.Extensions.Primitives.StringSegmentBenchmark:Equals_Object_Valid():bool:this
           1 ( 0.33% of base) : 13954.dasm - Microsoft.Extensions.Primitives.StringSegmentBenchmark:Equals_Valid():bool:this
           1 ( 0.01% of base) : 839.dasm - System.Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[Char],System.Globalization.NumberFormatInfo)
           1 ( 0.61% of base) : 6081.dasm - System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this

Top method improvements (bytes):
          -3 (-2.91% of base) : 9653.dasm - HttpContentReadStream:Dispose(bool):this

Top method regressions (percentages):
           4 ( 0.68% of base) : 2810.dasm - System.Xml.Serialization.TempAssembly:LoadAssemblyByPath(System.Type,System.String):System.Reflection.Assembly
           1 ( 0.61% of base) : 6081.dasm - System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this
           1 ( 0.33% of base) : 13954.dasm - Microsoft.Extensions.Primitives.StringSegmentBenchmark:Equals_Valid():bool:this
           1 ( 0.27% of base) : 13347.dasm - Microsoft.Extensions.Primitives.StringSegmentBenchmark:Equals_Object_Valid():bool:this
          26 ( 0.23% of base) : 10428.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo
           1 ( 0.01% of base) : 839.dasm - System.Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[Char],System.Globalization.NumberFormatInfo)

Top method improvements (percentages):
          -3 (-2.91% of base) : 9653.dasm - HttpContentReadStream:Dispose(bool):this

7 total methods with Code Size differences (1 improved, 6 regressed), 15 unchanged.


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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 127268817 (overridden on cmd)
Total bytes of diff: 127268818 (overridden on cmd)
Total bytes of delta: 1 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
           4 : 233431.dasm (1.16% of base)

Top file improvements (bytes):
          -2 : 252385.dasm (-0.21% of base)
          -1 : 209669.dasm (-0.09% of base)

3 total files with Code Size differences (2 improved, 1 regressed), 5 unchanged.

Top method regressions (bytes):
           4 ( 1.16% of base) : 233431.dasm - MemCheck:ParseSizeMBArgument(System.Collections.Generic.IReadOnlyList`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):int

Top method improvements (bytes):
          -2 (-0.21% of base) : 252385.dasm - Runtime_45557.ObjectBinder:GetSnapshot():Runtime_45557.ObjectBinderSnapshot
          -1 (-0.09% of base) : 209669.dasm - Internal.TypeSystem.ExplicitLayoutValidator:SetFieldLayout(System.Collections.Generic.List`1[FieldLayoutInterval],int,int,ubyte):this

Top method regressions (percentages):
           4 ( 1.16% of base) : 233431.dasm - MemCheck:ParseSizeMBArgument(System.Collections.Generic.IReadOnlyList`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):int

Top method improvements (percentages):
          -2 (-0.21% of base) : 252385.dasm - Runtime_45557.ObjectBinder:GetSnapshot():Runtime_45557.ObjectBinderSnapshot
          -1 (-0.09% of base) : 209669.dasm - Internal.TypeSystem.ExplicitLayoutValidator:SetFieldLayout(System.Collections.Generic.List`1[FieldLayoutInterval],int,int,ubyte):this

3 total methods with Code Size differences (2 improved, 1 regressed), 5 unchanged.


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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 34150239 (overridden on cmd)
Total bytes of diff: 34150252 (overridden on cmd)
Total bytes of delta: 13 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          86 : 163120.dasm (0.73% of base)
          12 : 120954.dasm (0.29% of base)
           9 : 168302.dasm (0.16% of base)
           9 : 120892.dasm (0.20% of base)
           9 : 120988.dasm (0.29% of base)
           4 : 3389.dasm (0.52% of base)
           4 : 210471.dasm (0.37% of base)
           2 : 96556.dasm (0.16% of base)
           2 : 39791.dasm (0.22% of base)
           1 : 54233.dasm (0.01% of base)
           1 : 40603.dasm (0.05% of base)

Top file improvements (bytes):
         -28 : 144888.dasm (-1.85% of base)
         -14 : 66068.dasm (-1.79% of base)
         -13 : 66637.dasm (-0.91% of base)
         -12 : 23150.dasm (-1.27% of base)
          -8 : 205420.dasm (-0.25% of base)
          -6 : 143052.dasm (-0.13% of base)
          -6 : 98434.dasm (-1.02% of base)
          -6 : 172164.dasm (-4.51% of base)
          -6 : 172165.dasm (-4.35% of base)
          -5 : 210563.dasm (-1.24% of base)
          -3 : 155432.dasm (-2.65% of base)
          -3 : 155627.dasm (-0.77% of base)
          -3 : 168674.dasm (-7.50% of base)
          -3 : 127948.dasm (-0.30% of base)
          -2 : 138286.dasm (-1.64% of base)
          -2 : 22467.dasm (-0.16% of base)
          -2 : 66354.dasm (-0.12% of base)
          -2 : 101519.dasm (-0.33% of base)
          -2 : 193847.dasm (-0.97% of base)

30 total files with Code Size differences (19 improved, 11 regressed), 24 unchanged.

Top method regressions (bytes):
          86 ( 0.73% of base) : 163120.dasm - Microsoft.FSharp.Quotations.FSharpExpr:GetLayout(bool):Microsoft.FSharp.Text.StructuredPrintfImpl.Layout:this
          12 ( 0.29% of base) : 120954.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],System.Xml.Serialization.XmlSerializationReaderCodeGen+Member,System.String,System.String):this
           9 ( 0.16% of base) : 168302.dasm - Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo)
           9 ( 0.29% of base) : 120988.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this
           9 ( 0.20% of base) : 120892.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this
           4 ( 0.37% of base) : 210471.dasm - System.DirectoryServices.AccountManagement.SDSCache:GetContext(System.String,System.DirectoryServices.AccountManagement.NetCred,int):System.DirectoryServices.AccountManagement.PrincipalContext:this
           4 ( 0.52% of base) : 3389.dasm - System.Drawing.Graphics:GetContextInfo(byref,bool,byref):this
           2 ( 0.22% of base) : 39791.dasm - System.Diagnostics.Tracing.ManifestBuilder:TranslateToManifestConvention(System.String,System.String):System.String:this
           2 ( 0.16% of base) : 96556.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this
           1 ( 0.05% of base) : 40603.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[System.Char],System.ReadOnlySpan`1[System.Char],bool,bool):bool
           1 ( 0.01% of base) : 54233.dasm - System.Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo)

Top method improvements (bytes):
         -28 (-1.85% of base) : 144888.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindingScore(System.Reflection.ParameterInfo[],System.Int32[],System.Type[],bool,int):int:this
         -14 (-1.79% of base) : 66068.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:CheckModifiers(Microsoft.CodeAnalysis.Location,bool,Microsoft.CodeAnalysis.DiagnosticBag):this
         -13 (-0.91% of base) : 66637.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceEventSymbol:CheckModifiersAndType(Microsoft.CodeAnalysis.DiagnosticBag):this
         -12 (-1.27% of base) : 23150.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:EmitBinaryArithOperatorInstructionAndDowncast(Microsoft.CodeAnalysis.VisualBasic.BoundBinaryOperator):this
          -8 (-0.25% of base) : 205420.dasm - System.Management.ManagementClassGenerator:GeneratePropertyHelperEnums(System.Management.PropertyData,System.String,bool):bool:this
          -6 (-1.02% of base) : 98434.dasm - DigestResponse:GetNextValue(System.String,int,bool,byref):System.String:this
          -6 (-0.13% of base) : 143052.dasm - System.Data.XmlDataTreeWriter:XmlDataRowWriter(System.Data.DataRow,System.String):this
          -6 (-4.35% of base) : 172165.dasm - System.Security.AccessControl.CommonAcl:GetAccessMaskForRemoval(System.Security.AccessControl.QualifiedAce,int,System.Guid,byref):bool:this
          -6 (-4.51% of base) : 172164.dasm - System.Security.AccessControl.CommonAcl:GetInheritanceFlagsForRemoval(System.Security.AccessControl.QualifiedAce,int,System.Guid,byref):bool:this
          -5 (-1.24% of base) : 210563.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:DateTimeFromLdapConverter(System.DirectoryServices.AccountManagement.dSPropertyCollection,System.String,System.DirectoryServices.AccountManagement.Principal,System.String,bool)
          -3 (-7.50% of base) : 168674.dasm - System.Diagnostics.Eventing.Reader.EventLogWatcher:set_Enabled(bool):this
          -3 (-0.77% of base) : 155627.dasm - System.DirectoryServices.ActiveDirectory.ForestTrustRelationshipInformation:.ctor(System.DirectoryServices.ActiveDirectory.DirectoryContext,System.String,System.DirectoryServices.ActiveDirectory.DS_DOMAIN_TRUSTS,int):this
          -3 (-2.65% of base) : 155432.dasm - System.DirectoryServices.ActiveDirectory.TrustRelationshipInformation:.ctor(System.DirectoryServices.ActiveDirectory.DirectoryContext,System.String,System.DirectoryServices.ActiveDirectory.TrustObject):this
          -3 (-0.30% of base) : 127948.dasm - System.Xml.Schema.SchemaCollectionCompiler:CannonicalizeAll(System.Xml.Schema.XmlSchemaAll,bool,bool):System.Xml.Schema.XmlSchemaParticle:this
          -2 (-0.33% of base) : 101519.dasm - IncompleteStack:EmitStackForEventIfReady(Microsoft.Diagnostics.Tracing.Etlx.TraceLog):bool:this
          -2 (-0.12% of base) : 66354.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:CheckModifiers(Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.DiagnosticBag):this
          -2 (-0.16% of base) : 22467.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodCompiler:CompileMethod(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,int,byref,byref,System.Predicate`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.TypeCompilationState,Microsoft.CodeAnalysis.VisualBasic.Binder+ProcessedFieldOrPropertyInitializers,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.SynthesizedSubmissionFields,byref):this
          -2 (-1.64% of base) : 138286.dasm - System.Data.Common.SqlStringStorage:Compare(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int:this
          -2 (-0.97% of base) : 193847.dasm - System.Net.NetworkInformation.Ping:InitialiseIcmpHandle():this

Top method regressions (percentages):
          86 ( 0.73% of base) : 163120.dasm - Microsoft.FSharp.Quotations.FSharpExpr:GetLayout(bool):Microsoft.FSharp.Text.StructuredPrintfImpl.Layout:this
           4 ( 0.52% of base) : 3389.dasm - System.Drawing.Graphics:GetContextInfo(byref,bool,byref):this
           4 ( 0.37% of base) : 210471.dasm - System.DirectoryServices.AccountManagement.SDSCache:GetContext(System.String,System.DirectoryServices.AccountManagement.NetCred,int):System.DirectoryServices.AccountManagement.PrincipalContext:this
           9 ( 0.29% of base) : 120988.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this
          12 ( 0.29% of base) : 120954.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],System.Xml.Serialization.XmlSerializationReaderCodeGen+Member,System.String,System.String):this
           2 ( 0.22% of base) : 39791.dasm - System.Diagnostics.Tracing.ManifestBuilder:TranslateToManifestConvention(System.String,System.String):System.String:this
           9 ( 0.20% of base) : 120892.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this
           2 ( 0.16% of base) : 96556.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this
           9 ( 0.16% of base) : 168302.dasm - Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo)
           1 ( 0.05% of base) : 40603.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[System.Char],System.ReadOnlySpan`1[System.Char],bool,bool):bool
           1 ( 0.01% of base) : 54233.dasm - System.Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[System.Char],System.Globalization.NumberFormatInfo)

Top method improvements (percentages):
          -3 (-7.50% of base) : 168674.dasm - System.Diagnostics.Eventing.Reader.EventLogWatcher:set_Enabled(bool):this
          -6 (-4.51% of base) : 172164.dasm - System.Security.AccessControl.CommonAcl:GetInheritanceFlagsForRemoval(System.Security.AccessControl.QualifiedAce,int,System.Guid,byref):bool:this
          -6 (-4.35% of base) : 172165.dasm - System.Security.AccessControl.CommonAcl:GetAccessMaskForRemoval(System.Security.AccessControl.QualifiedAce,int,System.Guid,byref):bool:this
          -3 (-2.65% of base) : 155432.dasm - System.DirectoryServices.ActiveDirectory.TrustRelationshipInformation:.ctor(System.DirectoryServices.ActiveDirectory.DirectoryContext,System.String,System.DirectoryServices.ActiveDirectory.TrustObject):this
         -28 (-1.85% of base) : 144888.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindingScore(System.Reflection.ParameterInfo[],System.Int32[],System.Type[],bool,int):int:this
         -14 (-1.79% of base) : 66068.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:CheckModifiers(Microsoft.CodeAnalysis.Location,bool,Microsoft.CodeAnalysis.DiagnosticBag):this
          -2 (-1.64% of base) : 138286.dasm - System.Data.Common.SqlStringStorage:Compare(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int:this
         -12 (-1.27% of base) : 23150.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:EmitBinaryArithOperatorInstructionAndDowncast(Microsoft.CodeAnalysis.VisualBasic.BoundBinaryOperator):this
          -5 (-1.24% of base) : 210563.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:DateTimeFromLdapConverter(System.DirectoryServices.AccountManagement.dSPropertyCollection,System.String,System.DirectoryServices.AccountManagement.Principal,System.String,bool)
          -6 (-1.02% of base) : 98434.dasm - DigestResponse:GetNextValue(System.String,int,bool,byref):System.String:this
          -2 (-0.97% of base) : 193847.dasm - System.Net.NetworkInformation.Ping:InitialiseIcmpHandle():this
         -13 (-0.91% of base) : 66637.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceEventSymbol:CheckModifiersAndType(Microsoft.CodeAnalysis.DiagnosticBag):this
          -3 (-0.77% of base) : 155627.dasm - System.DirectoryServices.ActiveDirectory.ForestTrustRelationshipInformation:.ctor(System.DirectoryServices.ActiveDirectory.DirectoryContext,System.String,System.DirectoryServices.ActiveDirectory.DS_DOMAIN_TRUSTS,int):this
          -2 (-0.33% of base) : 101519.dasm - IncompleteStack:EmitStackForEventIfReady(Microsoft.Diagnostics.Tracing.Etlx.TraceLog):bool:this
          -3 (-0.30% of base) : 127948.dasm - System.Xml.Schema.SchemaCollectionCompiler:CannonicalizeAll(System.Xml.Schema.XmlSchemaAll,bool,bool):System.Xml.Schema.XmlSchemaParticle:this
          -8 (-0.25% of base) : 205420.dasm - System.Management.ManagementClassGenerator:GeneratePropertyHelperEnums(System.Management.PropertyData,System.String,bool):bool:this
          -2 (-0.16% of base) : 22467.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodCompiler:CompileMethod(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,int,byref,byref,System.Predicate`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.TypeCompilationState,Microsoft.CodeAnalysis.VisualBasic.Binder+ProcessedFieldOrPropertyInitializers,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.SynthesizedSubmissionFields,byref):this
          -6 (-0.13% of base) : 143052.dasm - System.Data.XmlDataTreeWriter:XmlDataRowWriter(System.Data.DataRow,System.String):this
          -2 (-0.12% of base) : 66354.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:CheckModifiers(Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.DiagnosticBag):this

30 total methods with Code Size differences (19 improved, 11 regressed), 24 unchanged.


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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 45569892 (overridden on cmd)
Total bytes of diff: 45569739 (overridden on cmd)
Total bytes of delta: -153 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          19 : 202952.dasm (1.63% of base)
           8 : 35483.dasm (0.48% of base)
           7 : 149840.dasm (0.11% of base)
           5 : 145843.dasm (0.09% of base)
           5 : 201773.dasm (1.02% of base)
           4 : 229782.dasm (0.10% of base)
           4 : 229800.dasm (0.47% of base)
           4 : 138538.dasm (0.05% of base)
           4 : 189178.dasm (0.29% of base)
           4 : 137843.dasm (0.05% of base)
           4 : 229786.dasm (0.90% of base)
           4 : 26426.dasm (0.71% of base)
           4 : 116348.dasm (0.41% of base)
           4 : 144497.dasm (0.65% of base)
           4 : 137844.dasm (0.13% of base)
           1 : 124510.dasm (0.05% of base)
           1 : 224109.dasm (0.61% of base)
           1 : 164200.dasm (0.32% of base)

Top file improvements (bytes):
         -75 : 1929.dasm (-0.54% of base)
         -13 : 57924.dasm (-0.41% of base)
         -12 : 55341.dasm (-0.24% of base)
         -12 : 202003.dasm (-0.27% of base)
         -11 : 115175.dasm (-0.45% of base)
         -10 : 23968.dasm (-4.83% of base)
         -10 : 43832.dasm (-0.62% of base)
          -9 : 144817.dasm (-0.26% of base)
          -9 : 43252.dasm (-0.32% of base)
          -8 : 50183.dasm (-0.10% of base)
          -6 : 178334.dasm (-3.28% of base)
          -5 : 178328.dasm (-0.68% of base)
          -5 : 188975.dasm (-1.08% of base)
          -5 : 196047.dasm (-0.46% of base)
          -5 : 178327.dasm (-0.44% of base)
          -5 : 50000.dasm (-0.64% of base)
          -5 : 178329.dasm (-0.44% of base)
          -4 : 123794.dasm (-0.57% of base)
          -4 : 196052.dasm (-0.37% of base)
          -3 : 123940.dasm (-2.91% of base)

49 total files with Code Size differences (31 improved, 18 regressed), 89 unchanged.

Top method regressions (bytes):
          19 ( 1.63% of base) : 202952.dasm - Helpers:GetCharSetValueFromHeader(System.String):System.String
           8 ( 0.48% of base) : 35483.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxListBuilder,bool):this
           7 ( 0.11% of base) : 149840.dasm - Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[Char],System.Globalization.NumberFormatInfo)
           5 ( 1.02% of base) : 201773.dasm - System.Management.CompatSwitches:GetSwitchValueFromRegistry():bool
           5 ( 0.09% of base) : 145843.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],Member,System.String,System.String):this
           4 ( 0.71% of base) : 26426.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetBasesBeingResolved(Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax):Roslyn.Utilities.ConsList`1[[Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
           4 ( 0.90% of base) : 229786.dasm - Microsoft.XmlSerializer.Generator.Sgen:ImportType(System.Type,System.String,System.Collections.Generic.List`1[[System.Xml.Serialization.XmlMapping, System.Private.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51]],System.Collections.Generic.List`1[[System.Type, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,System.Xml.Serialization.XmlReflectionImporter,bool):this
           4 ( 0.10% of base) : 229782.dasm - Microsoft.XmlSerializer.Generator.Sgen:Run(System.String[]):int:this
           4 ( 0.47% of base) : 229800.dasm - Microsoft.XmlSerializer.Generator.Sgen:SgenAssemblyResolver(System.Object,System.ResolveEventArgs):System.Reflection.Assembly
           4 ( 0.29% of base) : 189178.dasm - System.DirectoryServices.AccountManagement.SDSCache:GetContext(System.String,System.DirectoryServices.AccountManagement.NetCred,int):System.DirectoryServices.AccountManagement.PrincipalContext:this
           4 ( 0.41% of base) : 116348.dasm - System.Drawing.Graphics:GetContextInfo(byref,bool,byref):this
           4 ( 0.13% of base) : 137844.dasm - System.Xml.Schema.Compiler:CheckAtrributeGroupRestriction(System.Xml.Schema.XmlSchemaAttributeGroup,System.Xml.Schema.XmlSchemaAttributeGroup):this
           4 ( 0.05% of base) : 137843.dasm - System.Xml.Schema.Compiler:CompileLocalAttributes(System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaAnyAttribute,int):this
           4 ( 0.05% of base) : 138538.dasm - System.Xml.Schema.SchemaCollectionCompiler:CompileLocalAttributes(System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaAnyAttribute,int):this
           4 ( 0.65% of base) : 144497.dasm - System.Xml.Serialization.TempAssembly:LoadAssemblyByPath(System.Type,System.String):System.Reflection.Assembly
           1 ( 0.32% of base) : 164200.dasm - Microsoft.Extensions.Primitives.StringSegment:Equals(Microsoft.Extensions.Primitives.StringSegment):bool:this
           1 ( 0.05% of base) : 124510.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp2Connection(System.Net.Http.Http2Connection,bool):this
           1 ( 0.61% of base) : 224109.dasm - System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this

Top method improvements (bytes):
         -75 (-0.54% of base) : 1929.dasm - Microsoft.FSharp.Quotations.FSharpExpr:GetLayout(bool):Microsoft.FSharp.Text.StructuredPrintfImpl.Layout:this
         -13 (-0.41% of base) : 57924.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser:ParseProcDeclareStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.AttributeListSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.DeclareStatementSyntax:this
         -12 (-0.24% of base) : 55341.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:EmitBinaryArithOperatorInstructionAndDowncast(Microsoft.CodeAnalysis.VisualBasic.BoundBinaryOperator):this
         -12 (-0.27% of base) : 202003.dasm - System.Management.ManagementClassGenerator:GeneratePropertyHelperEnums(System.Management.PropertyData,System.String,bool):bool:this
         -11 (-0.45% of base) : 115175.dasm - System.Data.Common.DbConnectionStringBuilder:GetProperties(System.Collections.Hashtable):this
         -10 (-4.83% of base) : 23968.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,Microsoft.CodeAnalysis.ConstantValue):bool
         -10 (-0.62% of base) : 43832.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:CheckModifiers(Microsoft.CodeAnalysis.Location,bool,Microsoft.CodeAnalysis.DiagnosticBag):this
          -9 (-0.32% of base) : 43252.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceEventSymbol:CheckModifiersAndType(Microsoft.CodeAnalysis.DiagnosticBag):this
          -9 (-0.26% of base) : 144817.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:GenerateLiteralMembersElementInternal(System.Xml.Serialization.MemberMapping[],bool,System.Object[]):bool:this
          -8 (-0.10% of base) : 50183.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureAndProduceBoundNode(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,int,Microsoft.CodeAnalysis.ArrayBuilder`1[CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,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,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,Microsoft.CodeAnalysis.VisualBasic.Symbol,bool,Microsoft.CodeAnalysis.VisualBasic.BoundTypeExpression,Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.Location):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
          -6 (-3.28% of base) : 178334.dasm - System.ComponentModel.TypeDescriptor:set_ComNativeDescriptorHandler(System.ComponentModel.IComNativeDescriptorHandler)
          -5 (-0.64% of base) : 50000.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindForLoopBodyAndNextControlVariables(Microsoft.CodeAnalysis.VisualBasic.Syntax.ForOrForEachBlockSyntax,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):this
          -5 (-0.44% of base) : 178327.dasm - System.ComponentModel.TypeDescriptor:Refresh(System.Object,bool)
          -5 (-0.44% of base) : 178329.dasm - System.ComponentModel.TypeDescriptor:Refresh(System.Reflection.Module)
          -5 (-0.68% of base) : 178328.dasm - System.ComponentModel.TypeDescriptor:Refresh(System.Type)
          -5 (-1.08% of base) : 188975.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:DateTimeFromLdapConverter(System.DirectoryServices.AccountManagement.dSPropertyCollection,System.String,System.DirectoryServices.AccountManagement.Principal,System.String,bool)
          -5 (-0.46% of base) : 196047.dasm - System.Linq.Parallel.AsynchronousChannelMergeEnumerator`1[__Canon][System.__Canon]:MoveNextSlowPath():bool:this
          -4 (-0.57% of base) : 123794.dasm - DigestResponse:GetNextValue(System.String,int,bool,byref):System.String:this
          -4 (-0.37% of base) : 196052.dasm - System.Linq.Parallel.AsynchronousChannelMergeEnumerator`1[Byte][System.Byte]:MoveNextSlowPath():bool:this
          -3 (-2.91% of base) : 123940.dasm - HttpContentReadStream:Dispose(bool):this

Top method regressions (percentages):
          19 ( 1.63% of base) : 202952.dasm - Helpers:GetCharSetValueFromHeader(System.String):System.String
           5 ( 1.02% of base) : 201773.dasm - System.Management.CompatSwitches:GetSwitchValueFromRegistry():bool
           4 ( 0.90% of base) : 229786.dasm - Microsoft.XmlSerializer.Generator.Sgen:ImportType(System.Type,System.String,System.Collections.Generic.List`1[[System.Xml.Serialization.XmlMapping, System.Private.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51]],System.Collections.Generic.List`1[[System.Type, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,System.Xml.Serialization.XmlReflectionImporter,bool):this
           4 ( 0.71% of base) : 26426.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetBasesBeingResolved(Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax):Roslyn.Utilities.ConsList`1[[Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
           4 ( 0.65% of base) : 144497.dasm - System.Xml.Serialization.TempAssembly:LoadAssemblyByPath(System.Type,System.String):System.Reflection.Assembly
           1 ( 0.61% of base) : 224109.dasm - System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this
           8 ( 0.48% of base) : 35483.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxListBuilder,bool):this
           4 ( 0.47% of base) : 229800.dasm - Microsoft.XmlSerializer.Generator.Sgen:SgenAssemblyResolver(System.Object,System.ResolveEventArgs):System.Reflection.Assembly
           4 ( 0.41% of base) : 116348.dasm - System.Drawing.Graphics:GetContextInfo(byref,bool,byref):this
           1 ( 0.32% of base) : 164200.dasm - Microsoft.Extensions.Primitives.StringSegment:Equals(Microsoft.Extensions.Primitives.StringSegment):bool:this
           4 ( 0.29% of base) : 189178.dasm - System.DirectoryServices.AccountManagement.SDSCache:GetContext(System.String,System.DirectoryServices.AccountManagement.NetCred,int):System.DirectoryServices.AccountManagement.PrincipalContext:this
           4 ( 0.13% of base) : 137844.dasm - System.Xml.Schema.Compiler:CheckAtrributeGroupRestriction(System.Xml.Schema.XmlSchemaAttributeGroup,System.Xml.Schema.XmlSchemaAttributeGroup):this
           7 ( 0.11% of base) : 149840.dasm - Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[Char],System.Globalization.NumberFormatInfo)
           4 ( 0.10% of base) : 229782.dasm - Microsoft.XmlSerializer.Generator.Sgen:Run(System.String[]):int:this
           5 ( 0.09% of base) : 145843.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],Member,System.String,System.String):this
           4 ( 0.05% of base) : 138538.dasm - System.Xml.Schema.SchemaCollectionCompiler:CompileLocalAttributes(System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaAnyAttribute,int):this
           4 ( 0.05% of base) : 137843.dasm - System.Xml.Schema.Compiler:CompileLocalAttributes(System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaAnyAttribute,int):this
           1 ( 0.05% of base) : 124510.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp2Connection(System.Net.Http.Http2Connection,bool):this

Top method improvements (percentages):
          -3 (-10.00% of base) : 186585.dasm - System.Diagnostics.Eventing.Reader.EventLogWatcher:set_Enabled(bool):this
         -10 (-4.83% of base) : 23968.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,Microsoft.CodeAnalysis.ConstantValue):bool
          -2 (-3.51% of base) : 115847.dasm - System.Data.Common.SqlStringStorage:Compare(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int:this
          -6 (-3.28% of base) : 178334.dasm - System.ComponentModel.TypeDescriptor:set_ComNativeDescriptorHandler(System.ComponentModel.IComNativeDescriptorHandler)
          -3 (-2.91% of base) : 123940.dasm - HttpContentReadStream:Dispose(bool):this
          -3 (-2.73% of base) : 191410.dasm - System.DirectoryServices.ActiveDirectory.TrustRelationshipInformation:.ctor(System.DirectoryServices.ActiveDirectory.DirectoryContext,System.String,System.DirectoryServices.ActiveDirectory.TrustObject):this
          -5 (-1.08% of base) : 188975.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:DateTimeFromLdapConverter(System.DirectoryServices.AccountManagement.dSPropertyCollection,System.String,System.DirectoryServices.AccountManagement.Principal,System.String,bool)
          -2 (-0.81% of base) : 205989.dasm - System.Net.NetworkInformation.Ping:InitialiseIcmpHandle():this
          -3 (-0.74% of base) : 211754.dasm - System.Xml.Linq.NamespaceResolver:GetPrefixOfNamespace(System.Xml.Linq.XNamespace,bool):System.String:this
          -5 (-0.68% of base) : 178328.dasm - System.ComponentModel.TypeDescriptor:Refresh(System.Type)
          -5 (-0.64% of base) : 50000.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindForLoopBodyAndNextControlVariables(Microsoft.CodeAnalysis.VisualBasic.Syntax.ForOrForEachBlockSyntax,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):this
         -10 (-0.62% of base) : 43832.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:CheckModifiers(Microsoft.CodeAnalysis.Location,bool,Microsoft.CodeAnalysis.DiagnosticBag):this
          -3 (-0.61% of base) : 191216.dasm - System.DirectoryServices.ActiveDirectory.ForestTrustRelationshipInformation:.ctor(System.DirectoryServices.ActiveDirectory.DirectoryContext,System.String,System.DirectoryServices.ActiveDirectory.DS_DOMAIN_TRUSTS,int):this
          -4 (-0.57% of base) : 123794.dasm - DigestResponse:GetNextValue(System.String,int,bool,byref):System.String:this
         -75 (-0.54% of base) : 1929.dasm - Microsoft.FSharp.Quotations.FSharpExpr:GetLayout(bool):Microsoft.FSharp.Text.StructuredPrintfImpl.Layout:this
          -5 (-0.46% of base) : 196047.dasm - System.Linq.Parallel.AsynchronousChannelMergeEnumerator`1[__Canon][System.__Canon]:MoveNextSlowPath():bool:this
         -11 (-0.45% of base) : 115175.dasm - System.Data.Common.DbConnectionStringBuilder:GetProperties(System.Collections.Hashtable):this
          -5 (-0.44% of base) : 178327.dasm - System.ComponentModel.TypeDescriptor:Refresh(System.Object,bool)
          -5 (-0.44% of base) : 178329.dasm - System.ComponentModel.TypeDescriptor:Refresh(System.Reflection.Module)
         -13 (-0.41% of base) : 57924.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser:ParseProcDeclareStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.AttributeListSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.DeclareStatementSyntax:this

49 total methods with Code Size differences (31 improved, 18 regressed), 89 unchanged.


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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 113764434 (overridden on cmd)
Total bytes of diff: 113764292 (overridden on cmd)
Total bytes of delta: -142 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          23 : 125550.dasm (3.41% of base)
          16 : 96046.dasm (0.34% of base)
          10 : 245112.dasm (1.05% of base)
           8 : 96003.dasm (0.33% of base)
           8 : 96001.dasm (0.36% of base)
           7 : 95867.dasm (0.37% of base)
           7 : 95868.dasm (0.37% of base)
           5 : 95824.dasm (0.33% of base)
           5 : 95825.dasm (0.29% of base)
           5 : 95823.dasm (0.15% of base)
           5 : 95826.dasm (0.30% of base)
           5 : 95827.dasm (0.31% of base)
           4 : 96002.dasm (0.36% of base)
           4 : 216696.dasm (0.27% of base)
           4 : 225323.dasm (0.97% of base)
           4 : 272044.dasm (0.18% of base)
           4 : 220993.dasm (0.27% of base)
           4 : 96004.dasm (0.08% of base)
           4 : 248430.dasm (0.10% of base)
           4 : 95905.dasm (0.27% of base)

Top file improvements (bytes):
         -11 : 114526.dasm (-1.43% of base)
          -9 : 228713.dasm (-1.05% of base)
          -9 : 99215.dasm (-0.08% of base)
          -9 : 228712.dasm (-1.06% of base)
          -9 : 228716.dasm (-0.89% of base)
          -9 : 83994.dasm (-0.08% of base)
          -9 : 99347.dasm (-0.07% of base)
          -9 : 84150.dasm (-0.07% of base)
          -6 : 228964.dasm (-1.02% of base)
          -6 : 228564.dasm (-1.08% of base)
          -6 : 229043.dasm (-1.05% of base)
          -6 : 209785.dasm (-0.17% of base)
          -6 : 228565.dasm (-1.07% of base)
          -6 : 229103.dasm (-0.67% of base)
          -6 : 229117.dasm (-0.96% of base)
          -6 : 228569.dasm (-1.11% of base)
          -6 : 229006.dasm (-1.01% of base)
          -6 : 229029.dasm (-0.72% of base)
          -6 : 228566.dasm (-1.12% of base)
          -6 : 229154.dasm (-1.03% of base)

104 total files with Code Size differences (69 improved, 35 regressed), 112 unchanged.

Top method regressions (bytes):
          23 ( 3.41% of base) : 125550.dasm - Microsoft.CodeAnalysis.CSharp.Simplification.CSharpSimplificationService:Expand(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.SyntaxAnnotation,System.Func`2[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,System.Threading.CancellationToken):Microsoft.CodeAnalysis.SyntaxNode:this
          16 ( 0.34% of base) : 96046.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTrySkipPartial(System.String,ubyte)
          10 ( 1.05% of base) : 245112.dasm - Microsoft.CodeAnalysis.Scripting.Hosting.ObjectFormatterHelpers:ParseSimpleMemberName(System.String,int,int,byref,byref):System.String
           8 ( 0.33% of base) : 96003.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:InvalidJson(System.String,int,int,int)
           8 ( 0.36% of base) : 96001.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:InvalidJsonWhenPartial(System.String,int,int,int)
           7 ( 0.37% of base) : 95867.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTextEquals(System.String,System.String,bool)
           7 ( 0.37% of base) : 95868.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTextEqualsValue(System.String,System.String,bool)
           5 ( 0.15% of base) : 95823.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTextEqualsLargeMismatch()
           5 ( 0.29% of base) : 95825.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTextEqualsTooLargeToMatch(System.String)
           5 ( 0.33% of base) : 95824.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTextEqualsTooSmallToMatch(System.String)
           5 ( 0.31% of base) : 95827.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TextEqualsEscapedCharAtTheLastSegment()
           5 ( 0.30% of base) : 95826.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TextMismatchSameLength(System.String,System.String)
           4 ( 0.97% of base) : 225323.dasm - Castle.DynamicProxy.Internal.TypeUtil:SetStaticField(System.Type,System.String,int,System.Object)
           4 ( 0.23% of base) : 338104.dasm - CoreXml.Test.XLinq.ReaderDiffNSAware:Compare(System.Collections.Generic.IEnumerable`1[[System.String[], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[[System.String[], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],NSStack,int)
           4 ( 0.10% of base) : 248430.dasm - Microsoft.Extensions.DependencyModel.Tests.DependencyContextJsonWriterTests:WritesCompilationLibraries():this
           4 ( 0.18% of base) : 272044.dasm - System.Collections.Specialized.Tests.NameObjectCollectionBaseRemoveAtTests:RemoveAt():this
           4 ( 0.27% of base) : 216696.dasm - System.Data.SqlClient.SqlBulkCopy:CopyRowsAsync(int,int,System.Threading.CancellationToken,System.Threading.Tasks.TaskCompletionSource`1[[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):System.Threading.Tasks.Task:this
           4 ( 0.27% of base) : 220993.dasm - System.Data.SqlClient.SqlBulkCopy:CopyRowsAsync(int,int,System.Threading.CancellationToken,System.Threading.Tasks.TaskCompletionSource`1[[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):System.Threading.Tasks.Task:this
           4 ( 0.33% of base) : 95906.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:InvalidJsonMultiSegmentByOne(System.String,int,int,int)
           4 ( 0.27% of base) : 95905.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:InvalidJsonMultiSegmentWithEmptyFirst(System.String,int,int,int)

Top method improvements (bytes):
         -11 (-1.43% of base) : 114526.dasm - Microsoft.Build.Tasks.ReferenceTable:ResolveAssemblyNameConflict(Microsoft.Build.Tasks.AssemblyNameReference,Microsoft.Build.Tasks.AssemblyNameReference):int
          -9 (-1.05% of base) : 228713.dasm - ImTools.ImMap:UpdateEntryOrAddOrUpdateConflict(ImTools.ImMap`1[KValue`1],int,ImTools.ImMapEntry`1[KValue`1],short,System.Object,ImTools.Update`2[[System.Int16, 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]]):ImTools.ImMap`1[KValue`1]
          -9 (-0.89% of base) : 228716.dasm - ImTools.ImMap:UpdateEntryOrAddOrUpdateConflict(ImTools.ImMap`1[KValue`1],int,ImTools.ImMapEntry`1[KValue`1],System.Numerics.Vector`1[Single],System.Object,ImTools.Update`2[[System.Numerics.Vector`1[[System.Single, 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.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):ImTools.ImMap`1[KValue`1]
          -9 (-1.06% of base) : 228712.dasm - ImTools.ImMap:UpdateEntryOrAddOrUpdateConflict(ImTools.ImMap`1[KValue`1],int,ImTools.ImMapEntry`1[KValue`1],ubyte,System.Object,ImTools.Update`2[[System.Byte, 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]]):ImTools.ImMap`1[KValue`1]
          -9 (-0.08% of base) : 99215.dasm - System.Text.Json.Serialization.Tests.SimpleTestClass:Verify():this
          -9 (-0.08% of base) : 83994.dasm - System.Text.Json.Serialization.Tests.SimpleTestClass:Verify():this
          -9 (-0.07% of base) : 99347.dasm - System.Text.Json.Serialization.Tests.SimpleTestClassWithFields:Verify():this
          -9 (-0.07% of base) : 84150.dasm - System.Text.Json.Serialization.Tests.SimpleTestClassWithFields:Verify():this
          -6 (-1.02% of base) : 228964.dasm - ImTools.ImHashMap`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:AddOrKeepConflict(ImTools.ImHashMapConflicts`2[Byte,Nullable`1],int,ubyte):ImTools.ImHashMap`2[Byte,Nullable`1]:this
          -6 (-0.70% of base) : 228948.dasm - ImTools.ImHashMap`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:AddOrUpdateConflict(ImTools.ImHashMapConflicts`2[Byte,Nullable`1],int,ubyte,System.Nullable`1[Int32],ImTools.Update`2[Byte,Nullable`1],int):ImTools.ImHashMap`2[Byte,Nullable`1]:this
          -6 (-1.01% of base) : 229006.dasm - ImTools.ImHashMap`2[Int16,Nullable`1][System.Int16,System.Nullable`1[System.Int32]]:AddOrKeepConflict(ImTools.ImHashMapConflicts`2[Int16,Nullable`1],int,short):ImTools.ImHashMap`2[Int16,Nullable`1]:this
          -6 (-0.70% of base) : 228992.dasm - ImTools.ImHashMap`2[Int16,Nullable`1][System.Int16,System.Nullable`1[System.Int32]]:AddOrUpdateConflict(ImTools.ImHashMapConflicts`2[Int16,Nullable`1],int,short,System.Nullable`1[Int32],ImTools.Update`2[Int16,Nullable`1],int):ImTools.ImHashMap`2[Int16,Nullable`1]:this
          -6 (-1.05% of base) : 229043.dasm - ImTools.ImHashMap`2[Int32,Nullable`1][System.Int32,System.Nullable`1[System.Int32]]:AddOrKeepConflict(ImTools.ImHashMapConflicts`2[Int32,Nullable`1],int,int):ImTools.ImHashMap`2[Int32,Nullable`1]:this
          -6 (-0.72% of base) : 229029.dasm - ImTools.ImHashMap`2[Int32,Nullable`1][System.Int32,System.Nullable`1[System.Int32]]:AddOrUpdateConflict(ImTools.ImHashMapConflicts`2[Int32,Nullable`1],int,int,System.Nullable`1[Int32],ImTools.Update`2[Int32,Nullable`1],int):ImTools.ImHashMap`2[Int32,Nullable`1]:this
          -6 (-1.03% of base) : 229154.dasm - ImTools.ImHashMap`2[Int64,Nullable`1][System.Int64,System.Nullable`1[System.Int32]]:AddOrKeepConflict(ImTools.ImHashMapConflicts`2[Int64,Nullable`1],int,long):ImTools.ImHashMap`2[Int64,Nullable`1]:this
          -6 (-0.72% of base) : 229140.dasm - ImTools.ImHashMap`2[Int64,Nullable`1][System.Int64,System.Nullable`1[System.Int32]]:AddOrUpdateConflict(ImTools.ImHashMapConflicts`2[Int64,Nullable`1],int,long,System.Nullable`1[Int32],ImTools.Update`2[Int64,Nullable`1],int):ImTools.ImHashMap`2[Int64,Nullable`1]:this
          -6 (-0.96% of base) : 229117.dasm - ImTools.ImHashMap`2[Vector`1,Nullable`1][System.Numerics.Vector`1[System.Single],System.Nullable`1[System.Int32]]:AddOrKeepConflict(ImTools.ImHashMapConflicts`2[Vector`1,Nullable`1],int,System.Numerics.Vector`1[Single]):ImTools.ImHashMap`2[Vector`1,Nullable`1]:this
          -6 (-0.67% of base) : 229103.dasm - ImTools.ImHashMap`2[Vector`1,Nullable`1][System.Numerics.Vector`1[System.Single],System.Nullable`1[System.Int32]]:AddOrUpdateConflict(ImTools.ImHashMapConflicts`2[Vector`1,Nullable`1],int,System.Numerics.Vector`1[Single],System.Nullable`1[Int32],ImTools.Update`2[Vector`1,Nullable`1],int):ImTools.ImHashMap`2[Vector`1,Nullable`1]:this
          -6 (-1.12% of base) : 228566.dasm - ImTools.ImMap:AddOrKeepConflict(ImTools.ImMap`1[KValue`1],int,ImTools.ImMapEntry`1[KValue`1],int,System.Object):ImTools.ImMap`1[KValue`1]
          -6 (-1.11% of base) : 228569.dasm - ImTools.ImMap:AddOrKeepConflict(ImTools.ImMap`1[KValue`1],int,ImTools.ImMapEntry`1[KValue`1],long,System.Object):ImTools.ImMap`1[KValue`1]

Top method regressions (percentages):
          23 ( 3.41% of base) : 125550.dasm - Microsoft.CodeAnalysis.CSharp.Simplification.CSharpSimplificationService:Expand(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.SyntaxAnnotation,System.Func`2[[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,System.Threading.CancellationToken):Microsoft.CodeAnalysis.SyntaxNode:this
          10 ( 1.05% of base) : 245112.dasm - Microsoft.CodeAnalysis.Scripting.Hosting.ObjectFormatterHelpers:ParseSimpleMemberName(System.String,int,int,byref,byref):System.String
           4 ( 0.97% of base) : 225323.dasm - Castle.DynamicProxy.Internal.TypeUtil:SetStaticField(System.Type,System.String,int,System.Object)
           1 ( 0.61% of base) : 329769.dasm - System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this
           2 ( 0.55% of base) : 6704.dasm - Microsoft.CodeAnalysis.Shared.Utilities.StringBreaker:ScanWordRun(System.String,int,int):Microsoft.CodeAnalysis.Text.TextSpan
           7 ( 0.37% of base) : 95867.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTextEquals(System.String,System.String,bool)
           7 ( 0.37% of base) : 95868.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTextEqualsValue(System.String,System.String,bool)
           8 ( 0.36% of base) : 96001.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:InvalidJsonWhenPartial(System.String,int,int,int)
           4 ( 0.36% of base) : 96002.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:PositionInCodeUnits(System.String,int,int)
          16 ( 0.34% of base) : 96046.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTrySkipPartial(System.String,ubyte)
           2 ( 0.34% of base) : 241487.dasm - Microsoft.AspNetCore.Http.Internal.HeaderSegment:Equals(Microsoft.AspNetCore.Http.Internal.HeaderSegment):bool:this
           4 ( 0.33% of base) : 95906.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:InvalidJsonMultiSegmentByOne(System.String,int,int,int)
           8 ( 0.33% of base) : 96003.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:InvalidJson(System.String,int,int,int)
           5 ( 0.33% of base) : 95824.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTextEqualsTooSmallToMatch(System.String)
           5 ( 0.31% of base) : 95827.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TextEqualsEscapedCharAtTheLastSegment()
           5 ( 0.30% of base) : 95826.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TextMismatchSameLength(System.String,System.String)
           5 ( 0.29% of base) : 95825.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTextEqualsTooLargeToMatch(System.String)
           2 ( 0.28% of base) : 241488.dasm - Microsoft.AspNetCore.Http.Internal.HeaderSegment:Equals(System.Object):bool:this
           4 ( 0.27% of base) : 216696.dasm - System.Data.SqlClient.SqlBulkCopy:CopyRowsAsync(int,int,System.Threading.CancellationToken,System.Threading.Tasks.TaskCompletionSource`1[[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):System.Threading.Tasks.Task:this
           4 ( 0.27% of base) : 220993.dasm - System.Data.SqlClient.SqlBulkCopy:CopyRowsAsync(int,int,System.Threading.CancellationToken,System.Threading.Tasks.TaskCompletionSource`1[[System.Object, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):System.Threading.Tasks.Task:this

Top method improvements (percentages):
          -5 (-4.72% of base) : 236195.dasm - <>c__DisplayClass5_0:<AreProperty>b__0(System.Reflection.MemberInfo):bool:this
          -1 (-2.38% of base) : 260863.dasm - Stashbox.Registration.SelectionRules.ScopeNameRule:IsValidForCurrentRequest(Stashbox.Resolution.TypeInformation,Stashbox.Registration.ServiceRegistration,Stashbox.Resolution.ResolutionContext):bool:this
          -2 (-1.77% of base) : 252594.dasm - Microsoft.NETCore.Platforms.BuildTasks.RuntimeVersion:CompareTo(Microsoft.NETCore.Platforms.BuildTasks.RuntimeVersion):int:this
         -11 (-1.43% of base) : 114526.dasm - Microsoft.Build.Tasks.ReferenceTable:ResolveAssemblyNameConflict(Microsoft.Build.Tasks.AssemblyNameReference,Microsoft.Build.Tasks.AssemblyNameReference):int
          -6 (-1.12% of base) : 228566.dasm - ImTools.ImMap:AddOrKeepConflict(ImTools.ImMap`1[KValue`1],int,ImTools.ImMapEntry`1[KValue`1],int,System.Object):ImTools.ImMap`1[KValue`1]
          -6 (-1.11% of base) : 228569.dasm - ImTools.ImMap:AddOrKeepConflict(ImTools.ImMap`1[KValue`1],int,ImTools.ImMapEntry`1[KValue`1],long,System.Object):ImTools.ImMap`1[KValue`1]
          -6 (-1.08% of base) : 228564.dasm - ImTools.ImMap:AddOrKeepConflict(ImTools.ImMap`1[KValue`1],int,ImTools.ImMapEntry`1[KValue`1],ubyte,System.Object):ImTools.ImMap`1[KValue`1]
          -6 (-1.07% of base) : 228565.dasm - ImTools.ImMap:AddOrKeepConflict(ImTools.ImMap`1[KValue`1],int,ImTools.ImMapEntry`1[KValue`1],short,System.Object):ImTools.ImMap`1[KValue`1]
          -4 (-1.06% of base) : 229013.dasm - ImTools.ImHashMap`2[Int32,Nullable`1][System.Int32,System.Nullable`1[System.Int32]]:UpdateConflictToDefault(ImTools.ImHashMapConflicts`2[Int32,Nullable`1],int,int):ImTools.ImHashMap`2[Int32,Nullable`1]:this
          -9 (-1.06% of base) : 228712.dasm - ImTools.ImMap:UpdateEntryOrAddOrUpdateConflict(ImTools.ImMap`1[KValue`1],int,ImTools.ImMapEntry`1[KValue`1],ubyte,System.Object,ImTools.Update`2[[System.Byte, 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]]):ImTools.ImMap`1[KValue`1]
          -9 (-1.05% of base) : 228713.dasm - ImTools.ImMap:UpdateEntryOrAddOrUpdateConflict(ImTools.ImMap`1[KValue`1],int,ImTools.ImMapEntry`1[KValue`1],short,System.Object,ImTools.Update`2[[System.Int16, 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]]):ImTools.ImMap`1[KValue`1]
          -6 (-1.05% of base) : 229043.dasm - ImTools.ImHashMap`2[Int32,Nullable`1][System.Int32,System.Nullable`1[System.Int32]]:AddOrKeepConflict(ImTools.ImHashMapConflicts`2[Int32,Nullable`1],int,int):ImTools.ImHashMap`2[Int32,Nullable`1]:this
          -4 (-1.04% of base) : 229124.dasm - ImTools.ImHashMap`2[Int64,Nullable`1][System.Int64,System.Nullable`1[System.Int32]]:UpdateConflictToDefault(ImTools.ImHashMapConflicts`2[Int64,Nullable`1],int,long):ImTools.ImHashMap`2[Int64,Nullable`1]:this
          -6 (-1.03% of base) : 229154.dasm - ImTools.ImHashMap`2[Int64,Nullable`1][System.Int64,System.Nullable`1[System.Int32]]:AddOrKeepConflict(ImTools.ImHashMapConflicts`2[Int64,Nullable`1],int,long):ImTools.ImHashMap`2[Int64,Nullable`1]:this
          -4 (-1.03% of base) : 228905.dasm - ImTools.ImHashMap`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:UpdateConflictToDefault(ImTools.ImHashMapConflicts`2[Byte,Nullable`1],int,ubyte):ImTools.ImHashMap`2[Byte,Nullable`1]:this
          -6 (-1.02% of base) : 228964.dasm - ImTools.ImHashMap`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:AddOrKeepConflict(ImTools.ImHashMapConflicts`2[Byte,Nullable`1],int,ubyte):ImTools.ImHashMap`2[Byte,Nullable`1]:this
          -4 (-1.01% of base) : 228976.dasm - ImTools.ImHashMap`2[Int16,Nullable`1][System.Int16,System.Nullable`1[System.Int32]]:UpdateConflictToDefault(ImTools.ImHashMapConflicts`2[Int16,Nullable`1],int,short):ImTools.ImHashMap`2[Int16,Nullable`1]:this
          -6 (-1.01% of base) : 229006.dasm - ImTools.ImHashMap`2[Int16,Nullable`1][System.Int16,System.Nullable`1[System.Int32]]:AddOrKeepConflict(ImTools.ImHashMapConflicts`2[Int16,Nullable`1],int,short):ImTools.ImHashMap`2[Int16,Nullable`1]:this
          -6 (-0.96% of base) : 229117.dasm - ImTools.ImHashMap`2[Vector`1,Nullable`1][System.Numerics.Vector`1[System.Single],System.Nullable`1[System.Int32]]:AddOrKeepConflict(ImTools.ImHashMapConflicts`2[Vector`1,Nullable`1],int,System.Numerics.Vector`1[Single]):ImTools.ImHashMap`2[Vector`1,Nullable`1]:this
          -4 (-0.95% of base) : 229087.dasm - ImTools.ImHashMap`2[Vector`1,Nullable`1][System.Numerics.Vector`1[System.Single],System.Nullable`1[System.Int32]]:UpdateConflictToDefault(ImTools.ImHashMapConflicts`2[Vector`1,Nullable`1],int,System.Numerics.Vector`1[Single]):ImTools.ImHashMap`2[Vector`1,Nullable`1]:this

104 total methods with Code Size differences (69 improved, 35 regressed), 112 unchanged.


Copy link
Member

@BruceForstall BruceForstall left a comment

Choose a reason for hiding this comment

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

Is there a before/after flow graph picture that would help explain the change?

// a new block to allow changing that fall through to a jump, so if we have
// both a pred that is not a true pred, and a fall through, we defer optimizing
// the fall through pred as well.
// * We note if there is an un-ambiguous that pred falls through to block.
Copy link
Member

Choose a reason for hiding this comment

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

"We note if there is an un-ambiguous that pred" => missing word after "ambiguous"?

// per (4) below.
//
// (4) If we don't have an ambiguous pred, and we have a fall through, we leave
// all preds in the fall through set alone -- they contiuue branching to block.
Copy link
Member

Choose a reason for hiding this comment

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

typo: contiuue

@AndyAyersMS
Copy link
Member Author

@BruceForstall is the newly added flow picture enough or do you think it needs something more elaborate?

@BruceForstall
Copy link
Member

@BruceForstall is the newly added flow picture enough or do you think it needs something more elaborate?

Yes, the added picture is helpful.

@AndyAyersMS AndyAyersMS merged commit 9e69826 into dotnet:main Oct 28, 2021
@AndyAyersMS AndyAyersMS deleted the JumpThreadAmbPlusFallThru branch October 28, 2021 00:41
@ghost ghost locked as resolved and limited conversation to collaborators Nov 27, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants