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

Do not value number locals on the LHS #65902

Merged

Conversation

SingleAccretion
Copy link
Contributor

@SingleAccretion SingleAccretion commented Feb 25, 2022

The last of the copy propagation changes - do not number locals on the LHS and update copy propagation to account for that.

Two commits: first is the refactoring itself, second is the removal of the quirk for structs, that is also where some positive diffs for this change will come from.

Contributes to #10873.

@ghost ghost added the community-contribution Indicates that the PR has been added by a community member label Feb 25, 2022
@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 Feb 25, 2022
@ghost
Copy link

ghost commented Feb 25, 2022

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

Issue Details

The last of the copy propagation changes - do not number locals on the LHS and update copy propagation to account for that.

Two commits: first is the refactoring itself, second is the removal of the quirk for structs, that is also where some positive diffs for this change will come from.

Contributes to #10873.

Author: SingleAccretion
Assignees: -
Labels:

area-CodeGen-coreclr, community-contribution

Milestone: -

@SingleAccretion
Copy link
Contributor Author

SingleAccretion commented Feb 25, 2022

For reference, here are the code size/PerfScore diffs I get for benchmarks.run.windows.x64 when removing the PHI quirk:

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 13403026 (overridden on cmd)
Total bytes of diff: 13400341 (overridden on cmd)
Total bytes of delta: -2685 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.


Top file regressions (bytes):
         214 : 11803.dasm (2.15% of base)
         164 : 13559.dasm (2.92% of base)
         164 : 13553.dasm (2.92% of base)
          73 : 41551.dasm (3.31% of base)
          55 : 13624.dasm (0.77% of base)
          39 : 7888.dasm (0.36% of base)
          34 : 44300.dasm (2.27% of base)
          33 : 18513.dasm (0.94% of base)
          25 : 2040.dasm (1.14% of base)
          10 : 7258.dasm (0.62% of base)
          10 : 17181.dasm (1.52% of base)
          10 : 41521.dasm (0.62% of base)
           9 : 14120.dasm (0.24% of base)
           8 : 14612.dasm (3.10% of base)
           8 : 19834.dasm (0.43% of base)
           8 : 3228.dasm (2.61% of base)
           8 : 14621.dasm (3.19% of base)
           8 : 2227.dasm (5.10% of base)
           8 : 10062.dasm (1.70% of base)
           8 : 6206.dasm (2.16% of base)

Top file improvements (bytes):
        -238 : 7426.dasm (-2.12% of base)
        -230 : 22721.dasm (-6.87% of base)
        -230 : 7245.dasm (-6.91% of base)
        -128 : 1887.dasm (-1.71% of base)
        -127 : 7232.dasm (-9.79% of base)
        -108 : 11615.dasm (-7.54% of base)
        -104 : 21891.dasm (-5.84% of base)
         -72 : 17442.dasm (-2.57% of base)
         -65 : 7437.dasm (-1.63% of base)
         -64 : 1613.dasm (-0.58% of base)
         -55 : 19804.dasm (-15.80% of base)
         -55 : 39877.dasm (-3.62% of base)
         -55 : 11970.dasm (-2.50% of base)
         -52 : 23169.dasm (-3.81% of base)
         -51 : 8045.dasm (-18.48% of base)
         -49 : 3545.dasm (-1.03% of base)
         -49 : 23951.dasm (-1.04% of base)
         -48 : 2331.dasm (-0.78% of base)
         -48 : 4224.dasm (-2.98% of base)
         -44 : 20306.dasm (-3.92% of base)

305 total files with Code Size differences (219 improved, 86 regressed), 81 unchanged.

Top method regressions (bytes):
         214 ( 2.15% of base) : 11803.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
         164 ( 2.92% of base) : 13559.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
         164 ( 2.92% of base) : 13553.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
          73 ( 3.31% of base) : 41551.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
          55 ( 0.77% of base) : 13624.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,System.Char[]):System.DateTimeOffset
          39 ( 0.36% of base) : 7888.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,System.Char[]):System.DateTimeOffset
          34 ( 2.27% of base) : 44300.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
          33 ( 0.94% of base) : 18513.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseNamespaceBody(byref,byref,byref,ushort):this
          25 ( 1.14% of base) : 2040.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
          10 ( 0.62% of base) : 7258.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
          10 ( 0.62% of base) : 41521.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
          10 ( 1.52% of base) : 17181.dasm - System.Buffers.ReadOnlySequence`1[Byte][System.Byte]:Slice(long,System.SequencePosition):System.Buffers.ReadOnlySequence`1[Byte]:this
           9 ( 0.24% of base) : 14120.dasm - <WriteToFileAsync>d__88:MoveNext():this
           8 ( 3.10% of base) : 14612.dasm - <>c:<BeginReadInternal>b__38_0(System.Object):int:this
           8 ( 3.19% of base) : 14621.dasm - <>c:<BeginWriteInternal>b__48_0(System.Object):int:this
           8 ( 0.43% of base) : 19834.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValue(Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
           8 ( 1.70% of base) : 10062.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int
           8 ( 2.61% of base) : 3228.dasm - System.IO.MemoryStream:Read(System.Byte[],int,int):int:this
           8 ( 2.16% of base) : 6206.dasm - System.Net.Http.QPack.QPackEncoder:EncodeLiteralHeaderFieldWithStaticNameReferenceToArray(int,System.String):System.Byte[]
           8 ( 5.10% of base) : 2227.dasm - System.Reflection.Emit.MethodBuilder:GetMethodSignature():System.Reflection.Emit.SignatureHelper:this

Top method improvements (bytes):
        -238 (-2.12% of base) : 7426.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo
        -230 (-6.91% of base) : 7245.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
        -230 (-6.87% of base) : 22721.dasm - DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
        -128 (-1.71% of base) : 1887.dasm - System.DateTimeFormat:FormatCustomized(System.DateTime,System.ReadOnlySpan`1[Char],System.Globalization.DateTimeFormatInfo,System.TimeSpan,System.Text.StringBuilder):System.Text.StringBuilder
        -127 (-9.79% of base) : 7232.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
        -108 (-7.54% of base) : 11615.dasm - System.Numerics.BigIntegerCalculator:Gcd(System.Span`1[UInt32],System.Span`1[UInt32])
        -104 (-5.84% of base) : 21891.dasm - System.Numerics.BigInteger:Multiply(System.ReadOnlySpan`1[UInt32],int,System.ReadOnlySpan`1[UInt32],int):System.Numerics.BigInteger
         -72 (-2.57% of base) : 17442.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,int,int,int,System.Diagnostics.Tracing.EventParameterInfo[]):System.Byte[]:this
         -65 (-1.63% of base) : 7437.dasm - MessagePack.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,MessagePack.Internal.ObjectSerializationInfo,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[MessagePack.Internal.ObjectSerializationInfo+EmittableMember, MessagePack, Version=1.9.0.0, Culture=neutral, PublicKeyToken=b4a0369545f0a1be],[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],int)
         -64 (-0.58% of base) : 1613.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
         -55 (-3.62% of base) : 39877.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
         -55 (-15.80% of base) : 19804.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this
         -55 (-2.50% of base) : 11970.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this
         -52 (-3.81% of base) : 23169.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[Char],int,System.Span`1[Byte],int,System.Text.EncoderNLS):int:this
         -51 (-18.48% of base) : 8045.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
         -49 (-1.04% of base) : 23951.dasm - System.Memory.Slice`1[Byte][System.Byte]:MemoryStartLengthSpan():System.Memory`1[Byte]:this
         -49 (-1.03% of base) : 3545.dasm - System.Memory.Slice`1[Byte][System.Byte]:ReadOnlyMemoryStartLengthSpan():System.ReadOnlyMemory`1[Byte]:this
         -48 (-0.78% of base) : 2331.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,Utf8Json.Internal.Emit.MetaType,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Utf8Json.Internal.Emit.MetaMember, Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,int)
         -48 (-2.98% of base) : 4224.dasm - WorkerThread:WorkerThreadStart()
         -44 (-3.92% of base) : 20306.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetFirstToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[SyntaxToken,Boolean],System.Func`2[SyntaxTrivia,Boolean]):Microsoft.CodeAnalysis.SyntaxToken:this

Top method regressions (percentages):
           8 ( 5.10% of base) : 2227.dasm - System.Reflection.Emit.MethodBuilder:GetMethodSignature():System.Reflection.Emit.SignatureHelper:this
           7 ( 3.66% of base) : 44169.dasm - Enumerator[Int32,Int32][System.Int32,System.Int32]:PushLeft(Node[Int32,Int32]):this
           3 ( 3.45% of base) : 21570.dasm - System.Text.Tests.Perf_StringBuilder:ctor_string(int):System.Text.StringBuilder:this
          73 ( 3.31% of base) : 41551.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
           8 ( 3.19% of base) : 14621.dasm - <>c:<BeginWriteInternal>b__48_0(System.Object):int:this
           8 ( 3.10% of base) : 14612.dasm - <>c:<BeginReadInternal>b__38_0(System.Object):int:this
         164 ( 2.92% of base) : 13559.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
         164 ( 2.92% of base) : 13553.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
           8 ( 2.61% of base) : 3228.dasm - System.IO.MemoryStream:Read(System.Byte[],int,int):int:this
          34 ( 2.27% of base) : 44300.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
           8 ( 2.16% of base) : 6206.dasm - System.Net.Http.QPack.QPackEncoder:EncodeLiteralHeaderFieldWithStaticNameReferenceToArray(int,System.String):System.Byte[]
         214 ( 2.15% of base) : 11803.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
           3 ( 2.05% of base) : 11718.dasm - Enumerator[__Canon,__Canon][System.__Canon,System.__Canon]:PushLeft(Node[__Canon,__Canon]):this
           3 ( 2.05% of base) : 5437.dasm - Enumerator[HashBucket][System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[HashBucket]):this
           3 ( 1.89% of base) : 13980.dasm - Enumerator[__Canon][System.__Canon]:PushNext(Node[__Canon]):this
           2 ( 1.83% of base) : 21866.dasm - V8.Crypto.BigInteger:copyTo(V8.Crypto.BigInteger):this
           3 ( 1.81% of base) : 9360.dasm - Enumerator[__Canon][System.__Canon]:PushNext(Node[__Canon]):this
           7 ( 1.79% of base) : 2478.dasm - Utf8Json.JsonReader:ReadInt64():long:this
           8 ( 1.70% of base) : 10062.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int
           3 ( 1.69% of base) : 41898.dasm - Enumerator[HashBucket][System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.Int32,System.Int32]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[HashBucket]):this

Top method improvements (percentages):
         -51 (-18.48% of base) : 8045.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
         -55 (-15.80% of base) : 19804.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this
         -29 (-10.32% of base) : 4688.dasm - System.Text.Encodings.Web.AllowedBmpCodePointsBitmap:ForbidUndefinedCharacters():this
        -127 (-9.79% of base) : 7232.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
         -18 (-8.26% of base) : 9989.dasm - FractalPerf.Mandelbrot:Render():double:this
        -108 (-7.54% of base) : 11615.dasm - System.Numerics.BigIntegerCalculator:Gcd(System.Span`1[UInt32],System.Span`1[UInt32])
         -39 (-7.00% of base) : 5675.dasm - System.IO.Compression.BrotliStream:WriteCore(System.ReadOnlySpan`1[Byte],bool):this
        -230 (-6.91% of base) : 7245.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
        -230 (-6.87% of base) : 22721.dasm - DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
         -11 (-6.55% of base) : 9879.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[UInt64][System.UInt64]:FirstCounterInfo():System.ValueTuple`2[[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.UInt64, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Text.RegularExpressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.UInt64, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Text.RegularExpressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this
         -30 (-6.38% of base) : 12911.dasm - System.Runtime.Serialization.BitFlagsGenerator:.ctor(int,System.Runtime.Serialization.CodeGenerator,System.String):this
         -10 (-6.37% of base) : 7828.dasm - SelectListIterator`2[__Canon,__Canon][System.__Canon,System.__Canon]:ToArray():System.__Canon[]:this
         -18 (-6.32% of base) : 19436.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:GetInterfaceInfo():InterfaceInfo:this
         -33 (-6.25% of base) : 20248.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this
         -14 (-6.25% of base) : 1346.dasm - System.Reflection.AssemblyName:Clone():System.Object:this
        -104 (-5.84% of base) : 21891.dasm - System.Numerics.BigInteger:Multiply(System.ReadOnlySpan`1[UInt32],int,System.ReadOnlySpan`1[UInt32],int):System.Numerics.BigInteger
          -8 (-4.42% of base) : 9682.dasm - System.Collections.Generic.List`1[KeyValuePair`2][System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:ConvertAll(System.Converter`2[KeyValuePair`2,__Canon]):System.Collections.Generic.List`1[__Canon]:this
         -28 (-4.20% of base) : 15213.dasm - System.IO.Compression.Brotli:Compress_WithState():System.Span`1[Byte]:this
         -15 (-4.19% of base) : 5130.dasm - ThreadCounts:InterlockedSetNumThreadsGoal(short):ThreadCounts:this
         -37 (-4.13% of base) : 19265.dasm - System.Reflection.Metadata.MetadataReader:InitializeNestedTypesMap():this

305 total methods with Code Size differences (219 improved, 86 regressed), 81 unchanged.

Summary of Perf Score diffs:
(Lower is better)

Total PerfScoreUnits of base: 4343726501.63
Total PerfScoreUnits of diff: 4159143780.580001
Total PerfScoreUnits of delta: -184582721.05 (-4.25 % of base)
Total relative delta: -1.99
    diff is an improvement.
    relative diff is an improvement.


Top file regressions (PerfScoreUnits):
      744.30 : 40712.dasm (6.19% of base)
      744.20 : 39877.dasm (4.87% of base)
       95.65 : 11803.dasm (0.26% of base)
       65.80 : 9989.dasm (2.39% of base)
       61.85 : 43959.dasm (0.52% of base)
       58.40 : 13553.dasm (1.15% of base)
       58.40 : 13559.dasm (1.15% of base)
       48.60 : 2444.dasm (0.01% of base)
       38.80 : 41551.dasm (1.01% of base)
       19.00 : 15398.dasm (0.60% of base)
       18.90 : 44300.dasm (1.99% of base)
       13.60 : 43038.dasm (0.43% of base)
       13.60 : 13587.dasm (0.43% of base)
       13.60 : 15396.dasm (0.43% of base)
       12.80 : 17302.dasm (0.40% of base)
       12.23 : 2040.dasm (2.26% of base)
       12.05 : 15397.dasm (0.35% of base)
       10.70 : 13599.dasm (0.33% of base)
       10.50 : 13590.dasm (0.31% of base)
       10.30 : 10000.dasm (0.31% of base)

Top file improvements (PerfScoreUnits):
    -184551466.05 : 2331.dasm (-4.38% of base)
    -31106.90 : 7426.dasm (-1.06% of base)
     -512.60 : 18756.dasm (-0.00% of base)
     -172.80 : 4224.dasm (-1.98% of base)
     -145.70 : 4055.dasm (-1.41% of base)
     -138.50 : 22721.dasm (-4.06% of base)
     -138.50 : 7245.dasm (-4.07% of base)
      -65.30 : 59.dasm (-0.11% of base)
      -63.65 : 17442.dasm (-3.11% of base)
      -49.25 : 7232.dasm (-6.88% of base)
      -46.30 : 1887.dasm (-0.96% of base)
      -39.20 : 11615.dasm (-1.17% of base)
      -37.70 : 18937.dasm (-0.15% of base)
      -29.10 : 8045.dasm (-15.93% of base)
      -24.95 : 7437.dasm (-1.80% of base)
      -22.95 : 23169.dasm (-3.63% of base)
      -22.50 : 41540.dasm (-1.93% of base)
      -22.30 : 9695.dasm (-0.16% of base)
      -20.80 : 19804.dasm (-7.66% of base)
      -20.80 : 3120.dasm (-4.69% of base)

312 total files with Perf Score differences (214 improved, 98 regressed), 74 unchanged.

Top method regressions (PerfScoreUnits):
      744.30 ( 6.19% of base) : 40712.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
      744.20 ( 4.87% of base) : 39877.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
       95.65 ( 0.26% of base) : 11803.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       65.80 ( 2.39% of base) : 9989.dasm - FractalPerf.Mandelbrot:Render():double:this
       61.85 ( 0.52% of base) : 43959.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[Char],System.ReadOnlySpan`1[Char],bool,bool):bool
       58.40 ( 1.15% of base) : 13553.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       58.40 ( 1.15% of base) : 13559.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       48.60 ( 0.01% of base) : 2444.dasm - System.Reflection.Emit.TypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this
       38.80 ( 1.01% of base) : 41551.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       19.00 ( 0.60% of base) : 15398.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItemTask:this
       18.90 ( 1.99% of base) : 44300.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       13.60 ( 0.43% of base) : 13587.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_IndexViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.IndexViewModel:this
       13.60 ( 0.43% of base) : 43038.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_LoginViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.LoginViewModel:this
       13.60 ( 0.43% of base) : 15396.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerViewModel:this
       12.80 ( 0.40% of base) : 17302.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_CollectionsOfPrimitivesFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this
       12.23 ( 2.26% of base) : 2040.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
       12.05 ( 0.35% of base) : 15397.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItem:this
       10.70 ( 0.33% of base) : 13599.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_CampaignSummaryViewModelFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CampaignSummaryViewModel:this
       10.50 ( 0.31% of base) : 13590.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this
       10.30 ( 0.31% of base) : 10000.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_LocationFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.Location:this

Top method improvements (PerfScoreUnits):
    -184551466.05 (-4.38% of base) : 2331.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,Utf8Json.Internal.Emit.MetaType,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Utf8Json.Internal.Emit.MetaMember, Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,int)
    -31106.90 (-1.06% of base) : 7426.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo
     -512.60 (-0.00% of base) : 18756.dasm - SelectManySingleSelectorIterator`2[__Canon,ReferenceDirective][System.__Canon,Microsoft.CodeAnalysis.ReferenceDirective]:ToArray():Microsoft.CodeAnalysis.ReferenceDirective[]:this
     -172.80 (-1.98% of base) : 4224.dasm - WorkerThread:WorkerThreadStart()
     -145.70 (-1.41% of base) : 4055.dasm - GateThread:GateThreadStart()
     -138.50 (-4.07% of base) : 7245.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
     -138.50 (-4.06% of base) : 22721.dasm - DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
      -65.30 (-0.11% of base) : 59.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf8(long,int,long,int,byref,byref):int
      -63.65 (-3.11% of base) : 17442.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,int,int,int,System.Diagnostics.Tracing.EventParameterInfo[]):System.Byte[]:this
      -49.25 (-6.88% of base) : 7232.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
      -46.30 (-0.96% of base) : 1887.dasm - System.DateTimeFormat:FormatCustomized(System.DateTime,System.ReadOnlySpan`1[Char],System.Globalization.DateTimeFormatInfo,System.TimeSpan,System.Text.StringBuilder):System.Text.StringBuilder
      -39.20 (-1.17% of base) : 11615.dasm - System.Numerics.BigIntegerCalculator:Gcd(System.Span`1[UInt32],System.Span`1[UInt32])
      -37.70 (-0.15% of base) : 18937.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[__Canon,__Canon][System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[__Canon],int):this
      -29.10 (-15.93% of base) : 8045.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
      -24.95 (-1.80% of base) : 7437.dasm - MessagePack.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,MessagePack.Internal.ObjectSerializationInfo,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[MessagePack.Internal.ObjectSerializationInfo+EmittableMember, MessagePack, Version=1.9.0.0, Culture=neutral, PublicKeyToken=b4a0369545f0a1be],[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],int)
      -22.95 (-3.63% of base) : 23169.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[Char],int,System.Span`1[Byte],int,System.Text.EncoderNLS):int:this
      -22.50 (-1.93% of base) : 41540.dasm - DynamicClass:Regex9_Go(System.Text.RegularExpressions.RegexRunner)
      -22.30 (-0.16% of base) : 9695.dasm - DynamicClass:Regex4_Go(System.Text.RegularExpressions.RegexRunner)
      -20.80 (-7.66% of base) : 19804.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this
      -20.80 (-4.69% of base) : 3120.dasm - System.Uri:Compress(System.Span`1[Char],System.UriParser):int

Top method regressions (percentages):
      744.30 ( 6.19% of base) : 40712.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
      744.20 ( 4.87% of base) : 39877.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
        2.80 ( 3.91% of base) : 14621.dasm - <>c:<BeginWriteInternal>b__48_0(System.Object):int:this
        2.80 ( 3.78% of base) : 14612.dasm - <>c:<BeginReadInternal>b__38_0(System.Object):int:this
       65.80 ( 2.39% of base) : 9989.dasm - FractalPerf.Mandelbrot:Render():double:this
       12.23 ( 2.26% of base) : 2040.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
        1.30 ( 2.23% of base) : 2227.dasm - System.Reflection.Emit.MethodBuilder:GetMethodSignature():System.Reflection.Emit.SignatureHelper:this
       18.90 ( 1.99% of base) : 44300.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
        2.30 ( 1.98% of base) : 3228.dasm - System.IO.MemoryStream:Read(System.Byte[],int,int):int:this
        0.43 ( 1.69% of base) : 21570.dasm - System.Text.Tests.Perf_StringBuilder:ctor_string(int):System.Text.StringBuilder:this
        2.00 ( 1.44% of base) : 17181.dasm - System.Buffers.ReadOnlySequence`1[Byte][System.Byte]:Slice(long,System.SequencePosition):System.Buffers.ReadOnlySequence`1[Byte]:this
        8.40 ( 1.18% of base) : 19659.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSequentialOnPartialType(Microsoft.CodeAnalysis.DiagnosticBag):this
       58.40 ( 1.15% of base) : 13553.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       58.40 ( 1.15% of base) : 13559.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
        1.20 ( 1.14% of base) : 21866.dasm - V8.Crypto.BigInteger:copyTo(V8.Crypto.BigInteger):this
        0.35 ( 1.12% of base) : 22571.dasm - System.Collections.IndexerSetReverse`1[Int32][System.Int32]:Span():int:this
        1.10 ( 1.11% of base) : 15147.dasm - System.Collections.CreateAddAndClear`1[__Canon][System.__Canon]:Array():System.__Canon[]:this
       38.80 ( 1.01% of base) : 41551.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
        1.10 ( 0.97% of base) : 593.dasm - System.Linq.OrderedEnumerable`1[__Canon][System.__Canon]:ToArray():System.__Canon[]:this
        0.80 ( 0.88% of base) : 6206.dasm - System.Net.Http.QPack.QPackEncoder:EncodeLiteralHeaderFieldWithStaticNameReferenceToArray(int,System.String):System.Byte[]

Top method improvements (percentages):
      -29.10 (-15.93% of base) : 8045.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
      -20.80 (-7.66% of base) : 19804.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this
      -49.25 (-6.88% of base) : 7232.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
      -20.30 (-6.65% of base) : 20248.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this
      -16.90 (-6.59% of base) : 5675.dasm - System.IO.Compression.BrotliStream:WriteCore(System.ReadOnlySpan`1[Byte],bool):this
      -10.80 (-5.91% of base) : 4688.dasm - System.Text.Encodings.Web.AllowedBmpCodePointsBitmap:ForbidUndefinedCharacters():this
      -18.80 (-5.39% of base) : 11582.dasm - System.Net.MultiMemory:CopyFrom(System.ReadOnlySpan`1[Byte]):this
      -17.40 (-5.37% of base) : 10890.dasm - System.Text.StringBuilder:ReplaceInPlaceAtChunk(byref,byref,byref,int):this
       -3.40 (-4.80% of base) : 1346.dasm - System.Reflection.AssemblyName:Clone():System.Object:this
      -15.00 (-4.72% of base) : 12911.dasm - System.Runtime.Serialization.BitFlagsGenerator:.ctor(int,System.Runtime.Serialization.CodeGenerator,System.String):this
      -20.80 (-4.69% of base) : 3120.dasm - System.Uri:Compress(System.Span`1[Char],System.UriParser):int
    -184551466.05 (-4.38% of base) : 2331.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,Utf8Json.Internal.Emit.MetaType,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Utf8Json.Internal.Emit.MetaMember, Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,int)
     -138.50 (-4.07% of base) : 7245.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
     -138.50 (-4.06% of base) : 22721.dasm - DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
      -19.45 (-4.04% of base) : 20306.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetFirstToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[SyntaxToken,Boolean],System.Func`2[SyntaxTrivia,Boolean]):Microsoft.CodeAnalysis.SyntaxToken:this
      -22.95 (-3.63% of base) : 23169.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[Char],int,System.Span`1[Byte],int,System.Text.EncoderNLS):int:this
       -2.55 (-3.63% of base) : 6051.dasm - System.Net.Security.SslClientAuthenticationOptionsExtensions:ShallowClone(System.Net.Security.SslClientAuthenticationOptions):System.Net.Security.SslClientAuthenticationOptions
      -13.53 (-3.56% of base) : 21891.dasm - System.Numerics.BigInteger:Multiply(System.ReadOnlySpan`1[UInt32],int,System.ReadOnlySpan`1[UInt32],int):System.Numerics.BigInteger
       -3.10 (-3.53% of base) : 22486.dasm - System.Threading.Tests.Perf_Timer:SynchronousContention():this
       -3.10 (-3.47% of base) : 23043.dasm - System.Threading.Tests.Perf_Timer:AsynchronousContention():this

312 total methods with Perf Score differences (214 improved, 98 regressed), 74 unchanged.

All regressions are, as one would expect, from RA not being too happy.

We may decide those are ok enough diffs to take even with the regressions.

And account for this in copy propagation.

No diffs.
Removing the PHI quirk is more problematic due to regressions.
@SingleAccretion
Copy link
Contributor Author

Windows ARM64 build failures are #65818, SPMI failed for it too (no MCHs).

@dotnet/jit-contrib - rounding out the copy propagation story.

@SingleAccretion SingleAccretion marked this pull request as ready for review February 25, 2022 21:23
@kunalspathak
Copy link
Member

I am inclined to see the diffs before deciding if we want to take this with the regressions. I won't get it until Monday though. I am assigning @jakobbotsch as well in case he gets chance to check the diffs.

Let's assess the diffs.
@SingleAccretion
Copy link
Contributor Author

SingleAccretion commented Feb 25, 2022

I am inclined to see the diffs before deciding if we want to take this with the regressions.

Let's do that then. I've pushed a commit removing the quirk for an SPMI run.

Results.

@jakobbotsch
Copy link
Member

jakobbotsch commented Feb 28, 2022

There are some regressions in some functions that worry me a bit, e.g. regressions in:

  • Microsoft.FSharp.Primitives.Basics.List:filter(Microsoft.FSharp.Core.FSharpFunc`2[Byte,Boolean],Microsoft.FSharp.Collections.FSharpList`1[Byte]):Microsoft.FSharp.Collections.FSharpList`1[Byte]
  • System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this.
  • System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[System.Char],byref):bool
  • System.Linq.Parallel.SortHelper`2:MergeSortCooperatively():this

For some reason I cannot find the .dasm file in the artifacts for Linux x64, the Extensions view says (under libraries.pmi.Linux.x64.checked.mch):

          28 (15.05 % of base) : 159341.dasm - Microsoft.FSharp.Primitives.Basics.List:filter(Microsoft.FSharp.Core.FSharpFunc`2[Byte,Boolean],Microsoft.FSharp.Collections.FSharpList`1[Byte]):Microsoft.FSharp.Collections.FSharpList`1[Byte]

but this file does not seem to be present in the downloaded artifacts. Maybe I'm looking at the wrong place? Any idea @kunalspathak / @BruceForstall?

Have you looked at these @SingleAccretion? Is it just some extra spilling? Inside or outside a loop?

@SingleAccretion
Copy link
Contributor Author

Is it just some extra spilling?

Worse allocation, yes.

System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller[__Canon][System.__Canon]:set_Value(long):this.

Here we have a case where substitution keep one more local used:

-;* V09 tmp5         [V09,T10] (  0,  0   )   byref  ->  zero-ref
+;  V09 tmp5         [V09,T07] (  3,  1.50)   byref  ->  rdx

+       mov      rdx, rcx
+       ; byrRegs +[rdx]
+       xor      r9d, r9d
        jmp      SHORT G_M11382_IG07
-                                               ;; bbWeight=0.50 PerfScore 3.25
+                                               ;; bbWeight=0.50 PerfScore 3.38
 G_M11382_IG06:        ; gcrefRegs=00000001 {rax}, byrefRegs=00000002 {rcx}, byref
-       mov      edx, dword ptr [rax+8]
-                                               ;; bbWeight=0.50 PerfScore 1.00
-G_M11382_IG07:        ; gcrefRegs=00000000 {}, byrefRegs=00000002 {rcx}, byref, isz
+       ; byrRegs -[rdx]
+       mov      rdx, rcx
+       ; byrRegs +[rdx]
+       mov      r9d, dword ptr [rax+8]

What happens is that we had a use of this replaced with V09, which itself in turn was replaced at its previous (and only) use by this:

VN based copy assertion for [000050] V00 $80 by [000208] V09 $80.
N002 (  1,  1) [000050] ------------              *  LCL_VAR   byref  V00 this         u:1 (last use) $80
copy propagated to:
N002 (  1,  1) [000050] ------------              *  LCL_VAR   byref  V09 tmp5         u:2 (last use) $80

VN based copy assertion for [000047] V09 $80 by [000005] V00 $80.
N001 (  3,  2) [000047] ------------              *  LCL_VAR   byref  V09 tmp5         u:2 (last use) $80
copy propagated to:
N001 (  3,  2) [000047] ------------              *  LCL_VAR   byref  V00 this         u:1 (last use) $80

System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span[System.Char],byref):bool

While we do eliminate a few locals with the new substitutions, we incur quite a few new spills for the substitute itself (looks like to me like its now crossing a call, but not sure).

Microsoft.FSharp.Primitives.Basics.List:filter(Microsoft.FSharp.Core.FSharpFunc[Byte,Boolean],Microsoft.FSharp.Collections.FSharpList1[Byte]):Microsoft.FSharp.Collections.FSharpList[Byte]`

Here we reserve an additional callee-saved register, for what looks to me like a new overlap in lifetimes, in a method with multiple epilogs.

Inside or outside a loop?

There are some loop cases if we look at PerfScore:

 G_M46727_IG07:        ; gcrefRegs=000000C8 {rbx rsi rdi}, byrefRegs=00000000 {}, loop=IG07, byref, isz
-       vmulps   ymm11, ymm4, ymm4
-       vmulps   ymm14, ymm5, ymm5
-       vsubps   ymm15, ymm11, ymm14
-       vmulps   ymm4, ymm4, ymm5
-       vaddps   ymm5, ymm4, ymm4
-       vaddps   ymm4, ymm15, ymm2
-       vaddps   ymm5, ymm5, ymm3
-       vpaddd   ymm6, ymm6, ymm9
-       vmulps   ymm11, ymm4, ymm4
-       vmulps   ymm14, ymm5, ymm5
-       vaddps   ymm11, ymm11, ymm14
-       vcmpps   ymm11, ymm11, ymm10, 2
+       vmulps   ymm5, ymm2, ymm2
+       vmulps   ymm9, ymm3, ymm3
+       vsubps   ymm5, ymm5, ymm9
+       vmulps   ymm2, ymm2, ymm3
+       vaddps   ymm3, ymm2, ymm2
+       vmovupd  ymmword ptr[rsp+20H], ymm1
+       vaddps   ymm2, ymm5, ymm1
+       vaddps   ymm3, ymm3, ymm13
+       vpaddd   ymm6, ymm6, ymm4
+       vmulps   ymm5, ymm2, ymm2
+       vmulps   ymm11, ymm3, ymm3
+       vaddps   ymm5, ymm5, ymm11
+       vcmpps   ymm5, ymm5, ymm10, 2
        vpcmpgtd ymm14, ymm7, ymm6
        vpcmpeqd ymm15, ymm6, ymm7
-       vpor     ymm14, ymm14, ymm15
-       vpand    ymm11, ymm11, ymm14
-       vpand    ymm9, ymm9, ymm11
-       vptest   ymm9, ymm9
+       vpor     ymm9, ymm14, ymm15
+       vpand    ymm5, ymm5, ymm9
+       vpand    ymm4, ymm4, ymm5
+       vptest   ymm4, ymm4
+       vmovupd  ymm1, ymmword ptr[rsp+20H]
        jne      SHORT G_M46727_IG07
PerfScore for some collections

benchmarks.run.windows.x64:

Found 389 files with textual diffs.

Summary of Perf Score diffs:
(Lower is better)

Total PerfScoreUnits of base: 4343794312.71
Total PerfScoreUnits of diff: 4159211065.3400035
Total PerfScoreUnits of delta: -184583247.37 (-4.25 % of base)
Total relative delta: -2.11
    diff is an improvement.
    relative diff is an improvement.


Top file regressions (PerfScoreUnits):
      744.20 : 24729.dasm (4.87% of base)
       95.65 : 11564.dasm (0.26% of base)
       61.85 : 43886.dasm (0.52% of base)
       48.60 : 2447.dasm (0.01% of base)
       46.35 : 23069.dasm (0.46% of base)
       46.35 : 9507.dasm (0.46% of base)
       38.80 : 41915.dasm (1.01% of base)
       38.00 : 13311.dasm (0.80% of base)
       38.00 : 13328.dasm (0.80% of base)
       19.00 : 14760.dasm (0.60% of base)
       13.60 : 12674.dasm (0.43% of base)
       13.60 : 14757.dasm (0.43% of base)
       13.60 : 42939.dasm (0.43% of base)
       12.80 : 16699.dasm (0.40% of base)
       12.23 : 2042.dasm (2.26% of base)
       12.05 : 14758.dasm (0.35% of base)
       10.70 : 12699.dasm (0.33% of base)
       10.50 : 12688.dasm (0.31% of base)
        9.00 : 12724.dasm (0.63% of base)
        8.40 : 19097.dasm (1.18% of base)

Top file improvements (PerfScoreUnits):
    -184551466.05 : 2334.dasm (-4.38% of base)
    -31106.90 : 7448.dasm (-1.06% of base)
     -512.60 : 18195.dasm (-0.00% of base)
     -172.80 : 4228.dasm (-1.98% of base)
     -145.70 : 4057.dasm (-1.41% of base)
      -65.30 : 59.dasm (-0.11% of base)
      -63.65 : 16878.dasm (-3.11% of base)
      -49.25 : 7188.dasm (-6.88% of base)
      -46.30 : 1889.dasm (-0.96% of base)
      -39.20 : 11150.dasm (-1.17% of base)
      -37.70 : 18376.dasm (-0.15% of base)
      -29.10 : 8068.dasm (-15.93% of base)
      -28.20 : 3908.dasm (-10.42% of base)
      -24.95 : 7459.dasm (-1.80% of base)
      -22.95 : 21840.dasm (-3.63% of base)
      -22.50 : 41911.dasm (-1.93% of base)
      -20.80 : 19242.dasm (-7.66% of base)
      -20.80 : 3123.dasm (-4.69% of base)
      -20.50 : 3722.dasm (-7.11% of base)
      -20.30 : 19688.dasm (-6.65% of base)

315 total files with Perf Score differences (215 improved, 100 regressed), 74 unchanged.

Top method regressions (PerfScoreUnits):
      744.20 ( 4.87% of base) : 24729.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
       95.65 ( 0.26% of base) : 11564.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       61.85 ( 0.52% of base) : 43886.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[Char],System.ReadOnlySpan`1[Char],bool,bool):bool
       48.60 ( 0.01% of base) : 2447.dasm - System.Reflection.Emit.TypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this
       46.35 ( 0.46% of base) : 23069.dasm - DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
       46.35 ( 0.46% of base) : 9507.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       38.80 ( 1.01% of base) : 41915.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       38.00 ( 0.80% of base) : 13311.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       38.00 ( 0.80% of base) : 13328.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       19.00 ( 0.60% of base) : 14760.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItemTask:this
       13.60 ( 0.43% of base) : 12674.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_IndexViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.IndexViewModel:this
       13.60 ( 0.43% of base) : 42939.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_LoginViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.LoginViewModel:this
       13.60 ( 0.43% of base) : 14757.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerViewModel:this
       12.80 ( 0.40% of base) : 16699.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_CollectionsOfPrimitivesFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this
       12.23 ( 2.26% of base) : 2042.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
       12.05 ( 0.35% of base) : 14758.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItem:this
       10.70 ( 0.33% of base) : 12699.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_CampaignSummaryViewModelFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CampaignSummaryViewModel:this
       10.50 ( 0.31% of base) : 12688.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this
        9.00 ( 0.63% of base) : 12724.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,System.Char[]):System.DateTimeOffset
        8.40 ( 1.18% of base) : 19097.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSequentialOnPartialType(Microsoft.CodeAnalysis.DiagnosticBag):this

Top method improvements (PerfScoreUnits):
    -184551466.05 (-4.38% of base) : 2334.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,Utf8Json.Internal.Emit.MetaType,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Utf8Json.Internal.Emit.MetaMember, Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,int)
    -31106.90 (-1.06% of base) : 7448.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo
     -512.60 (-0.00% of base) : 18195.dasm - SelectManySingleSelectorIterator`2[__Canon,ReferenceDirective][System.__Canon,Microsoft.CodeAnalysis.ReferenceDirective]:ToArray():Microsoft.CodeAnalysis.ReferenceDirective[]:this
     -172.80 (-1.98% of base) : 4228.dasm - WorkerThread:WorkerThreadStart()
     -145.70 (-1.41% of base) : 4057.dasm - GateThread:GateThreadStart()
      -65.30 (-0.11% of base) : 59.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf8(long,int,long,int,byref,byref):int
      -63.65 (-3.11% of base) : 16878.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,int,int,int,System.Diagnostics.Tracing.EventParameterInfo[]):System.Byte[]:this
      -49.25 (-6.88% of base) : 7188.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
      -46.30 (-0.96% of base) : 1889.dasm - System.DateTimeFormat:FormatCustomized(System.DateTime,System.ReadOnlySpan`1[Char],System.Globalization.DateTimeFormatInfo,System.TimeSpan,System.Text.StringBuilder):System.Text.StringBuilder
      -39.20 (-1.17% of base) : 11150.dasm - System.Numerics.BigIntegerCalculator:Gcd(System.Span`1[UInt32],System.Span`1[UInt32])
      -37.70 (-0.15% of base) : 18376.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[__Canon,__Canon][System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[__Canon],int):this
      -29.10 (-15.93% of base) : 8068.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
      -28.20 (-10.42% of base) : 3908.dasm - System.TimeZoneInfo:CreateAdjustmentRuleFromTimeZoneInformation(byref,System.DateTime,System.DateTime,int):AdjustmentRule
      -24.95 (-1.80% of base) : 7459.dasm - MessagePack.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,MessagePack.Internal.ObjectSerializationInfo,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[MessagePack.Internal.ObjectSerializationInfo+EmittableMember, MessagePack, Version=1.9.0.0, Culture=neutral, PublicKeyToken=b4a0369545f0a1be],[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],int)
      -22.95 (-3.63% of base) : 21840.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[Char],int,System.Span`1[Byte],int,System.Text.EncoderNLS):int:this
      -22.50 (-1.93% of base) : 41911.dasm - DynamicClass:Regex9_Go(System.Text.RegularExpressions.RegexRunner)
      -20.80 (-7.66% of base) : 19242.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this
      -20.80 (-4.69% of base) : 3123.dasm - System.Uri:Compress(System.Span`1[Char],System.UriParser):int
      -20.50 (-7.11% of base) : 3722.dasm - System.Net.Security.SslStreamPal:InitializeSecurityContext(System.Net.Security.SecureChannel,byref,byref,System.String,System.ReadOnlySpan`1[Byte],byref,System.Net.Security.SslAuthenticationOptions):System.Net.SecurityStatusPal
      -20.30 (-6.65% of base) : 19688.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this

Top method regressions (percentages):
      744.20 ( 4.87% of base) : 24729.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
        2.80 ( 3.91% of base) : 13949.dasm - <>c:<BeginWriteInternal>b__48_0(System.Object):int:this
        2.80 ( 3.78% of base) : 13942.dasm - <>c:<BeginReadInternal>b__38_0(System.Object):int:this
       12.23 ( 2.26% of base) : 2042.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
        1.30 ( 2.23% of base) : 2230.dasm - System.Reflection.Emit.MethodBuilder:GetMethodSignature():System.Reflection.Emit.SignatureHelper:this
        2.30 ( 1.98% of base) : 3231.dasm - System.IO.MemoryStream:Read(System.Byte[],int,int):int:this
        0.43 ( 1.69% of base) : 21034.dasm - System.Text.Tests.Perf_StringBuilder:ctor_string(int):System.Text.StringBuilder:this
        2.00 ( 1.44% of base) : 16585.dasm - System.Buffers.ReadOnlySequence`1[Byte][System.Byte]:Slice(long,System.SequencePosition):System.Buffers.ReadOnlySequence`1[Byte]:this
        8.40 ( 1.18% of base) : 19097.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSequentialOnPartialType(Microsoft.CodeAnalysis.DiagnosticBag):this
        1.20 ( 1.14% of base) : 22233.dasm - V8.Crypto.BigInteger:copyTo(V8.Crypto.BigInteger):this
        0.35 ( 1.12% of base) : 22923.dasm - System.Collections.IndexerSetReverse`1[Int32][System.Int32]:Span():int:this
        1.10 ( 1.11% of base) : 14505.dasm - System.Collections.CreateAddAndClear`1[__Canon][System.__Canon]:Array():System.__Canon[]:this
       38.80 ( 1.01% of base) : 41915.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
        1.10 ( 0.97% of base) : 593.dasm - System.Linq.OrderedEnumerable`1[__Canon][System.__Canon]:ToArray():System.__Canon[]:this
        0.80 ( 0.88% of base) : 6311.dasm - System.Net.Http.QPack.QPackEncoder:EncodeLiteralHeaderFieldWithStaticNameReferenceToArray(int,System.String):System.Byte[]
       38.00 ( 0.80% of base) : 13311.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       38.00 ( 0.80% of base) : 13328.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
        1.60 ( 0.66% of base) : 1439.dasm - ProtoBuf.Serializers.RepeatedSerializers:GetProviderForType(System.Type):System.Reflection.MemberInfo
        9.00 ( 0.63% of base) : 12724.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,System.Char[]):System.DateTimeOffset
       19.00 ( 0.60% of base) : 14760.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItemTask:this

Top method improvements (percentages):
      -29.10 (-15.93% of base) : 8068.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
      -28.20 (-10.42% of base) : 3908.dasm - System.TimeZoneInfo:CreateAdjustmentRuleFromTimeZoneInformation(byref,System.DateTime,System.DateTime,int):AdjustmentRule
      -20.80 (-7.66% of base) : 19242.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this
      -20.50 (-7.11% of base) : 3722.dasm - System.Net.Security.SslStreamPal:InitializeSecurityContext(System.Net.Security.SecureChannel,byref,byref,System.String,System.ReadOnlySpan`1[Byte],byref,System.Net.Security.SslAuthenticationOptions):System.Net.SecurityStatusPal
      -49.25 (-6.88% of base) : 7188.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
      -20.30 (-6.65% of base) : 19688.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this
      -16.90 (-6.59% of base) : 5781.dasm - System.IO.Compression.BrotliStream:WriteCore(System.ReadOnlySpan`1[Byte],bool):this
      -10.80 (-5.91% of base) : 4723.dasm - System.Text.Encodings.Web.AllowedBmpCodePointsBitmap:ForbidUndefinedCharacters():this
      -18.80 (-5.39% of base) : 11117.dasm - System.Net.MultiMemory:CopyFrom(System.ReadOnlySpan`1[Byte]):this
      -17.40 (-5.37% of base) : 10334.dasm - System.Text.StringBuilder:ReplaceInPlaceAtChunk(byref,byref,byref,int):this
       -3.40 (-4.80% of base) : 1348.dasm - System.Reflection.AssemblyName:Clone():System.Object:this
      -15.00 (-4.72% of base) : 11938.dasm - System.Runtime.Serialization.BitFlagsGenerator:.ctor(int,System.Runtime.Serialization.CodeGenerator,System.String):this
      -20.80 (-4.69% of base) : 3123.dasm - System.Uri:Compress(System.Span`1[Char],System.UriParser):int
    -184551466.05 (-4.38% of base) : 2334.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,Utf8Json.Internal.Emit.MetaType,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Utf8Json.Internal.Emit.MetaMember, Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,int)
      -19.45 (-4.04% of base) : 19746.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetFirstToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[SyntaxToken,Boolean],System.Func`2[SyntaxTrivia,Boolean]):Microsoft.CodeAnalysis.SyntaxToken:this
      -22.95 (-3.63% of base) : 21840.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[Char],int,System.Span`1[Byte],int,System.Text.EncoderNLS):int:this
       -2.55 (-3.63% of base) : 6156.dasm - System.Net.Security.SslClientAuthenticationOptionsExtensions:ShallowClone(System.Net.Security.SslClientAuthenticationOptions):System.Net.Security.SslClientAuthenticationOptions
      -13.53 (-3.56% of base) : 22257.dasm - System.Numerics.BigInteger:Multiply(System.ReadOnlySpan`1[UInt32],int,System.ReadOnlySpan`1[UInt32],int):System.Numerics.BigInteger
       -3.10 (-3.53% of base) : 22839.dasm - System.Threading.Tests.Perf_Timer:SynchronousContention():this
       -3.10 (-3.47% of base) : 23440.dasm - System.Threading.Tests.Perf_Timer:AsynchronousContention():this

315 total methods with Perf Score differences (215 improved, 100 regressed), 74 unchanged.

--------------------------------------------------------------------------------

libraries.pmi.windows.x64:

Found 1775 files with textual diffs.

Summary of Perf Score diffs:
(Lower is better)

Total PerfScoreUnits of base: 2.1550060208606166E+31
Total PerfScoreUnits of diff: 2.1550060208606103E+31
Total PerfScoreUnits of delta: -63050395856868776.00 (-0.00 % of base)
Total relative delta: -9.60
    diff is an improvement.
    relative diff is an improvement.


Top file regressions (PerfScoreUnits):
    65534.75 : 151427.dasm (0.24% of base)
    30213.10 : 171696.dasm (7.86% of base)
      799.00 : 52995.dasm (0.28% of base)
      255.90 : 171705.dasm (0.08% of base)
      232.02 : 207263.dasm (1.58% of base)
      226.05 : 134283.dasm (5.61% of base)
       96.40 : 108478.dasm (0.30% of base)
       84.00 : 165167.dasm (0.38% of base)
       64.30 : 108506.dasm (2.18% of base)
       48.20 : 9093.dasm (1.31% of base)
       48.20 : 9092.dasm (1.31% of base)
       46.15 : 126811.dasm (5.55% of base)
       46.15 : 126797.dasm (5.37% of base)
       46.15 : 126825.dasm (5.37% of base)
       32.15 : 23251.dasm (0.97% of base)
       22.65 : 126829.dasm (2.55% of base)
       22.65 : 126815.dasm (2.63% of base)
       18.61 : 109416.dasm (4.31% of base)
       18.50 : 53547.dasm (6.27% of base)
       16.80 : 50279.dasm (0.32% of base)

Top file improvements (PerfScoreUnits):
    -63050394783186944.00 : 31119.dasm (-0.00% of base)
    -1073741824.20 : 159309.dasm (-1.27% of base)
    -14348.04 : 129332.dasm (-6.06% of base)
    -8051.87 : 91221.dasm (-0.13% of base)
    -4097.05 : 159536.dasm (-0.00% of base)
    -2948.60 : 118501.dasm (-1.71% of base)
    -1793.10 : 234484.dasm (-0.08% of base)
     -512.80 : 209293.dasm (-0.00% of base)
     -512.60 : 129073.dasm (-0.51% of base)
     -512.60 : 209286.dasm (-0.00% of base)
     -319.40 : 9036.dasm (-5.34% of base)
     -243.25 : 77780.dasm (-0.87% of base)
     -207.80 : 174128.dasm (-21.07% of base)
     -155.65 : 174127.dasm (-8.64% of base)
     -136.57 : 54922.dasm (-0.13% of base)
     -128.90 : 113291.dasm (-1.70% of base)
     -124.20 : 229882.dasm (-0.71% of base)
     -112.50 : 80769.dasm (-4.15% of base)
     -112.30 : 11863.dasm (-14.58% of base)
     -111.65 : 67915.dasm (-3.07% of base)

1403 total files with Perf Score differences (956 improved, 447 regressed), 372 unchanged.

Top method regressions (PerfScoreUnits):
    65534.75 ( 0.24% of base) : 151427.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this
    30213.10 ( 7.86% of base) : 171696.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
      799.00 ( 0.28% of base) : 52995.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:MakeExplicitInterfaceImplementationMap(Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Generic.Dictionary`2[[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
      255.90 ( 0.08% of base) : 171705.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindingScore(System.Reflection.ParameterInfo[],System.Int32[],System.Type[],bool,int):int:this
      232.02 ( 1.58% of base) : 207263.dasm - System.Linq.Parallel.SortHelper`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:MergeSortCooperatively():this
      226.05 ( 5.61% of base) : 134283.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this
       96.40 ( 0.30% of base) : 108478.dasm - Microsoft.Build.Construction.SolutionFile:ProcessProjectConfigurationSection(System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):this
       84.00 ( 0.38% of base) : 165167.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,bool,byref,bool):bool:this
       64.30 ( 2.18% of base) : 108506.dasm - Microsoft.Build.Construction.SolutionFile:ParseProject(System.String):this
       48.20 ( 1.31% of base) : 9093.dasm - Microsoft.FSharp.Collections.Array3DModule:MapIndexed(Microsoft.FSharp.Core.FSharpFunc`2[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.Byte, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Nullable`1[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],System.Byte[,,]):System.Nullable`1[System.Int32][,,]
       48.20 ( 1.31% of base) : 9092.dasm - Microsoft.FSharp.Collections.Array3DModule:MapIndexed(Microsoft.FSharp.Core.FSharpFunc`2[Int32,__Canon],System.__Canon[,,]):System.Nullable`1[System.Int32][,,]
       46.15 ( 5.37% of base) : 126797.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecute1(System.Runtime.CompilerServices.CallSite,System.__Canon):System.Nullable`1[Int32]
       46.15 ( 5.55% of base) : 126811.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,System.__Canon)
       46.15 ( 5.37% of base) : 126825.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,System.__Canon,System.Nullable`1[Int32])
       32.15 ( 0.97% of base) : 23251.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAnonymousObjectCreation(Microsoft.CodeAnalysis.CSharp.Syntax.AnonymousObjectCreationExpressionSyntax,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
       22.65 ( 2.55% of base) : 126829.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,double,System.Nullable`1[Int32])
       22.65 ( 2.63% of base) : 126815.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,double)
       18.61 ( 4.31% of base) : 109416.dasm - Microsoft.Build.Execution.ProjectInstance:AddTarget(System.String,System.String,System.String,System.String,System.String,System.String,System.String,bool):Microsoft.Build.Execution.ProjectTargetInstance:this
       18.50 ( 6.27% of base) : 53547.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourcePropertySymbol:CloneParametersForAccessor(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
       16.80 ( 0.32% of base) : 50279.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],byref):System.String[]:this

Top method improvements (PerfScoreUnits):
    -63050394783186944.00 (-0.00% of base) : 31119.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,bool,bool,bool,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this
    -1073741824.20 (-1.27% of base) : 159309.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitObjectData(ILCompiler.PEWriter.R2RPEBuilder,ObjectData,int,System.String,ILCompiler.DependencyAnalysis.ObjectNodeSection):this
    -14348.04 (-6.06% of base) : 129332.dasm - System.Net.Http.MultiProxy:TryParseProxyConfigPart(System.ReadOnlySpan`1[Char],bool,byref,byref):bool
    -8051.87 (-0.13% of base) : 91221.dasm - Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser:GetManifestForRegisteredProvider(System.Guid):System.String
    -4097.05 (-0.00% of base) : 159536.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,bool):ObjectData:this
    -2948.60 (-1.71% of base) : 118501.dasm - System.Data.ProviderBase.SchemaMapping:SetupSchemaWithKeyInfo(int,int,bool,System.Data.DataColumn,System.Object):System.Object[]:this
    -1793.10 (-0.08% of base) : 234484.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:.ctor(System.Type,System.Text.Json.Serialization.JsonConverter,System.Text.Json.JsonSerializerOptions):this
     -512.80 (-0.00% of base) : 209293.dasm - SelectManySingleSelectorIterator`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:ToArray():System.Nullable`1[System.Int32][]:this
     -512.60 (-0.51% of base) : 129073.dasm - System.Net.Http.Http3RequestStream:BufferHeaderCollection(System.Net.Http.Headers.HttpHeaders):this
     -512.60 (-0.00% of base) : 209286.dasm - SelectManySingleSelectorIterator`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:ToArray():System.Nullable`1[System.Int32][]:this
     -319.40 (-5.34% of base) : 9036.dasm - Microsoft.FSharp.Collections.Array4DModule:Create(int,int,int,int,System.Numerics.Vector`1[Single]):System.Numerics.Vector`1[System.Single][,,,]
     -243.25 (-0.87% of base) : 77780.dasm - Microsoft.CodeAnalysis.RuleSet:GetEffectiveRuleSet(System.Collections.Generic.HashSet`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):Microsoft.CodeAnalysis.RuleSet:this
     -207.80 (-21.07% of base) : 174128.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:ResolveCustomAttributeTypeDefinitionName(System.String,Internal.TypeSystem.ModuleDesc,bool):Internal.TypeSystem.MetadataType
     -155.65 (-8.64% of base) : 174127.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:GetTypeByCustomAttributeTypeName(Internal.TypeSystem.ModuleDesc,System.String,bool,System.Func`4[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Internal.TypeSystem.ModuleDesc, ILCompiler.TypeSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Internal.TypeSystem.MetadataType, ILCompiler.TypeSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null]]):Internal.TypeSystem.TypeDesc
     -136.57 (-0.13% of base) : 54922.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation:ReportUnusedImports(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):this
     -128.90 (-1.70% of base) : 113291.dasm - <BuildProjects>d__34:MoveNext():this
     -124.20 (-0.71% of base) : 229882.dasm - System.Security.Cryptography.Xml.Utils:GetPropagatedAttributes(System.Xml.XmlElement):System.Security.Cryptography.Xml.CanonicalXmlNodeList
     -112.50 (-4.15% of base) : 80769.dasm - Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter:GenerateSwitchBuckets(int,int):System.Collections.Immutable.ImmutableArray`1[SwitchBucket]:this
     -112.30 (-14.58% of base) : 11863.dasm - Microsoft.FSharp.Primitives.Basics.Array:splitInto$cont@1166(int,System.__Canon[],int,Microsoft.FSharp.Core.Unit):System.__Canon[]
     -111.65 (-3.07% of base) : 67915.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:CombineCandidates(Microsoft.CodeAnalysis.ArrayBuilder`1[CandidateAnalysisResult],CandidateAnalysisResult,int,System.Collections.Immutable.ImmutableArray`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],byref)

Top method regressions (percentages):
    30213.10 ( 7.86% of base) : 171696.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
        2.75 ( 6.67% of base) : 56007.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:Convert(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,bool):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
        1.35 ( 6.35% of base) : 120048.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 169778.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 221157.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 236453.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 198509.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 228176.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 196396.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 197088.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 168864.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 231288.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 240491.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 210354.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 192645.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 155603.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 213173.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 172766.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 193992.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.35 ( 6.35% of base) : 204138.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this

Top method improvements (percentages):
     -207.80 (-21.07% of base) : 174128.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:ResolveCustomAttributeTypeDefinitionName(System.String,Internal.TypeSystem.ModuleDesc,bool):Internal.TypeSystem.MetadataType
       -7.84 (-20.87% of base) : 44457.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
       -7.84 (-20.87% of base) : 51352.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
      -33.30 (-16.62% of base) : 109683.dasm - Microsoft.Build.Execution.ProjectTaskInstance:.ctor(System.String,Microsoft.Build.Construction.ElementLocation,System.String,System.String,System.String,System.String):this
      -29.10 (-15.93% of base) : 126586.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
       -5.24 (-15.14% of base) : 68420.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:FunctionAggregation(Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.VisualBasic.Syntax.FunctionAggregationSyntax
       -5.24 (-15.09% of base) : 68419.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:FunctionAggregation(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.FunctionAggregationSyntax
     -112.30 (-14.58% of base) : 11863.dasm - Microsoft.FSharp.Primitives.Basics.Array:splitInto$cont@1166(int,System.__Canon[],int,Microsoft.FSharp.Core.Unit):System.__Canon[]
       -9.58 (-13.45% of base) : 68421.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:FunctionAggregation(System.String):Microsoft.CodeAnalysis.VisualBasic.Syntax.FunctionAggregationSyntax
      -68.00 (-13.23% of base) : 11864.dasm - Microsoft.FSharp.Primitives.Basics.Array:splitInto$cont@1166(int,System.Byte[],int,Microsoft.FSharp.Core.Unit):System.Byte[][]
       -9.88 (-12.28% of base) : 68546.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlMemberAccessExpression(ushort,Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlNodeSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlMemberAccessExpressionSyntax
       -9.88 (-12.22% of base) : 68218.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:IfDirectiveTrivia(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.IfDirectiveTriviaSyntax
       -4.94 (-12.10% of base) : 69163.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:BadToken(System.String):Microsoft.CodeAnalysis.SyntaxToken
       -9.28 (-11.81% of base) : 68220.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:ElseIfDirectiveTrivia(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.IfDirectiveTriviaSyntax
      -21.10 (-9.64% of base) : 78819.dasm - Microsoft.CodeAnalysis.SyntaxWalker:Visit(Microsoft.CodeAnalysis.SyntaxNode):this
       -4.34 (-9.45% of base) : 68240.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:DateLiteralToken(System.String,System.DateTime):Microsoft.CodeAnalysis.SyntaxToken
       -4.34 (-9.45% of base) : 68232.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:DocumentationCommentLineBreakToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
       -4.34 (-9.45% of base) : 68236.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:InterpolatedStringTextToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
       -4.34 (-9.45% of base) : 68242.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:StringLiteralToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
       -4.34 (-9.45% of base) : 68294.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlEntityLiteralToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken

1403 total methods with Perf Score differences (956 improved, 447 regressed), 372 unchanged.

--------------------------------------------------------------------------------

benchmarks.run.windows.arm64:

Found 368 files with textual diffs.

Summary of Perf Score diffs:
(Lower is better)

Total PerfScoreUnits of base: 174676565.4800002
Total PerfScoreUnits of diff: 174661788.4000001
Total PerfScoreUnits of delta: -14777.08 (-0.01 % of base)
Total relative delta: -1.78
    diff is an improvement.
    relative diff is an improvement.


Top file regressions (PerfScoreUnits):
      459.00 : 38022.dasm (5.26% of base)
      458.60 : 37473.dasm (4.54% of base)
       97.40 : 28671.dasm (0.20% of base)
       64.40 : 1693.dasm (0.02% of base)
       46.50 : 29752.dasm (0.85% of base)
       46.50 : 29761.dasm (0.85% of base)
       36.80 : 29248.dasm (0.94% of base)
       36.80 : 29245.dasm (0.91% of base)
       29.20 : 30768.dasm (0.71% of base)
       26.40 : 27632.dasm (0.60% of base)
       25.00 : 40598.dasm (0.53% of base)
       25.00 : 27622.dasm (0.55% of base)
       20.20 : 29246.dasm (0.42% of base)
       14.05 : 8313.dasm (2.27% of base)
       13.50 : 40559.dasm (0.28% of base)
        5.60 : 4466.dasm (0.48% of base)
        5.10 : 32216.dasm (0.15% of base)
        4.80 : 28503.dasm (5.33% of base)
        4.80 : 28512.dasm (5.32% of base)
        4.00 : 32689.dasm (0.06% of base)

Top file improvements (PerfScoreUnits):
    -11622.20 : 1479.dasm (-1.10% of base)
    -2048.80 : 58.dasm (-2.93% of base)
    -1024.40 : 32456.dasm (-0.00% of base)
     -115.35 : 7780.dasm (-0.81% of base)
     -115.35 : 37161.dasm (-0.81% of base)
      -64.80 : 4497.dasm (-0.51% of base)
      -63.60 : 7240.dasm (-1.12% of base)
      -62.56 : 1862.dasm (-0.66% of base)
      -58.10 : 30935.dasm (-2.35% of base)
      -58.00 : 32637.dasm (-0.17% of base)
      -50.20 : 7812.dasm (-6.13% of base)
      -37.00 : 4351.dasm (-1.47% of base)
      -33.60 : 24702.dasm (-1.31% of base)
      -32.80 : 4659.dasm (-0.27% of base)
      -28.80 : 33950.dasm (-7.68% of base)
      -25.45 : 39615.dasm (-0.66% of base)
      -22.80 : 26299.dasm (-0.67% of base)
      -21.80 : 8543.dasm (-4.55% of base)
      -20.40 : 4326.dasm (-8.00% of base)
      -20.40 : 36273.dasm (-2.20% of base)

245 total files with Perf Score differences (177 improved, 68 regressed), 123 unchanged.

Top method regressions (PerfScoreUnits):
      459.00 ( 5.26% of base) : 38022.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
      458.60 ( 4.54% of base) : 37473.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
       97.40 ( 0.20% of base) : 28671.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       64.40 ( 0.02% of base) : 1693.dasm - System.Reflection.Emit.TypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this
       46.50 ( 0.85% of base) : 29752.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       46.50 ( 0.85% of base) : 29761.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       36.80 ( 0.94% of base) : 29248.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItemTask:this
       36.80 ( 0.91% of base) : 29245.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerViewModel:this
       29.20 ( 0.71% of base) : 30768.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_CollectionsOfPrimitivesFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this
       26.40 ( 0.60% of base) : 27632.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_CampaignSummaryViewModelFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CampaignSummaryViewModel:this
       25.00 ( 0.55% of base) : 27622.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this
       25.00 ( 0.53% of base) : 40598.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_LocationFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.Location:this
       20.20 ( 0.42% of base) : 29246.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItem:this
       14.05 ( 2.27% of base) : 8313.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
       13.50 ( 0.28% of base) : 40559.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
        5.60 ( 0.48% of base) : 4466.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):bool
        5.10 ( 0.15% of base) : 32216.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseNamespaceBody(byref,byref,byref,ushort):this
        4.80 ( 5.33% of base) : 28503.dasm - <>c:<BeginReadInternal>b__38_0(System.Object):int:this
        4.80 ( 5.32% of base) : 28512.dasm - <>c:<BeginWriteInternal>b__48_0(System.Object):int:this
        4.00 ( 0.06% of base) : 32689.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:GetAttributesToBind(Roslyn.Utilities.OneOrMany`1[[Microsoft.CodeAnalysis.SyntaxList`1[[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],short,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Func`2[[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],Microsoft.CodeAnalysis.CSharp.Binder,byref):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this

Top method improvements (PerfScoreUnits):
    -11622.20 (-1.10% of base) : 1479.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo
    -2048.80 (-2.93% of base) : 58.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf8(long,int,long,int,byref,byref):int
    -1024.40 (-0.00% of base) : 32456.dasm - SelectManySingleSelectorIterator`2[__Canon,ReferenceDirective][System.__Canon,Microsoft.CodeAnalysis.ReferenceDirective]:ToArray():Microsoft.CodeAnalysis.ReferenceDirective[]:this
     -115.35 (-0.81% of base) : 7780.dasm - DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
     -115.35 (-0.81% of base) : 37161.dasm - DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
      -64.80 (-0.51% of base) : 4497.dasm - GateThread:GateThreadStart()
      -63.60 (-1.12% of base) : 7240.dasm - System.DateTimeFormat:FormatCustomized(System.DateTime,System.ReadOnlySpan`1[Char],System.Globalization.DateTimeFormatInfo,System.TimeSpan,System.Text.StringBuilder):System.Text.StringBuilder
      -62.56 (-0.66% of base) : 1862.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
      -58.10 (-2.35% of base) : 30935.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,int,int,int,System.Diagnostics.Tracing.EventParameterInfo[]):System.Byte[]:this
      -58.00 (-0.17% of base) : 32637.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[__Canon,__Canon][System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[__Canon],int):this
      -50.20 (-6.13% of base) : 7812.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
      -37.00 (-1.47% of base) : 4351.dasm - System.TimeZoneInfo:TryCreateAdjustmentRules(System.String,byref,byref,byref,int):bool
      -33.60 (-1.31% of base) : 24702.dasm - FractalPerf.Mandelbrot:Render():double:this
      -32.80 (-0.27% of base) : 4659.dasm - WorkerThread:WorkerThreadStart()
      -28.80 (-7.68% of base) : 33950.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this
      -25.45 (-0.66% of base) : 39615.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
      -22.80 (-0.67% of base) : 26299.dasm - BenchmarksGame.BinaryTrees_6:Bench(int,bool):int
      -21.80 (-4.55% of base) : 8543.dasm - System.Uri:Compress(System.Span`1[Char],System.UriParser):int
      -20.40 (-8.00% of base) : 4326.dasm - System.TimeZoneInfo:CreateAdjustmentRuleFromTimeZoneInformation(byref,System.DateTime,System.DateTime,int):AdjustmentRule
      -20.40 (-2.20% of base) : 36273.dasm - System.Numerics.BigIntegerCalculator:PowCore(System.Span`1[UInt32],int,System.ReadOnlySpan`1[UInt32],System.ReadOnlySpan`1[UInt32],System.Span`1[UInt32],int,System.Span`1[UInt32]):System.Span`1[UInt32]

Top method regressions (percentages):
        4.80 ( 5.33% of base) : 28503.dasm - <>c:<BeginReadInternal>b__38_0(System.Object):int:this
        4.80 ( 5.32% of base) : 28512.dasm - <>c:<BeginWriteInternal>b__48_0(System.Object):int:this
      459.00 ( 5.26% of base) : 38022.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
      458.60 ( 4.54% of base) : 37473.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
       14.05 ( 2.27% of base) : 8313.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
        0.65 ( 2.08% of base) : 36315.dasm - System.Text.Tests.Perf_StringBuilder:ctor_string(int):System.Text.StringBuilder:this
        1.30 ( 1.92% of base) : 1581.dasm - System.Reflection.Emit.MethodBuilder:GetMethodSignature():System.Reflection.Emit.SignatureHelper:this
        2.40 ( 1.79% of base) : 28999.dasm - System.Collections.CreateAddAndClear`1[__Canon][System.__Canon]:Array():System.__Canon[]:this
        2.40 ( 1.75% of base) : 36980.dasm - V8.Crypto.BigInteger:copyTo(V8.Crypto.BigInteger):this
        2.40 ( 1.57% of base) : 603.dasm - System.Linq.OrderedEnumerable`1[__Canon][System.__Canon]:ToArray():System.__Canon[]:this
        1.84 ( 1.29% of base) : 31624.dasm - System.Buffers.ReadOnlySequence`1[Byte][System.Byte]:Slice(System.SequencePosition,long):System.Buffers.ReadOnlySequence`1[Byte]:this
        0.65 ( 1.01% of base) : 5114.dasm - System.Text.Json.Serialization.Converters.StringConverter:Write(System.Text.Json.Utf8JsonWriter,System.String,System.Text.Json.JsonSerializerOptions):this
        2.10 ( 0.94% of base) : 26189.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int64TryParse(System.Char[],int,int,byref):int
       36.80 ( 0.94% of base) : 29248.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItemTask:this
        2.80 ( 0.93% of base) : 26363.dasm - ProtoBuf.Serializers.RepeatedSerializers:GetProviderForType(System.Type):System.Reflection.MemberInfo
       36.80 ( 0.91% of base) : 29245.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerViewModel:this
        1.40 ( 0.90% of base) : 33867.dasm - System.Reflection.Metadata.BlobBuilder:Clear():this
       46.50 ( 0.85% of base) : 29752.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
       46.50 ( 0.85% of base) : 29761.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
        1.40 ( 0.82% of base) : 4393.dasm - System.TimeZoneInfo:GetUtcOffsetFromUtc(System.DateTime,System.TimeZoneInfo,byref,byref):System.TimeSpan

Top method improvements (percentages):
      -20.40 (-8.00% of base) : 4326.dasm - System.TimeZoneInfo:CreateAdjustmentRuleFromTimeZoneInformation(byref,System.DateTime,System.DateTime,int):AdjustmentRule
      -14.80 (-7.99% of base) : 5070.dasm - System.Text.Encodings.Web.AllowedBmpCodePointsBitmap:ForbidUndefinedCharacters():this
      -28.80 (-7.68% of base) : 33950.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this
       -6.40 (-6.98% of base) : 1031.dasm - System.Reflection.AssemblyName:Clone():System.Object:this
      -18.00 (-6.79% of base) : 4145.dasm - System.Net.Security.SslStreamPal:InitializeSecurityContext(System.Net.Security.SecureChannel,byref,byref,System.String,System.ReadOnlySpan`1[Byte],byref,System.Net.Security.SslAuthenticationOptions):System.Net.SecurityStatusPal
      -50.20 (-6.13% of base) : 7812.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
       -7.00 (-5.76% of base) : 30309.dasm - State:WriteAny(int,int,System.__Canon,ProtoBuf.Serializers.ISerializer`1[__Canon]):this
       -5.10 (-5.70% of base) : 6526.dasm - System.Net.Security.SslClientAuthenticationOptionsExtensions:ShallowClone(System.Net.Security.SslClientAuthenticationOptions):System.Net.Security.SslClientAuthenticationOptions
       -6.20 (-5.45% of base) : 37849.dasm - System.Threading.Tests.Perf_Timer:SynchronousContention():this
       -6.20 (-5.27% of base) : 38147.dasm - System.Threading.Tests.Perf_Timer:AsynchronousContention():this
      -15.60 (-5.12% of base) : 33504.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this
      -10.00 (-4.74% of base) : 2890.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
      -21.80 (-4.55% of base) : 8543.dasm - System.Uri:Compress(System.Span`1[Char],System.UriParser):int
       -8.20 (-4.20% of base) : 6690.dasm - System.Net.Http.HPack.HPackEncoder:EncodeLiteralHeaderFieldWithoutIndexingToAllocatedArray(int,System.String):System.Byte[]
       -4.60 (-4.09% of base) : 28637.dasm - System.Text.Json.Reader.Tests.Perf_Base64:<Setup>g__Write|6_1(System.Byte[]):System.Byte[]
      -16.20 (-4.02% of base) : 26939.dasm - System.Runtime.Serialization.BitFlagsGenerator:.ctor(int,System.Runtime.Serialization.CodeGenerator,System.String):this
       -4.70 (-3.95% of base) : 25273.dasm - System.Text.Json.JsonReaderHelper:GetUnescapedString(System.ReadOnlySpan`1[Byte],int):System.String
       -7.65 (-3.63% of base) : 33136.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:GetInterfaceInfo():InterfaceInfo:this
      -12.70 (-3.56% of base) : 5765.dasm - System.Collections.Generic.GenericArraySortHelper`2[Int32,Int32][System.Int32,System.Int32]:IntroSort(System.Span`1[Int32],System.Span`1[Int32],int)
       -6.60 (-3.45% of base) : 25416.dasm - Microsoft.Extensions.Logging.EventSource.EventSourceLogger:GetProperties(System.Object):System.Collections.Generic.IReadOnlyList`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[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]]:this

245 total methods with Perf Score differences (177 improved, 68 regressed), 123 unchanged.

--------------------------------------------------------------------------------

libraries.pmi.windows.arm64:

Found 1684 files with textual diffs.

Summary of Perf Score diffs:
(Lower is better)

Total PerfScoreUnits of base: 3.042361441174481E+31
Total PerfScoreUnits of diff: 3.042361441174473E+31
Total PerfScoreUnits of delta: -81064795440157040.00 (-0.00 % of base)
Total relative delta: -7.90
    diff is an improvement.
    relative diff is an improvement.


Top file regressions (PerfScoreUnits):
    32475.78 : 91424.dasm (0.38% of base)
      959.20 : 53220.dasm (0.31% of base)
      868.80 : 212919.dasm (3.41% of base)
      508.40 : 107857.dasm (0.90% of base)
      373.06 : 196967.dasm (1.85% of base)
      212.25 : 123379.dasm (4.39% of base)
      192.00 : 108681.dasm (0.50% of base)
      128.40 : 108709.dasm (4.29% of base)
       81.60 : 148249.dasm (0.31% of base)
       68.40 : 194171.dasm (6.10% of base)
       67.50 : 194185.dasm (6.21% of base)
       67.50 : 194199.dasm (5.93% of base)
       45.10 : 194204.dasm (3.69% of base)
       45.10 : 194186.dasm (4.15% of base)
       45.10 : 194187.dasm (4.15% of base)
       45.10 : 194188.dasm (4.15% of base)
       45.10 : 194202.dasm (3.96% of base)
       45.10 : 194203.dasm (3.92% of base)
       32.80 : 8370.dasm (4.63% of base)
       32.60 : 194176.dasm (2.71% of base)

Top file improvements (PerfScoreUnits):
    -81064793292668928.00 : 31347.dasm (-0.00% of base)
    -2147483648.40 : 142296.dasm (-1.80% of base)
    -21506.35 : 204664.dasm (-7.66% of base)
    -4610.80 : 118599.dasm (-2.08% of base)
    -3470.37 : 154744.dasm (-0.62% of base)
    -2560.40 : 233625.dasm (-0.12% of base)
    -1024.40 : 198974.dasm (-0.00% of base)
    -1024.40 : 198981.dasm (-0.00% of base)
     -272.80 : 223045.dasm (-1.39% of base)
     -257.60 : 157185.dasm (-26.70% of base)
     -256.40 : 154753.dasm (-0.07% of base)
     -237.60 : 113486.dasm (-2.72% of base)
     -212.00 : 157184.dasm (-9.88% of base)
     -185.20 : 23484.dasm (-4.55% of base)
     -183.90 : 154609.dasm (-5.88% of base)
     -181.65 : 53257.dasm (-0.49% of base)
     -160.80 : 212921.dasm (-0.63% of base)
     -160.80 : 8973.dasm (-3.26% of base)
     -160.80 : 8974.dasm (-3.28% of base)
     -160.80 : 8977.dasm (-3.19% of base)

1148 total files with Perf Score differences (836 improved, 312 regressed), 536 unchanged.

Top method regressions (PerfScoreUnits):
    32475.78 ( 0.38% of base) : 91424.dasm - Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser:GetManifestForRegisteredProvider(System.Guid):System.String
      959.20 ( 0.31% of base) : 53220.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:MakeExplicitInterfaceImplementationMap(Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Generic.Dictionary`2[[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
      868.80 ( 3.41% of base) : 212919.dasm - <ReadContentFromAsync>d__10:MoveNext():this
      508.40 ( 0.90% of base) : 107857.dasm - Microsoft.Build.Evaluation.ConditionEvaluator:UpdateConditionedPropertiesTable(System.Collections.Generic.Dictionary`2[[System.String, 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]],System.String,System.String)
      373.06 ( 1.85% of base) : 196967.dasm - System.Linq.Parallel.SortHelper`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:MergeSortCooperatively():this
      212.25 ( 4.39% of base) : 123379.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this
      192.00 ( 0.50% of base) : 108681.dasm - Microsoft.Build.Construction.SolutionFile:ProcessProjectConfigurationSection(System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):this
      128.40 ( 4.29% of base) : 108709.dasm - Microsoft.Build.Construction.SolutionFile:ParseProject(System.String):this
       81.60 ( 0.31% of base) : 148249.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,bool,byref,bool):bool:this
       68.40 ( 6.10% of base) : 194171.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecute1(System.Runtime.CompilerServices.CallSite,System.__Canon):System.Nullable`1[Int32]
       67.50 ( 6.21% of base) : 194185.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,System.__Canon)
       67.50 ( 5.93% of base) : 194199.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,System.__Canon,System.Nullable`1[Int32])
       45.10 ( 4.15% of base) : 194188.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,int)
       45.10 ( 4.15% of base) : 194187.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,short)
       45.10 ( 4.15% of base) : 194186.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,ubyte)
       45.10 ( 3.96% of base) : 194202.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,int,System.Nullable`1[Int32])
       45.10 ( 3.69% of base) : 194204.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,System.Numerics.Vector`1[Single],System.Nullable`1[Int32])
       45.10 ( 3.92% of base) : 194203.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,double,System.Nullable`1[Int32])
       32.80 ( 4.63% of base) : 8370.dasm - Microsoft.FSharp.Collections.SetTreeModule:compareStacks(System.Collections.Generic.IComparer`1[__Canon],Microsoft.FSharp.Collections.FSharpList`1[__Canon],Microsoft.FSharp.Collections.FSharpList`1[__Canon]):int
       32.60 ( 2.71% of base) : 194176.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecute1(System.Runtime.CompilerServices.CallSite,System.Numerics.Vector`1[Single]):System.Nullable`1[Int32]

Top method improvements (PerfScoreUnits):
    -81064793292668928.00 (-0.00% of base) : 31347.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,bool,bool,bool,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this
    -2147483648.40 (-1.80% of base) : 142296.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitObjectData(ILCompiler.PEWriter.R2RPEBuilder,ObjectData,int,System.String,ILCompiler.DependencyAnalysis.ObjectNodeSection):this
    -21506.35 (-7.66% of base) : 204664.dasm - System.Net.Http.MultiProxy:TryParseProxyConfigPart(System.ReadOnlySpan`1[Char],bool,byref,byref):bool
    -4610.80 (-2.08% of base) : 118599.dasm - System.Data.ProviderBase.SchemaMapping:SetupSchemaWithKeyInfo(int,int,bool,System.Data.DataColumn,System.Object):System.Object[]:this
    -3470.37 (-0.62% of base) : 154744.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
    -2560.40 (-0.12% of base) : 233625.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:.ctor(System.Type,System.Text.Json.Serialization.JsonConverter,System.Text.Json.JsonSerializerOptions):this
    -1024.40 (-0.00% of base) : 198974.dasm - SelectManySingleSelectorIterator`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:ToArray():System.Nullable`1[System.Int32][]:this
    -1024.40 (-0.00% of base) : 198981.dasm - SelectManySingleSelectorIterator`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:ToArray():System.Nullable`1[System.Int32][]:this
     -272.80 (-1.39% of base) : 223045.dasm - System.Security.Cryptography.Xml.Utils:GetPropagatedAttributes(System.Xml.XmlElement):System.Security.Cryptography.Xml.CanonicalXmlNodeList
     -257.60 (-26.70% of base) : 157185.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:ResolveCustomAttributeTypeDefinitionName(System.String,Internal.TypeSystem.ModuleDesc,bool):Internal.TypeSystem.MetadataType
     -256.40 (-0.07% of base) : 154753.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindingScore(System.Reflection.ParameterInfo[],System.Int32[],System.Type[],bool,int):int:this
     -237.60 (-2.72% of base) : 113486.dasm - <BuildProjects>d__34:MoveNext():this
     -212.00 (-9.88% of base) : 157184.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:GetTypeByCustomAttributeTypeName(Internal.TypeSystem.ModuleDesc,System.String,bool,System.Func`4[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Internal.TypeSystem.ModuleDesc, ILCompiler.TypeSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Internal.TypeSystem.MetadataType, ILCompiler.TypeSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null]]):Internal.TypeSystem.TypeDesc
     -185.20 (-4.55% of base) : 23484.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAnonymousObjectCreation(Microsoft.CodeAnalysis.CSharp.Syntax.AnonymousObjectCreationExpressionSyntax,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
     -183.90 (-5.88% of base) : 154609.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:GetArrayData(System.Array,System.Type,int,int,int):this
     -181.65 (-0.49% of base) : 53257.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:AddWithEventsHookupConstructorsIfNeeded(MembersAndInitializersBuilder,Microsoft.CodeAnalysis.DiagnosticBag):this
     -160.80 (-0.63% of base) : 212921.dasm - <ReadContentFromAsync>d__8:MoveNext():this
     -160.80 (-3.26% of base) : 8973.dasm - Microsoft.FSharp.Collections.Array3DModule:Map(Microsoft.FSharp.Core.FSharpFunc`2[__Canon,Nullable`1],System.__Canon[,,]):System.Nullable`1[System.Int32][,,]
     -160.80 (-3.28% of base) : 8974.dasm - Microsoft.FSharp.Collections.Array3DModule:Map(Microsoft.FSharp.Core.FSharpFunc`2[Byte,Nullable`1],System.Byte[,,]):System.Nullable`1[System.Int32][,,]
     -160.80 (-3.19% of base) : 8977.dasm - Microsoft.FSharp.Collections.Array3DModule:MapIndexed(Microsoft.FSharp.Core.FSharpFunc`2[Int32,__Canon],System.__Canon[,,]):System.Nullable`1[System.Int32][,,]

Top method regressions (percentages):
        5.10 ( 7.92% of base) : 56231.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:Convert(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,bool):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
        4.85 ( 6.75% of base) : 226834.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:CircularCopy(System.ReadOnlySpan`1[Byte],System.Span`1[Byte])
        4.85 ( 6.75% of base) : 221909.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:CircularCopy(System.ReadOnlySpan`1[Byte],System.Span`1[Byte])
       67.50 ( 6.21% of base) : 194185.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,System.__Canon)
       68.40 ( 6.10% of base) : 194171.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecute1(System.Runtime.CompilerServices.CallSite,System.__Canon):System.Nullable`1[Int32]
       67.50 ( 5.93% of base) : 194199.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,System.__Canon,System.Nullable`1[Int32])
        1.30 ( 4.90% of base) : 120113.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 152833.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 183525.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 180088.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 214324.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 235572.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 155818.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 151954.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 228234.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 228428.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 181518.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 176988.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 190314.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
        1.30 ( 4.90% of base) : 200013.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this

Top method improvements (percentages):
     -257.60 (-26.70% of base) : 157185.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:ResolveCustomAttributeTypeDefinitionName(System.String,Internal.TypeSystem.ModuleDesc,bool):Internal.TypeSystem.MetadataType
       -7.10 (-18.39% of base) : 69385.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:BadToken(System.String):Microsoft.CodeAnalysis.SyntaxToken
       -7.10 (-16.75% of base) : 68466.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:CharacterLiteralToken(System.String,ushort):Microsoft.CodeAnalysis.SyntaxToken
       -7.10 (-16.75% of base) : 68462.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:DateLiteralToken(System.String,System.DateTime):Microsoft.CodeAnalysis.SyntaxToken
       -7.10 (-16.75% of base) : 68454.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:DocumentationCommentLineBreakToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
       -7.10 (-16.75% of base) : 68458.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:InterpolatedStringTextToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
       -7.10 (-16.75% of base) : 68464.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:StringLiteralToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
       -7.10 (-16.75% of base) : 68516.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlEntityLiteralToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
       -7.10 (-16.75% of base) : 68512.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlNameToken(System.String,ushort):Microsoft.CodeAnalysis.SyntaxToken
       -7.10 (-16.75% of base) : 68514.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlTextLiteralToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
       -5.82 (-16.33% of base) : 208685.dasm - <>c:<GetRequestStreamAsync>b__67_1(System.AsyncCallback,System.Object):System.IAsyncResult:this
       -5.82 (-16.33% of base) : 208687.dasm - <>c:<GetResponseAsync>b__68_1(System.AsyncCallback,System.Object):System.IAsyncResult:this
     -140.40 (-15.95% of base) : 11707.dasm - Microsoft.FSharp.Primitives.Basics.Array:splitInto$cont@1166(int,System.__Canon[],int,Microsoft.FSharp.Core.Unit):System.__Canon[]
       -7.10 (-15.07% of base) : 68456.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlTextToken(ushort,System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
       -7.10 (-13.20% of base) : 68460.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:DecimalLiteralToken(System.String,int,System.Decimal):Microsoft.CodeAnalysis.SyntaxToken
      -71.60 (-12.39% of base) : 15072.dasm - HashCompare:check0@965(GenericComparer,System.Array,System.Array,long,long,long,long,long,long,long):int
      -71.60 (-11.46% of base) : 14998.dasm - HashCompare:check0@1416-1(bool,System.Collections.IEqualityComparer,System.Array,System.Array,long,long,long,long,long,long,long):bool
      -41.20 (-11.30% of base) : 40503.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this
       -2.80 (-10.73% of base) : 44684.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
       -2.80 (-10.73% of base) : 51577.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this

1148 total methods with Perf Score differences (836 improved, 312 regressed), 536 unchanged.

--------------------------------------------------------------------------------

Personally, it seems to me that the regressions here are too numerous to ignore, and there is no easy fix, so we may yet be better off with the quirk.

@BruceForstall
Copy link
Member

but this file does not seem to be present in the downloaded artifacts. Maybe I'm looking at the wrong place? Any idea @kunalspathak / @BruceForstall?

dotnet/jitutils#347 added the logic to save files. Looks like we save the "top files" diffs, but not the files corresponding to the "top methods", which would also be useful (maybe more useful?). If the DisplayMethodMetric function could be augmented to appropriately set RetainFile, this could be done.

@kunalspathak
Copy link
Member

Haven't seen deeply, but I see more resolution movs being added for critical edges. Also, here is another type of regression for linux/arm64/crossgen2:

@@ -1,3 +1,4 @@
-            adrp    x28, [HIGH RELOC #0xd1ffab1e]      // function address
-            add     x28, x28, [LOW RELOC #0xd1ffab1e]
-                                               ;; bbWeight=1    PerfScore 33.50
\ No newline at end of file
+            adrp    x0, [HIGH RELOC #0xd1ffab1e]      // function address
+            add     x0, x0, [LOW RELOC #0xd1ffab1e]
+            mov     x28, x0
+                                               ;; bbWeight=1    PerfScore 34.00
\ No newline at end of file

here are too numerous to ignore

I agree.

Copy link
Member

@jakobbotsch jakobbotsch left a comment

Choose a reason for hiding this comment

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

LGTM, overall improvement and the regressions look minor now. @kunalspathak want to give the diffs another quick lookover now?

Copy link
Member

@kunalspathak kunalspathak left a comment

Choose a reason for hiding this comment

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

LGTM. I have suggested to remove the reference of "previous behavior" in a follow up PR.

src/coreclr/jit/copyprop.cpp Show resolved Hide resolved
@kunalspathak kunalspathak merged commit d21a17f into dotnet:main Mar 2, 2022
@SingleAccretion SingleAccretion deleted the Copy-Propagation-No-Lhs-VN branch March 6, 2022 20:56
@ghost ghost locked as resolved and limited conversation to collaborators Apr 6, 2022
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 community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants