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

[JitDiff X64] xtqqczze/dotnet-runtime/ThrowArgumentOutOfRangeExceptionExceptionArgumentLength #557

Open
MihuBot opened this issue Jul 25, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Jul 25, 2024

Job completed in 14 minutes.

Diffs

Diffs
Found 278 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 39659317
Total bytes of diff: 39654405
Total bytes of delta: -4912 (-0.01 % of base)
Total relative delta: -29.60
    diff is an improvement.
    relative diff is an improvement.


Top file improvements (bytes):
       -1968 : System.Text.Json.dasm (-0.15 % of base)
       -1234 : System.Private.CoreLib.dasm (-0.02 % of base)
        -390 : System.Private.Xml.dasm (-0.01 % of base)
        -314 : System.Net.Http.dasm (-0.04 % of base)
        -210 : System.Net.Security.dasm (-0.09 % of base)
        -169 : System.Formats.Cbor.dasm (-0.36 % of base)
        -145 : System.IO.Hashing.dasm (-0.57 % of base)
         -98 : Microsoft.Extensions.Configuration.Json.dasm (-1.73 % of base)
         -82 : System.Reflection.Emit.dasm (-0.07 % of base)
         -76 : System.Net.WebSockets.dasm (-0.07 % of base)
         -72 : System.Net.Primitives.dasm (-0.08 % of base)
         -28 : System.Security.Cryptography.dasm (-0.00 % of base)
         -22 : System.Private.DataContractSerialization.dasm (-0.00 % of base)
         -22 : System.Net.NetworkInformation.dasm (-0.04 % of base)
         -18 : System.Console.dasm (-0.02 % of base)
         -18 : System.Collections.dasm (-0.00 % of base)
         -18 : System.Formats.Asn1.dasm (-0.02 % of base)
         -18 : System.Net.Ping.dasm (-0.03 % of base)
         -10 : System.Formats.Tar.dasm (-0.01 % of base)

19 total files with Code Size differences (19 improved, 0 regressed), 240 unchanged.

Top method improvements (bytes):
        -302 (-5.21 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:TryGetValue(int,byref):ubyte:this (FullOpts) (15 methods)
         -40 (-5.12 % of base) : Microsoft.Extensions.Configuration.Json.dasm - Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:VisitObjectElement(System.Text.Json.JsonElement):this (FullOpts)
         -39 (-2.20 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:TryHandleReferenceFromJsonElement(byref,byref,System.Text.Json.JsonElement,byref):ubyte (FullOpts)
         -36 (-4.97 % of base) : Microsoft.Extensions.Configuration.Json.dasm - Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:VisitArrayElement(System.Text.Json.JsonElement):this (FullOpts)
         -36 (-0.97 % of base) : System.Text.Json.dasm - System.Text.Json.JsonElement:DeepEquals(System.Text.Json.JsonElement,System.Text.Json.JsonElement):ubyte (FullOpts)
         -36 (-3.81 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonArray:InitializeList():System.Collections.Generic.List`1[System.Text.Json.Nodes.JsonNode]:this (FullOpts)
         -36 (-3.76 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonObject:InitializeDictionary():System.Collections.Generic.OrderedDictionary`2[System.String,System.Text.Json.Nodes.JsonNode]:this (FullOpts)
         -34 (-15.32 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash32+State:Complete(int,System.ReadOnlySpan`1[ubyte]):uint:this (FullOpts)
         -28 (-3.79 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.CustomAttributeInfo:DecodeCustomAttributeValue(System.Type,System.ReadOnlySpan`1[ubyte],int,byref):System.Object (FullOpts)
         -26 (-7.90 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonArray:Create(System.Text.Json.JsonElement,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonArray (FullOpts)
         -26 (-7.90 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonObject:Create(System.Text.Json.JsonElement,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonObject (FullOpts)
         -22 (-3.01 % of base) : Microsoft.Extensions.Configuration.Json.dasm - Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:ParseStream(System.IO.Stream):System.Collections.Generic.Dictionary`2[System.String,System.String]:this (FullOpts)
         -22 (-6.83 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Parser:TryParseAsSpecialFloatingPoint[double](System.ReadOnlySpan`1[ubyte],double,double,double,byref,byref):ubyte (FullOpts)
         -22 (-6.13 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Parser:TryParseAsSpecialFloatingPoint[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[ubyte],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],byref,byref):ubyte (FullOpts)
         -22 (-8.37 % of base) : System.Private.CoreLib.dasm - System.Decimal:ToDecimal(System.ReadOnlySpan`1[ubyte]):System.Decimal (FullOpts)
         -22 (-0.63 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (FullOpts)
         -22 (-8.49 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborWriter:WriteHalf(System.Half):this (FullOpts)
         -22 (-1.40 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ProcessSettingsFrame(System.Net.Http.Http2Connection+FrameHeader,ubyte):this (FullOpts)
         -22 (-1.01 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<SetupAsync>d__54:MoveNext():this (FullOpts)
         -22 (-9.57 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this (FullOpts)
         -22 (-10.73 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:GetHashCode():int:this (FullOpts)
         -22 (-10.84 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.PhysicalAddress:GetHashCode():int:this (FullOpts)
         -22 (-11.17 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:TryGetSniFromServerNameList(System.ReadOnlySpan`1[ubyte],byref):ubyte (FullOpts)
         -22 (-7.31 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket:WriteHeader(ubyte,ubyte[],System.ReadOnlySpan`1[ubyte],ubyte,ubyte,ubyte):int (FullOpts)
         -22 (-2.15 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.LocalBuilder):this (FullOpts)
         -22 (-9.24 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeILGenerator:InternalEmit(System.Reflection.Emit.OpCode):this (FullOpts)
         -22 (-5.88 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.SignatureHelper:AddData(int):this (FullOpts)
         -22 (-2.20 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.DataContract:ComputeHash(ubyte[]):ubyte[] (FullOpts)
         -22 (-0.87 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (FullOpts)
         -22 (-9.87 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:TryGetNamedPropertyValue(int,System.ReadOnlySpan`1[ubyte],byref):ubyte:this (FullOpts)
         -22 (-6.29 % of base) : System.Text.Json.dasm - System.Text.Json.JsonElement:EnumerateArray():System.Text.Json.JsonElement+ArrayEnumerator:this (FullOpts)
         -22 (-6.29 % of base) : System.Text.Json.dasm - System.Text.Json.JsonElement:EnumerateObject():System.Text.Json.JsonElement+ObjectEnumerator:this (FullOpts)
         -22 (-8.84 % of base) : System.Text.Json.dasm - System.Text.Json.JsonElement:ValueEquals(System.ReadOnlySpan`1[ubyte]):ubyte:this (FullOpts)
         -22 (-9.05 % of base) : System.Text.Json.dasm - System.Text.Json.JsonElement:ValueEquals(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -22 (-10.58 % of base) : System.Text.Json.dasm - System.Text.Json.JsonElement:WritePropertyNameTo(System.Text.Json.Utf8JsonWriter):this (FullOpts)
         -22 (-12.36 % of base) : System.Text.Json.dasm - System.Text.Json.JsonElement+ArrayEnumerator:MoveNext():ubyte:this (FullOpts)
         -22 (-12.15 % of base) : System.Text.Json.dasm - System.Text.Json.JsonElement+ObjectEnumerator:MoveNext():ubyte:this (FullOpts)
         -22 (-7.97 % of base) : System.Text.Json.dasm - System.Text.Json.JsonProperty:get_DebuggerDisplay():System.String:this (FullOpts)
         -22 (-5.82 % of base) : System.Text.Json.dasm - System.Text.Json.JsonProperty:WriteTo(System.Text.Json.Utf8JsonWriter):this (FullOpts)
         -22 (-8.66 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[System.Text.Json.JsonElement],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue (FullOpts)
         -22 (-9.36 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonValue:Create(System.Text.Json.JsonElement,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue (FullOpts)
         -22 (-8.66 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonValue:CreateFromElement(byref,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue (FullOpts)
         -22 (-7.53 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonValueOfElement:TryGetValue[double](byref):ubyte:this (FullOpts)
         -22 (-7.64 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonValueOfElement:TryGetValue[int](byref):ubyte:this (FullOpts)
         -22 (-7.61 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonValueOfElement:TryGetValue[long](byref):ubyte:this (FullOpts)
         -22 (-7.53 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonValueOfElement:TryGetValue[short](byref):ubyte:this (FullOpts)
         -22 (-7.48 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonValueOfElement:TryGetValue[System.Nullable`1[int]](byref):ubyte:this (FullOpts)
         -22 (-7.61 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonValueOfElement:TryGetValue[ubyte](byref):ubyte:this (FullOpts)
         -22 (-2.40 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref) (FullOpts)
         -22 (-2.78 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:ValueAsLong():long:this (FullOpts)
         -21 (-1.14 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:ValueAsString(int):System.String:this (FullOpts)
         -20 (-5.14 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:InvariantCreateSortKeyOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]) (FullOpts)
         -20 (-5.54 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+MetadataDb:CopySegment(int,int):System.Text.Json.JsonDocument+MetadataDb:this (FullOpts)
         -19 (-5.52 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Parser:TryParseAsSpecialFloatingPoint[ubyte](System.ReadOnlySpan`1[ubyte],ubyte,ubyte,ubyte,byref,byref):ubyte (FullOpts)
         -19 (-4.27 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.DynamicILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.SignatureHelper):this (FullOpts)
         -19 (-13.87 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:GetEndIndex(int,ubyte):int:this (FullOpts)
         -19 (-2.21 % of base) : System.Text.Json.dasm - System.Text.Json.JsonElement:<DeepEquals>g__UnorderedObjectDeepEquals|59_0(System.Text.Json.JsonElement+ObjectEnumerator,System.Text.Json.JsonElement+ObjectEnumerator,int):ubyte (FullOpts)
         -18 (-5.42 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Parser:TryParseAsSpecialFloatingPoint[int](System.ReadOnlySpan`1[ubyte],int,int,int,byref,byref):ubyte (FullOpts)
         -18 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Parser:TryParseAsSpecialFloatingPoint[long](System.ReadOnlySpan`1[ubyte],long,long,long,byref,byref):ubyte (FullOpts)
         -18 (-5.16 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Parser:TryParseAsSpecialFloatingPoint[short](System.ReadOnlySpan`1[ubyte],short,short,short,byref,byref):ubyte (FullOpts)
         -18 (-2.21 % of base) : System.Collections.dasm - System.Collections.BitArray:.ctor(ubyte[]):this (FullOpts) (2 methods)
         -18 (-15.65 % of base) : System.Private.CoreLib.dasm - System.Decimal:GetBytes(byref,System.Span`1[ubyte]) (FullOpts)
         -18 (-4.04 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.BMPEncoding:GetChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],ubyte):int:this (FullOpts)
         -18 (-2.74 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborReader:DecodeUnsignedInteger(System.Formats.Cbor.CborInitialByte,System.ReadOnlySpan`1[ubyte],byref):ulong:this (FullOpts)
         -18 (-2.36 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborReader:ReadDouble():double:this (FullOpts)
         -18 (-2.77 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborReader:ReadSingle():float:this (FullOpts)
         -18 (-10.78 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborWriter:WriteDoubleCore(double):this (FullOpts)
         -18 (-10.98 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborWriter:WriteSingleCore(float):this (FullOpts)
         -18 (-2.93 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborWriter:WriteUnsignedInteger(ubyte,ulong):this (FullOpts)
         -18 (-4.97 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash64+State:Complete(long,System.ReadOnlySpan`1[ubyte]):ulong:this (FullOpts)
         -18 (-1.95 % of base) : System.Private.CoreLib.dasm - System.IO.StreamReader:DetectEncoding():this (FullOpts)
         -18 (-2.09 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ProcessPingFrame(System.Net.Http.Http2Connection+FrameHeader):this (FullOpts)
         -18 (-2.06 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ProcessRstStreamFrame(System.Net.Http.Http2Connection+FrameHeader):this (FullOpts)
         -18 (-1.87 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ProcessWindowUpdateFrame(System.Net.Http.Http2Connection+FrameHeader):this (FullOpts)
         -18 (-1.59 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ReadGoAwayFrame(System.Net.Http.Http2Connection+FrameHeader):System.ValueTuple`2[int,int]:this (FullOpts)
         -18 (-5.68 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<>c:<SendEndStreamAsync>b__99_0(System.ValueTuple`2[System.Net.Http.Http2Connection,int],System.Memory`1[ubyte]):ubyte:this (FullOpts)
         -18 (-0.72 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<>c:<SendHeadersAsync>b__97_0(System.ValueTuple`5[System.Net.Http.Http2Connection,System.Net.Http.Http2Connection+Http2Stream,System.ReadOnlyMemory`1[ubyte],ubyte,ubyte],System.Memory`1[ubyte]):ubyte:this (FullOpts)
         -18 (-2.41 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<>c:<SendPingAsync>b__84_0(System.ValueTuple`3[System.Net.Http.Http2Connection,long,ubyte],System.Memory`1[ubyte]):ubyte:this (FullOpts)
         -18 (-2.14 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<>c:<SendRstStreamAsync>b__85_0(System.ValueTuple`3[System.Net.Http.Http2Connection,int,int],System.Memory`1[ubyte]):ubyte:this (FullOpts)
         -18 (-5.92 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<>c:<SendSettingsAckAsync>b__83_0(System.Net.Http.Http2Connection,System.Memory`1[ubyte]):ubyte:this (FullOpts)
         -18 (-1.61 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<>c:<SendStreamDataAsync>b__98_0(System.ValueTuple`4[System.Net.Http.Http2Connection,int,System.ReadOnlyMemory`1[ubyte],ubyte],System.Memory`1[ubyte]):ubyte:this (FullOpts)
         -18 (-2.16 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<>c:<SendWindowUpdateAsync>b__100_0(System.ValueTuple`3[System.Net.Http.Http2Connection,int,int],System.Memory`1[ubyte]):ubyte:this (FullOpts)
         -18 (-13.53 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+FrameHeader:ReadFrom(System.ReadOnlySpan`1[ubyte]):System.Net.Http.Http2Connection+FrameHeader (FullOpts)
         -18 (-18.95 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+FrameHeader:WriteTo(System.Span`1[ubyte],int,ubyte,ubyte,int) (FullOpts)
         -18 (-0.66 % of base) : System.Net.Http.dasm - System.Net.Http.SocksHelper+<EstablishSocks4TunnelAsync>d__15:MoveNext():this (FullOpts)
         -18 (-0.35 % of base) : System.Net.Http.dasm - System.Net.Http.SocksHelper+<EstablishSocks5TunnelAsync>d__14:MoveNext():this (FullOpts)
         -18 (-16.36 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this (FullOpts)
         -18 (-3.17 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+ManagedNtlmNegotiateAuthenticationPal:CalculateSignature(System.ReadOnlySpan`1[ubyte],uint,System.ReadOnlySpan`1[ubyte],System.Net.Security.RC4,System.Span`1[ubyte]):this (FullOpts)
         -18 (-1.79 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+ManagedNtlmNegotiateAuthenticationPal:ProcessTargetInfo(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte[]:this (FullOpts)
         -18 (-1.80 % of base) : System.Net.Ping.dasm - System.Net.NetworkInformation.Ping:TryGetPingReply(System.Net.NetworkInformation.Ping+SocketConfig,ubyte[],int,long,byref,byref):ubyte (FullOpts)
         -18 (-20.22 % of base) : System.Net.Security.dasm - System.Net.Security.MD4:Decode(System.Span`1[uint],System.ReadOnlySpan`1[ubyte]) (FullOpts)
         -18 (-18.56 % of base) : System.Net.Security.dasm - System.Net.Security.MD4:Encode(System.Span`1[ubyte],System.ReadOnlySpan`1[uint]) (FullOpts)
         -18 (-20.22 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:GetSniFromHostNameStruct(System.ReadOnlySpan`1[ubyte],byref):System.String (FullOpts)
         -18 (-15.25 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:GetSniFromServerName(System.ReadOnlySpan`1[ubyte],byref):System.String (FullOpts)
         -18 (-7.14 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:TryParseClientHello(System.ReadOnlySpan`1[ubyte],byref,int,System.Net.Security.TlsFrameHelper+HelloExtensionCallback):ubyte (FullOpts)
         -18 (-2.80 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:TryParseHelloExtensions(System.ReadOnlySpan`1[ubyte],byref,int,System.Net.Security.TlsFrameHelper+HelloExtensionCallback):ubyte (FullOpts)
         -18 (-9.84 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:TryParseServerHello(System.ReadOnlySpan`1[ubyte],byref,int,System.Net.Security.TlsFrameHelper+HelloExtensionCallback):ubyte (FullOpts)
         -18 (-1.79 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket:TryParseMessageHeaderFromReceiveBuffer(byref):System.String:this (FullOpts)
         -18 (-0.54 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<HandleReceivedCloseAsync>d__66:MoveNext():this (FullOpts)
         -18 (-0.68 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<SendCloseFrameAsync>d__73:MoveNext():this (FullOpts)

Top method improvements (percentages):
         -10 (-31.25 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+ManagedNtlmNegotiateAuthenticationPal:GetFieldOffset(System.Net.NegotiateAuthenticationPal+ManagedNtlmNegotiateAuthenticationPal+MessageField):int (FullOpts)
         -18 (-24.00 % of base) : System.Console.dasm - System.TermInfo+Database:ReadInt32(ubyte[],int):int (FullOpts)
         -18 (-24.00 % of base) : System.Private.Xml.dasm - System.Xml.BinXmlSqlDecimal:UIntFromByteArray(ubyte[],int):uint (FullOpts)
         -18 (-23.38 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo:TZif_ToInt32(ubyte[],int):int (FullOpts)
         -18 (-23.08 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo:TZif_ToInt64(ubyte[],int):long (FullOpts)
         -18 (-22.78 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:GetInt32(int):int:this (FullOpts)
         -18 (-22.78 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:GetUInt32(int):uint:this (FullOpts)
         -18 (-22.50 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:GetInt64(int):long:this (FullOpts)
         -18 (-22.50 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:GetUInt16(int):ushort:this (FullOpts)
         -18 (-22.50 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:GetUInt64(int):ulong:this (FullOpts)
         -18 (-22.22 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+MetadataDb:SetLength(int,int):this (FullOpts)
         -18 (-22.22 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:GetDouble(int):double:this (FullOpts)
         -18 (-22.22 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:GetInt16(int):short:this (FullOpts)
         -18 (-22.22 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:GetSingle(int):float:this (FullOpts)
         -18 (-20.69 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeILGenerator:PutInteger4(int):this (FullOpts)
         -18 (-20.69 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+MetadataDb:GetJsonTokenType(int):ubyte:this (FullOpts)
         -18 (-20.22 % of base) : System.Net.Security.dasm - System.Net.Security.MD4:Decode(System.Span`1[uint],System.ReadOnlySpan`1[ubyte]) (FullOpts)
         -18 (-20.22 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:GetSniFromHostNameStruct(System.ReadOnlySpan`1[ubyte],byref):System.String (FullOpts)
         -18 (-19.15 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+MetadataDb:SetHasComplexChildren(int):this (FullOpts)
         -18 (-18.95 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+FrameHeader:WriteTo(System.Span`1[ubyte],int,ubyte,ubyte,int) (FullOpts)
         -18 (-18.75 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+MetadataDb:SetNumberOfRows(int,int):this (FullOpts)
         -18 (-18.56 % of base) : System.Net.Security.dasm - System.Net.Security.MD4:Encode(System.Span`1[ubyte],System.ReadOnlySpan`1[uint]) (FullOpts)
         -18 (-16.98 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+MetadataDb:Get(int):System.Text.Json.JsonDocument+DbRow:this (FullOpts)
         -18 (-16.82 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:GetJsonTokenType(int):ubyte:this (FullOpts)
         -18 (-16.51 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+StackRowStack:Pop():System.Text.Json.JsonDocument+StackRow:this (FullOpts)
         -18 (-16.36 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this (FullOpts)
         -18 (-16.36 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:ValueIsEscaped(int,ubyte):ubyte:this (FullOpts)
          -5 (-16.13 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadInt32LittleEndian(System.ReadOnlySpan`1[ubyte]):int (FullOpts)
          -5 (-16.13 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadUInt32LittleEndian(System.ReadOnlySpan`1[ubyte]):uint (FullOpts)
          -5 (-16.13 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt32LittleEndian(System.Span`1[ubyte],int) (FullOpts)
          -5 (-16.13 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteUInt32LittleEndian(System.Span`1[ubyte],uint) (FullOpts)
          -5 (-16.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[ubyte](System.ReadOnlySpan`1[ubyte]):byref (FullOpts)
          -5 (-16.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[ubyte](System.Span`1[ubyte]):byref (FullOpts)
          -5 (-16.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:Read[int](System.ReadOnlySpan`1[ubyte]):int (FullOpts)
          -5 (-16.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:Read[ubyte](System.ReadOnlySpan`1[ubyte]):ubyte (FullOpts)
         -18 (-15.65 % of base) : System.Private.CoreLib.dasm - System.Decimal:GetBytes(byref,System.Span`1[ubyte]) (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadHalfLittleEndian(System.ReadOnlySpan`1[ubyte]):System.Half (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadInt64LittleEndian(System.ReadOnlySpan`1[ubyte]):long (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadIntPtrLittleEndian(System.ReadOnlySpan`1[ubyte]):long (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadUInt16LittleEndian(System.ReadOnlySpan`1[ubyte]):ushort (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadUInt64LittleEndian(System.ReadOnlySpan`1[ubyte]):ulong (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadUIntPtrLittleEndian(System.ReadOnlySpan`1[ubyte]):ulong (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteHalfLittleEndian(System.Span`1[ubyte],System.Half) (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16LittleEndian(System.Span`1[ubyte],short) (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt64LittleEndian(System.Span`1[ubyte],long) (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteIntPtrLittleEndian(System.Span`1[ubyte],long) (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteUInt16LittleEndian(System.Span`1[ubyte],ushort) (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteUInt64LittleEndian(System.Span`1[ubyte],ulong) (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteUIntPtrLittleEndian(System.Span`1[ubyte],ulong) (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[double](System.ReadOnlySpan`1[ubyte]):byref (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[double](System.Span`1[ubyte]):byref (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[int](System.ReadOnlySpan`1[ubyte]):byref (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[int](System.Span`1[ubyte]):byref (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[long](System.ReadOnlySpan`1[ubyte]):byref (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[long](System.Span`1[ubyte]):byref (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[short](System.ReadOnlySpan`1[ubyte]):byref (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[short](System.Span`1[ubyte]):byref (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[ubyte]):byref (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsRef[System.Numerics.Vector`1[float]](System.Span`1[ubyte]):byref (FullOpts)
          -5 (-15.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:Read[long](System.ReadOnlySpan`1[ubyte]):long (FullOpts)
         -34 (-15.32 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash32+State:Complete(int,System.ReadOnlySpan`1[ubyte]):uint:this (FullOpts)
         -18 (-15.25 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:GetSniFromServerName(System.ReadOnlySpan`1[ubyte],byref):System.String (FullOpts)
          -5 (-15.15 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadDoubleLittleEndian(System.ReadOnlySpan`1[ubyte]):double (FullOpts)
          -5 (-15.15 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadInt16LittleEndian(System.ReadOnlySpan`1[ubyte]):short (FullOpts)
          -5 (-15.15 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadInt32BigEndian(System.ReadOnlySpan`1[ubyte]):int (FullOpts)
          -5 (-15.15 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadSingleLittleEndian(System.ReadOnlySpan`1[ubyte]):float (FullOpts)
          -5 (-15.15 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadUInt32BigEndian(System.ReadOnlySpan`1[ubyte]):uint (FullOpts)
          -5 (-15.15 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteDoubleLittleEndian(System.Span`1[ubyte],double) (FullOpts)
          -5 (-15.15 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteSingleLittleEndian(System.Span`1[ubyte],float) (FullOpts)
          -5 (-15.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:Read[double](System.ReadOnlySpan`1[ubyte]):double (FullOpts)
          -5 (-15.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:Read[short](System.ReadOnlySpan`1[ubyte]):short (FullOpts)
          -5 (-15.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:Write[int](System.Span`1[ubyte],byref) (FullOpts)
          -5 (-15.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:Write[ubyte](System.Span`1[ubyte],byref) (FullOpts)
         -18 (-14.88 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+StackRowStack:Push(System.Text.Json.JsonDocument+StackRow):this (FullOpts)
         -18 (-14.75 % of base) : System.Text.Json.dasm - System.Text.Json.JsonElement:get_TokenType():ubyte:this (FullOpts)
          -5 (-14.71 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadInt64BigEndian(System.ReadOnlySpan`1[ubyte]):long (FullOpts)
          -5 (-14.71 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadIntPtrBigEndian(System.ReadOnlySpan`1[ubyte]):long (FullOpts)
          -5 (-14.71 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadUInt64BigEndian(System.ReadOnlySpan`1[ubyte]):ulong (FullOpts)
          -5 (-14.71 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadUIntPtrBigEndian(System.ReadOnlySpan`1[ubyte]):ulong (FullOpts)
          -5 (-14.71 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:WriteIPv4Bytes(System.Span`1[ubyte]):this (FullOpts)
          -5 (-14.29 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadInt16BigEndian(System.ReadOnlySpan`1[ubyte]):short (FullOpts)
          -5 (-14.29 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt32BigEndian(System.Span`1[ubyte],int) (FullOpts)
          -5 (-14.29 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteUInt32BigEndian(System.Span`1[ubyte],uint) (FullOpts)
          -5 (-14.29 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:Write[long](System.Span`1[ubyte],byref) (FullOpts)
          -5 (-13.89 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadInt128LittleEndian(System.ReadOnlySpan`1[ubyte]):System.Int128 (FullOpts)
          -5 (-13.89 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadUInt128LittleEndian(System.ReadOnlySpan`1[ubyte]):System.UInt128 (FullOpts)
          -5 (-13.89 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt128LittleEndian(System.Span`1[ubyte],System.Int128) (FullOpts)
          -5 (-13.89 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteUInt128LittleEndian(System.Span`1[ubyte],System.UInt128) (FullOpts)
          -5 (-13.89 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc32:GetCurrentHashCore(System.Span`1[ubyte]):this (FullOpts)
          -5 (-13.89 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:Write[short](System.Span`1[ubyte],byref) (FullOpts)
         -19 (-13.87 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:GetEndIndex(int,ubyte):int:this (FullOpts)
         -18 (-13.53 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+FrameHeader:ReadFrom(System.ReadOnlySpan`1[ubyte]):System.Net.Http.Http2Connection+FrameHeader (FullOpts)
          -5 (-13.51 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadHalfBigEndian(System.ReadOnlySpan`1[ubyte]):System.Half (FullOpts)
          -5 (-13.51 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadSingleBigEndian(System.ReadOnlySpan`1[ubyte]):float (FullOpts)
          -5 (-13.51 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:ReadUInt16BigEndian(System.ReadOnlySpan`1[ubyte]):ushort (FullOpts)
          -5 (-13.51 % of base) : System.Private.CoreLib.dasm - System.Buffers.Binary.BinaryPrimitives:WriteSingleBigEndian(System.Span`1[ubyte],float) (FullOpts)
          -5 (-13.51 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborHelpers:ReadHalfBigEndian(System.ReadOnlySpan`1[ubyte]):System.Half (FullOpts)
          -5 (-13.51 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborHelpers:ReadSingleBigEndian(System.ReadOnlySpan`1[ubyte]):float (FullOpts)
          -5 (-13.51 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborHelpers:WriteSingleBigEndian(System.Span`1[ubyte],float) (FullOpts)
          -5 (-13.51 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:Write[double](System.Span`1[ubyte],byref) (FullOpts)

318 total methods with Code Size differences (318 improved, 0 regressed), 231116 unchanged.

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

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Jul 25, 2024

Top method improvements

-302 (-5.21 % of base) - System.Text.Json.JsonDocument:TryGetValue(int,byref):ubyte:this
 ; Assembly listing for method System.Text.Json.JsonDocument:TryGetValue(int,byref):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 16 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  5,  5   )     ref  ->  rdi         this class-hnd single-def <System.Text.Json.JsonDocument>
 ;  V01 arg1         [V01,T01] (  6,  4   )     int  ->  rsi         single-def
 ;  V02 arg2         [V02,T05] (  4,  3   )   byref  ->  rbx         single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Text.Json.JsonDocument+DbRow>
 ;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;* V05 loc2         [V05    ] (  0,  0   )  struct (16) zero-ref    <System.ReadOnlySpan`1[ubyte]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp2         [V08    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp3         [V09    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp4         [V10    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V12 tmp6         [V12    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V13 tmp7         [V13,T02] (  4,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V14 tmp8         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V15 tmp9         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V16 tmp10        [V16,T16] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
 ;  V17 tmp11        [V17,T18] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V18 tmp12        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V19 tmp13        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V20 tmp14        [V20    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V21 tmp15        [V21    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp16        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V23 tmp17        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;  V24 tmp18        [V24,T10] (  3,  4   )   ubyte  ->  rsi         "Inlining Arg"
 ;* V25 tmp19        [V25    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V26 tmp20        [V26,T07] (  6,  4   )   byref  ->  r12         "Inline stloc first use temp"
 ;  V27 tmp21        [V27,T08] (  6,  4   )     int  ->  rax         "Inline stloc first use temp"
 ;  V28 tmp22        [V28,T03] (  4,  6   )   byref  ->  r13         single-def "Inlining Arg"
 ;  V29 tmp23        [V29,T06] (  7,  4.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V30 tmp24        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V31 tmp25        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
 ;* V32 tmp26        [V32    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V33 tmp27        [V33    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
 ;  V34 tmp28        [V34,T20] (  3,  1.50)    long  ->  rdi         "Inline stloc first use temp"
 ;  V35 tmp29        [V35,T21] (  3,  1.50)     int  ->  rsi         "Inline stloc first use temp"
 ;* V36 tmp30        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
 ;* V37 tmp31        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
 ;  V38 tmp32        [V38,T17] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
 ;* V39 tmp33        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V40 tmp34        [V40,T04] (  3,  6   )     int  ->  rsi         "Inlining Arg"
 ;* V41 tmp35        [V41    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V42 tmp36        [V42    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V43 tmp37        [V43,T11] (  3,  3   )     int  ->  r15         "field V03._location (fldOffset=0x0)" P-INDEP
 ;  V44 tmp38        [V44,T12] (  3,  3   )     int  ->  r14         "field V03._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
 ;  V45 tmp39        [V45,T19] (  2,  2   )     int  ->  rax         "field V03._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
 ;* V46 tmp40        [V46    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V47 tmp41        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V48 tmp42        [V48    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp43        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V50 tmp44        [V50    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V51 tmp45        [V51    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V52 tmp46        [V52    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V53 tmp47        [V53    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V54 tmp48        [V54,T09] (  5,  4   )   byref  ->  rax         "field V12._reference (fldOffset=0x0)" P-INDEP
 ;  V55 tmp49        [V55,T14] (  3,  2   )     int  ->  rcx         "field V12._length (fldOffset=0x8)" P-INDEP
 ;  V56 tmp50        [V56,T23] (  2,  1   )   byref  ->  rax         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V57 tmp51        [V57,T25] (  2,  1   )     int  ->  rcx         "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V58 tmp52        [V58    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V59 tmp53        [V59    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V60 tmp54        [V60    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
 ;* V61 tmp55        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
 ;* V62 tmp56        [V62    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;* V63 tmp57        [V63    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V64 tmp58        [V64    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V65 tmp59        [V65    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V66 tmp60        [V66    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V67 tmp61        [V67    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;* V68 tmp62        [V68    ] (  0,  0   )   byref  ->  zero-ref    "field V25._reference (fldOffset=0x0)" P-INDEP
 ;* V69 tmp63        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x8)" P-INDEP
 ;* V70 tmp64        [V70    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V71 tmp65        [V71    ] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
 ;* V72 tmp66        [V72    ] (  0,  0   )   byref  ->  zero-ref    "field V32._reference (fldOffset=0x0)" P-DEP
 ;* V73 tmp67        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-DEP
 ;  V74 tmp68        [V74,T24] (  2,  1   )   byref  ->  r12         "field V33._reference (fldOffset=0x0)" P-INDEP
 ;  V75 tmp69        [V75,T26] (  2,  1   )     int  ->  rax         "field V33._length (fldOffset=0x8)" P-INDEP
 ;* V76 tmp70        [V76    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V39._reference (fldOffset=0x0)" P-INDEP
 ;* V77 tmp71        [V77    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x8)" P-INDEP
 ;  V78 tmp72        [V78,T13] (  3,  2   )   byref  ->  rdi         single-def "field V41._reference (fldOffset=0x0)" P-INDEP
 ;  V79 tmp73        [V79,T15] (  3,  2   )     int  ->  rsi         "field V41._length (fldOffset=0x8)" P-INDEP
 ;  V80 cse0         [V80,T22] (  3,  1.50)     int  ->  rcx         "CSE #01: moderate"
 ;
 ; Lcl frame size = 8
 
 G_M7670_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        lea      rbp, [rsp+0x30]
        mov      rbx, rdx
 						;; size=19 bbWeight=1 PerfScore 7.75
 G_M7670_IG02:
        cmp      dword ptr [rdi+0x2C], 0
-       je       G_M7670_IG17
+       je       G_M7670_IG16
        mov      rax, gword ptr [rdi+0x30]
        test     rax, rax
        je       SHORT G_M7670_IG04
 						;; size=19 bbWeight=1 PerfScore 7.25
 G_M7670_IG03:
        mov      ecx, dword ptr [rax+0x08]
        cmp      ecx, esi
-       jb       G_M7670_IG16
+       jb       G_M7670_IG15
        mov      edx, esi
        lea      rax, bword ptr [rax+rdx+0x10]
        sub      ecx, esi
        jmp      SHORT G_M7670_IG05
 						;; size=22 bbWeight=0.50 PerfScore 3.38
 G_M7670_IG04:
        test     esi, esi
-       jne      G_M7670_IG16
+       jne      G_M7670_IG15
        xor      rax, rax
        xor      ecx, ecx
 						;; size=12 bbWeight=0.50 PerfScore 0.88
 G_M7670_IG05:
        cmp      ecx, 12
        jl       G_M7670_IG15
        mov      r15d, dword ptr [rax]
        mov      r14d, dword ptr [rax+0x04]
        mov      eax, dword ptr [rax+0x08]
        shr      eax, 28
        movzx    rsi, al
        cmp      esi, 7
        jne      G_M7670_IG14
        lea      r13, bword ptr [rdi+0x20]
        xor      r12, r12
        xor      eax, eax
        mov      rdi, gword ptr [r13]
        test     rdi, rdi
        je       SHORT G_M7670_IG09
 						;; size=53 bbWeight=1 PerfScore 13.50
 G_M7670_IG06:
        mov      rax, qword ptr [rdi]
        test     dword ptr [rax], 0xD1FFAB1E
        jne      SHORT G_M7670_IG07
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
        mov      r12, rax
        mov      eax, edx
        jmp      SHORT G_M7670_IG08
 						;; size=28 bbWeight=0.50 PerfScore 7.75
 G_M7670_IG07:
        lea      r12, bword ptr [rdi+0x10]
        mov      eax, dword ptr [rdi+0x08]
 						;; size=7 bbWeight=0.50 PerfScore 1.25
 G_M7670_IG08:
        mov      edi, dword ptr [r13+0x08]
        and      edi, 0xD1FFAB1E
        mov      esi, dword ptr [r13+0x0C]
        mov      edx, esi
        add      rdx, rdi
        mov      eax, eax
        cmp      rdx, rax
-       ja       G_M7670_IG16
+       ja       SHORT G_M7670_IG15
        add      r12, rdi
        mov      eax, esi
-						;; size=35 bbWeight=0.50 PerfScore 3.38
+						;; size=31 bbWeight=0.50 PerfScore 3.38
 G_M7670_IG09:
        mov      esi, r14d
        and      esi, 0xD1FFAB1E
        mov      edi, r15d
        mov      edx, esi
        add      rdi, rdx
        mov      edx, eax
        cmp      rdi, rdx
-       ja       SHORT G_M7670_IG16
+       ja       SHORT G_M7670_IG15
        mov      edi, r15d
        add      rdi, r12
        test     r14d, r14d
        jl       SHORT G_M7670_IG12
 						;; size=35 bbWeight=1 PerfScore 4.50
 G_M7670_IG10:
        mov      rdx, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonReaderHelper:TryDecodeBase64(System.ReadOnlySpan`1[ubyte],byref):ubyte
        call     [rax]System.Text.Json.JsonReaderHelper:TryDecodeBase64(System.ReadOnlySpan`1[ubyte],byref):ubyte
        nop      
 						;; size=16 bbWeight=0.50 PerfScore 1.88
 G_M7670_IG11:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M7670_IG12:
        mov      rdx, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonReaderHelper:TryGetUnescapedBase64Bytes(System.ReadOnlySpan`1[ubyte],byref):ubyte
        call     [rax]System.Text.Json.JsonReaderHelper:TryGetUnescapedBase64Bytes(System.ReadOnlySpan`1[ubyte],byref):ubyte
        nop      
 						;; size=16 bbWeight=0.50 PerfScore 1.88
 G_M7670_IG13:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M7670_IG14:
        mov      edi, 7
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowJsonElementWrongTypeException(ubyte,ubyte)
        call     [rax]System.Text.Json.ThrowHelper:ThrowJsonElementWrongTypeException(ubyte,ubyte)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 G_M7670_IG15:
-       mov      edi, 40
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
-G_M7670_IG16:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M7670_IG17:
+G_M7670_IG16:
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowObjectDisposedException_JsonDocument()
        call     [rax]System.Text.Json.ThrowHelper:ThrowObjectDisposedException_JsonDocument()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 354, prolog size 16, PerfScore 57.62, instruction count 111, allocated bytes for code 354 (MethodHash=456ee209) for method System.Text.Json.JsonDocument:TryGetValue(int,byref):ubyte:this (FullOpts)
+; Total bytes of code 332, prolog size 16, PerfScore 57.62, instruction count 107, allocated bytes for code 332 (MethodHash=456ee209) for method System.Text.Json.JsonDocument:TryGetValue(int,byref):ubyte:this (FullOpts)
-40 (-5.12 % of base) - Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:VisitObjectElement(System.Text.Json.JsonElement):this
 ; Assembly listing for method Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:VisitObjectElement(System.Text.Json.JsonElement):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 36 single block inlinees; 18 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  6, 51   )     ref  ->  rbx         this class-hnd single-def <Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Text.Json.JsonElement>
 ;  V02 loc0         [V02,T06] (  3, 18   )   ubyte  ->  [rbp-0x2C] 
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] ld-addr-op <System.Text.Json.JsonElement+ObjectEnumerator>
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] ld-addr-op <System.Text.Json.JsonElement+ObjectEnumerator>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] ld-addr-op <System.Text.Json.JsonProperty>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Text.Json.JsonElement>
 ;* V08 tmp2         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V09 tmp3         [V09    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement+ObjectEnumerator>
 ;  V10 tmp4         [V10,T41] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
 ;  V11 tmp5         [V11,T27] (  3,  2   )   ubyte  ->  rcx         "Inline return value spill temp"
 ;* V12 tmp6         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.Text.Json.JsonDocument>
 ;* V13 tmp7         [V13    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V14 tmp8         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp9         [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp10        [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp11        [V17    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V18 tmp12        [V18    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V19 tmp13        [V19    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V20 tmp14        [V20,T18] (  5,  5   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;  V21 tmp15        [V21,T19] (  5,  5   )     int  ->   r8         "Inlining Arg"
 ;* V22 tmp16        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V23 tmp17        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V24 tmp18        [V24,T31] (  2,  2   )   byref  ->   r9         single-def "Inlining Arg"
 ;  V25 tmp19        [V25,T33] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V26 tmp20        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V27 tmp21        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V28 tmp22        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V29 tmp23        [V29    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp24        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V31 tmp25        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V32 tmp26        [V32    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Text.Json.JsonElement>
 ;  V33 tmp27        [V33,T28] (  3,  2   )     int  ->  r14         "Inline return value spill temp"
 ;* V34 tmp28        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V35 tmp29        [V35    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp30        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.JsonDocument+DbRow>
 ;* V37 tmp31        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V38 tmp32        [V38    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp33        [V39    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V40 tmp34        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V41 tmp35        [V41    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V42 tmp36        [V42    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V43 tmp37        [V43,T12] (  5,  7   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V44 tmp38        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V45 tmp39        [V45    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V46 tmp40        [V46,T32] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
 ;  V47 tmp41        [V47,T34] (  2,  2   )     int  ->  rax         "Inlining Arg"
 ;* V48 tmp42        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V49 tmp43        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V50 tmp44        [V50    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V51 tmp45        [V51    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V52 tmp46        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V53 tmp47        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V54 tmp48        [V54    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] ld-addr-op "Inline stloc first use temp" <System.Text.Json.JsonElement+ObjectEnumerator>
 ;* V55 tmp49        [V55    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] "Inline return value spill temp" <System.Text.Json.JsonProperty>
 ;* V56 tmp50        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
 ;* V57 tmp51        [V57    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonProperty>
 ;* V58 tmp52        [V58    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonProperty>
 ;* V59 tmp53        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V60 tmp54        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V61 tmp55        [V61    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Text.Json.JsonElement>
 ;* V62 tmp56        [V62    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <System.String>
 ;  V63 tmp57        [V63,T04] (  2, 32   )     ref  ->  rsi        
 ;* V64 tmp58        [V64    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.JsonElement>
 ;  V65 tmp59        [V65,T42] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
 ;* V66 tmp60        [V66    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V67 tmp61        [V67    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp62        [V68    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V69 tmp63        [V69,T15] (  3,  6   )     int  ->  rsi         "Inline return value spill temp"
 ;* V70 tmp64        [V70    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V71 tmp65        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V72 tmp66        [V72    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.JsonDocument+DbRow>
 ;* V73 tmp67        [V73    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V74 tmp68        [V74    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp69        [V75    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V76 tmp70        [V76    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V77 tmp71        [V77    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V78 tmp72        [V78    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V79 tmp73        [V79,T05] (  5, 20   )     ref  ->  rsi         class-hnd "Inlining Arg" <ubyte[]>
 ;* V80 tmp74        [V80    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V81 tmp75        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V82 tmp76        [V82,T09] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
 ;  V83 tmp77        [V83,T10] (  2,  8   )     int  ->  rsi         "Inlining Arg"
 ;* V84 tmp78        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V85 tmp79        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V86 tmp80        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp81        [V87    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V88 tmp82        [V88    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V89 tmp83        [V89    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;  V90 tmp84        [V90,T13] (  5,  4   )     ref  ->  rsi         single-def "field V01._parent (fldOffset=0x0)" P-INDEP
 ;  V91 tmp85        [V91,T11] (  9,  5.50)     int  ->  rdx         single-def "field V01._idx (fldOffset=0x8)" P-INDEP
 ;* V92 tmp86        [V92    ] (  0,  0   )     ref  ->  zero-ref    "field V07._parent (fldOffset=0x0)" P-INDEP
 ;* V93 tmp87        [V93    ] (  0,  0   )     int  ->  zero-ref    "field V07._idx (fldOffset=0x8)" P-INDEP
 ;* V94 tmp88        [V94    ] (  0,  0   )   byref  ->  zero-ref    "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V95 tmp89        [V95    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V96 tmp90        [V96    ] (  0,  0   )   byref  ->  zero-ref    "field V18._reference (fldOffset=0x0)" P-INDEP
 ;* V97 tmp91        [V97    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
 ;  V98 tmp92        [V98,T24] (  3,  2   )   byref  ->   r9         "field V19._reference (fldOffset=0x0)" P-INDEP
 ;  V99 tmp93        [V99,T35] (  3,  1.50)     int  ->  rcx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V100 tmp94       [V100,T36] (  2,  1   )   byref  ->   r9         single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;  V101 tmp95       [V101,T38] (  2,  1   )     int  ->  rcx         single-def "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V102 tmp96       [V102    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V103 tmp97       [V103    ] (  0,  0   )     int  ->  zero-ref    single-def "field V23._length (fldOffset=0x8)" P-INDEP
 ;* V104 tmp98       [V104    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V105 tmp99       [V105    ] (  0,  0   )     int  ->  zero-ref    single-def "field V26._length (fldOffset=0x8)" P-INDEP
 ;* V106 tmp100      [V106    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V27._reference (fldOffset=0x0)" P-INDEP
 ;* V107 tmp101      [V107    ] (  0,  0   )     int  ->  zero-ref    single-def "field V27._length (fldOffset=0x8)" P-INDEP
 ;* V108 tmp102      [V108    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V109 tmp103      [V109    ] (  0,  0   )     int  ->  zero-ref    single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;* V110 tmp104      [V110    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V111 tmp105      [V111    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V112 tmp106      [V112    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V32._parent (fldOffset=0x0)" P-INDEP
 ;* V113 tmp107      [V113    ] (  0,  0   )     int  ->  zero-ref    single-def "field V32._idx (fldOffset=0x8)" P-INDEP
 ;* V114 tmp108      [V114    ] (  0,  0   )     int  ->  zero-ref    "field V36._location (fldOffset=0x0)" P-INDEP
 ;* V115 tmp109      [V115    ] (  0,  0   )     int  ->  zero-ref    "field V36._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
 ;  V116 tmp110      [V116,T23] (  3,  2.50)     int  ->  rdi         single-def "field V36._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
 ;* V117 tmp111      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp112      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;* V119 tmp113      [V119    ] (  0,  0   )   byref  ->  zero-ref    "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V120 tmp114      [V120    ] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
 ;  V121 tmp115      [V121,T25] (  3,  2   )   byref  ->  rdi         "field V42._reference (fldOffset=0x0)" P-INDEP
 ;  V122 tmp116      [V122,T29] (  3,  2   )     int  ->  rax         "field V42._length (fldOffset=0x8)" P-INDEP
 ;  V123 tmp117      [V123,T37] (  2,  1   )   byref  ->  rdi         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V124 tmp118      [V124,T39] (  2,  1   )     int  ->  rax         single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;* V125 tmp119      [V125    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
 ;* V126 tmp120      [V126    ] (  0,  0   )     int  ->  zero-ref    single-def "field V45._length (fldOffset=0x8)" P-INDEP
 ;* V127 tmp121      [V127    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V48._reference (fldOffset=0x0)" P-INDEP
 ;* V128 tmp122      [V128    ] (  0,  0   )     int  ->  zero-ref    single-def "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V129 tmp123      [V129    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V130 tmp124      [V130    ] (  0,  0   )     int  ->  zero-ref    single-def "field V49._length (fldOffset=0x8)" P-INDEP
 ;* V131 tmp125      [V131    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V52._reference (fldOffset=0x0)" P-INDEP
 ;* V132 tmp126      [V132    ] (  0,  0   )     int  ->  zero-ref    single-def "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp127      [V133    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V53._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp128      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
 ;* V135 tmp129      [V135    ] (  0,  0   )     ref  ->  zero-ref    "field V56._parent (fldOffset=0x0)" P-INDEP
 ;* V136 tmp130      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V56._idx (fldOffset=0x8)" P-INDEP
 ;* V137 tmp131      [V137    ] (  0,  0   )     ref  ->  zero-ref    "field V61._parent (fldOffset=0x0)" P-INDEP
 ;* V138 tmp132      [V138    ] (  0,  0   )     int  ->  zero-ref    "field V61._idx (fldOffset=0x8)" P-INDEP
 ;* V139 tmp133      [V139    ] (  0,  0   )     ref  ->  zero-ref    "field V64._parent (fldOffset=0x0)" P-INDEP
 ;* V140 tmp134      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V64._idx (fldOffset=0x8)" P-INDEP
 ;* V141 tmp135      [V141    ] (  0,  0   )     int  ->  zero-ref    "field V72._location (fldOffset=0x0)" P-INDEP
 ;* V142 tmp136      [V142    ] (  0,  0   )     int  ->  zero-ref    "field V72._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
 ;  V143 tmp137      [V143,T16] (  3,  6   )     int  ->  rsi         "field V72._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
 ;* V144 tmp138      [V144    ] (  0,  0   )   byref  ->  zero-ref    "field V76._reference (fldOffset=0x0)" P-INDEP
 ;* V145 tmp139      [V145    ] (  0,  0   )     int  ->  zero-ref    "field V76._length (fldOffset=0x8)" P-INDEP
 ;* V146 tmp140      [V146    ] (  0,  0   )   byref  ->  zero-ref    "field V77._reference (fldOffset=0x0)" P-INDEP
 ;* V147 tmp141      [V147    ] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x8)" P-INDEP
 ;  V148 tmp142      [V148,T14] (  3,  6   )   byref  ->  rdi         "field V78._reference (fldOffset=0x0)" P-INDEP
 ;  V149 tmp143      [V149,T17] (  3,  6   )     int  ->  rsi         "field V78._length (fldOffset=0x8)" P-INDEP
 ;  V150 tmp144      [V150,T20] (  2,  4   )   byref  ->  rdi         "field V80._reference (fldOffset=0x0)" P-INDEP
 ;  V151 tmp145      [V151,T21] (  2,  4   )     int  ->  rsi         "field V80._length (fldOffset=0x8)" P-INDEP
 ;* V152 tmp146      [V152    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V153 tmp147      [V153    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V154 tmp148      [V154    ] (  0,  0   )   byref  ->  zero-ref    "field V84._reference (fldOffset=0x0)" P-INDEP
 ;* V155 tmp149      [V155    ] (  0,  0   )     int  ->  zero-ref    "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V156 tmp150      [V156    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V157 tmp151      [V157    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
 ;* V158 tmp152      [V158    ] (  0,  0   )   byref  ->  zero-ref    "field V88._reference (fldOffset=0x0)" P-INDEP
 ;* V159 tmp153      [V159    ] (  0,  0   )     int  ->  zero-ref    "field V88._length (fldOffset=0x8)" P-INDEP
 ;* V160 tmp154      [V160    ] (  0,  0   )   byref  ->  zero-ref    "field V89._reference (fldOffset=0x0)" P-INDEP
 ;* V161 tmp155      [V161    ] (  0,  0   )     int  ->  zero-ref    "field V89._length (fldOffset=0x8)" P-INDEP
 ;  V162 tmp156      [V162,T00] ( 16, 65   )     int  ->  r13         "V03.[000..004)"
 ;  V163 tmp157      [V163,T08] (  3, 13   )     int  ->  r14         single-def "V03.[004..008)"
 ;  V164 tmp158      [V164,T07] (  4, 13   )     ref  ->  r12         single-def "V03.[008..016)"
 ;  V165 tmp159      [V165,T22] (  2,  3   )     int  ->  [rbp-0x30]  spill-single-def "V03.[016..020)"
 ;* V166 tmp160      [V166    ] (  0,  0   )     ref  ->  zero-ref    "V05.[000..008)"
 ;* V167 tmp161      [V167    ] (  0,  0   )     ref  ->  zero-ref    "V05.[008..016)"
 ;* V168 tmp162      [V168    ] (  0,  0   )     int  ->  zero-ref    "V05.[016..020)"
 ;* V169 tmp163      [V169    ] (  0,  0   )     int  ->  zero-ref    single-def "V09.[000..004)"
 ;* V170 tmp164      [V170    ] (  0,  0   )     int  ->  zero-ref    "V09.[004..008)"
 ;* V171 tmp165      [V171    ] (  0,  0   )     ref  ->  zero-ref    single-def "V09.[008..016)"
 ;* V172 tmp166      [V172    ] (  0,  0   )     int  ->  zero-ref    single-def "V09.[016..020)"
 ;* V173 tmp167      [V173    ] (  0,  0   )     int  ->  zero-ref    "V54.[000..004)"
 ;* V174 tmp168      [V174    ] (  0,  0   )     int  ->  zero-ref    single-def "V54.[004..008)"
 ;* V175 tmp169      [V175    ] (  0,  0   )     ref  ->  zero-ref    single-def "V54.[008..016)"
 ;* V176 tmp170      [V176    ] (  0,  0   )     int  ->  zero-ref    single-def "V54.[016..020)"
 ;* V177 tmp171      [V177    ] (  0,  0   )     ref  ->  zero-ref    "V57.[000..008)"
 ;* V178 tmp172      [V178    ] (  0,  0   )     ref  ->  zero-ref    "V57.[008..016)"
 ;* V179 tmp173      [V179    ] (  0,  0   )     int  ->  zero-ref    "V57.[016..020)"
 ;* V180 tmp174      [V180    ] (  0,  0   )     ref  ->  zero-ref    "V55.[000..008)"
 ;  V181 tmp175      [V181,T01] (  5, 64   )     ref  ->  r15         "V55.[008..016)"
 ;  V182 tmp176      [V182,T03] (  4, 48   )     int  ->  [rbp-0x34]  "V55.[016..020)"
 ;* V183 tmp177      [V183    ] (  0,  0   )     ref  ->  zero-ref    "V58.[000..008)"
 ;* V184 tmp178      [V184    ] (  0,  0   )     ref  ->  zero-ref    "V58.[008..016)"
 ;* V185 tmp179      [V185    ] (  0,  0   )     int  ->  zero-ref    "V58.[016..020)"
 ;  V186 PSPSym      [V186,T40] (  1,  1   )    long  ->  [rbp-0x40]  do-not-enreg[V] "PSPSym"
 ;  V187 cse0        [V187,T30] (  3,  2   )     int  ->  rdi         "CSE #02: conservative"
 ;  V188 cse1        [V188,T26] (  3,  2   )     ref  ->  rax         "CSE #03: conservative"
 ;
 ; Lcl frame size = 24
 
 G_M24720_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 24
        lea      rbp, [rsp+0x40]
        mov      qword ptr [rbp-0x40], rsp
        mov      rbx, rdi
 						;; size=26 bbWeight=1 PerfScore 8.00
 G_M24720_IG02:
        mov      r15d, 1
        test     rsi, rsi
-       je       G_M24720_IG36
+       je       G_M24720_IG34
 						;; size=15 bbWeight=1 PerfScore 1.50
 G_M24720_IG03:
        mov      edi, dword ptr [rsi+0x2C]
        test     edi, edi
-       je       G_M24720_IG35
+       je       G_M24720_IG33
        mov      rax, gword ptr [rsi+0x30]
        mov      rcx, rax
        lea      r8d, [rdx+0x08]
        test     rcx, rcx
        je       SHORT G_M24720_IG04
        cmp      dword ptr [rcx+0x08], r8d
-       jb       G_M24720_IG34
+       jb       G_M24720_IG32
        mov      r9d, r8d
        lea      r9, bword ptr [rcx+r9+0x10]
        mov      ecx, dword ptr [rcx+0x08]
        sub      ecx, r8d
        jmp      SHORT G_M24720_IG05
 						;; size=53 bbWeight=0.50 PerfScore 8.38
 G_M24720_IG04:
        test     r8d, r8d
-       jne      G_M24720_IG34
+       jne      G_M24720_IG32
        xor      r9, r9
        xor      ecx, ecx
 						;; size=14 bbWeight=0.50 PerfScore 0.88
 G_M24720_IG05:
        cmp      ecx, 4
-       jl       G_M24720_IG33
+       jl       G_M24720_IG32
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M24720_IG06:
        mov      ecx, dword ptr [r9]
        shr      ecx, 28
        movzx    rcx, cl
        cmp      ecx, 1
-       jne      G_M24720_IG32
+       jne      G_M24720_IG31
        test     edi, edi
-       je       G_M24720_IG35
+       je       G_M24720_IG33
        test     rax, rax
        je       SHORT G_M24720_IG08
 						;; size=31 bbWeight=1 PerfScore 6.50
 G_M24720_IG07:
        cmp      dword ptr [rax+0x08], edx
-       jb       G_M24720_IG34
+       jb       G_M24720_IG32
        mov      edi, edx
        lea      rdi, bword ptr [rax+rdi+0x10]
        mov      eax, dword ptr [rax+0x08]
        sub      eax, edx
        jmp      SHORT G_M24720_IG09
 						;; size=23 bbWeight=0.50 PerfScore 4.75
 G_M24720_IG08:
        test     edx, edx
-       jne      G_M24720_IG34
+       jne      G_M24720_IG32
        xor      rdi, rdi
        xor      eax, eax
 						;; size=12 bbWeight=0.50 PerfScore 0.88
 G_M24720_IG09:
        cmp      eax, 12
-       jl       G_M24720_IG33
+       jl       G_M24720_IG32
        mov      edi, dword ptr [rdi+0x08]
        mov      eax, edi
        shr      eax, 28
        movzx    rax, al
        cmp      eax, 5
        jge      SHORT G_M24720_IG11
 						;; size=25 bbWeight=1 PerfScore 5.50
 G_M24720_IG10:
        and      edi, 0xD1FFAB1E
        lea      edi, [rdi+2*rdi]
        lea      r14d, [rdx+4*rdi]
        jmp      SHORT G_M24720_IG12
 						;; size=15 bbWeight=0.50 PerfScore 1.62
 G_M24720_IG11:
        lea      r14d, [rdx+0x0C]
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M24720_IG12:
        mov      r13d, -1
        mov      r12, rsi
        mov      eax, edx
        mov      dword ptr [rbp-0x30], eax
 						;; size=14 bbWeight=1 PerfScore 1.75
 G_M24720_IG13:
        cmp      r13d, r14d
-       jge      G_M24720_IG30
+       jge      G_M24720_IG29
 						;; size=9 bbWeight=8 PerfScore 10.00
 G_M24720_IG14:
        test     r13d, r13d
        jl       SHORT G_M24720_IG20
 						;; size=5 bbWeight=4 PerfScore 5.00
 G_M24720_IG15:
        cmp      dword ptr [r12+0x2C], 0
-       je       G_M24720_IG28
+       je       G_M24720_IG27
        mov      rsi, gword ptr [r12+0x30]
        test     rsi, rsi
        je       SHORT G_M24720_IG16
        cmp      dword ptr [rsi+0x08], r13d
-       jb       G_M24720_IG27
+       jb       G_M24720_IG26
        mov      edi, r13d
        lea      rdi, bword ptr [rsi+rdi+0x10]
        mov      esi, dword ptr [rsi+0x08]
        sub      esi, r13d
        jmp      SHORT G_M24720_IG17
 						;; size=48 bbWeight=2 PerfScore 33.50
 G_M24720_IG16:
        test     r13d, r13d
-       jne      G_M24720_IG27
+       jne      G_M24720_IG26
        xor      rdi, rdi
        xor      esi, esi
 						;; size=13 bbWeight=2 PerfScore 3.50
 G_M24720_IG17:
        cmp      esi, 12
        jl       G_M24720_IG26
        mov      esi, dword ptr [rdi+0x08]
        mov      edi, esi
        shr      edi, 28
        movzx    rdi, dil
        cmp      edi, 5
        jge      SHORT G_M24720_IG18
        and      esi, 0xD1FFAB1E
        lea      esi, [rsi+2*rsi]
        lea      esi, [r13+4*rsi+0x0C]
        jmp      SHORT G_M24720_IG19
 						;; size=42 bbWeight=2 PerfScore 20.50
 G_M24720_IG18:
        add      r13d, 12
        mov      esi, r13d
 						;; size=7 bbWeight=2 PerfScore 1.00
 G_M24720_IG19:
        mov      r13d, esi
        jmp      SHORT G_M24720_IG21
 						;; size=5 bbWeight=2 PerfScore 4.50
 G_M24720_IG20:
        lea      r13d, [rax+0x0C]
        mov      eax, dword ptr [rbp-0x30]
 						;; size=7 bbWeight=2 PerfScore 3.00
 G_M24720_IG21:
        add      r13d, 12
        cmp      r13d, r14d
-       jge      G_M24720_IG30
+       jge      G_M24720_IG29
 						;; size=13 bbWeight=4 PerfScore 6.00
 G_M24720_IG22:
        test     r13d, r13d
        jl       SHORT G_M24720_IG24
 						;; size=5 bbWeight=16 PerfScore 20.00
 G_M24720_IG23:
        mov      r15, r12
        mov      ecx, r13d
        jmp      SHORT G_M24720_IG25
 						;; size=8 bbWeight=8 PerfScore 20.00
 G_M24720_IG24:
        xor      r15, r15
        xor      ecx, ecx
 						;; size=5 bbWeight=8 PerfScore 4.00
 G_M24720_IG25:
        xor      esi, esi
        mov      dword ptr [rbp-0x2C], esi
        test     r15, r15
-       je       G_M24720_IG29
+       je       SHORT G_M24720_IG28
        mov      dword ptr [rbp-0x34], ecx
        lea      esi, [rcx-0x0C]
        mov      rdi, r15
        mov      edx, 5
        mov      r9, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument:GetString(int,ubyte):System.String:this
        call     [r9]System.Text.Json.JsonDocument:GetString(int,ubyte):System.String:this
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:EnterContext(System.String):this
        call     [rax]Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:EnterContext(System.String):this
        mov      rsi, r15
        mov      edx, dword ptr [rbp-0x34]
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:VisitValue(System.Text.Json.JsonElement):this
        call     [rax]Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:VisitValue(System.Text.Json.JsonElement):this
        mov      rdi, gword ptr [rbx+0x10]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this
        mov      eax, dword ptr [rbp-0x30]
        mov      r15d, dword ptr [rbp-0x2C]
        jmp      G_M24720_IG13
-						;; size=110 bbWeight=16 PerfScore 456.00
+						;; size=106 bbWeight=16 PerfScore 456.00
 G_M24720_IG26:
-       mov      edi, 40
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
-G_M24720_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M24720_IG28:
+G_M24720_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowObjectDisposedException_JsonDocument()
        call     [rax]System.Text.Json.ThrowHelper:ThrowObjectDisposedException_JsonDocument()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M24720_IG29:
+G_M24720_IG28:
        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
        call     [rax]System.InvalidOperationException:.ctor():this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=42 bbWeight=0 PerfScore 0.00
-G_M24720_IG30:
+G_M24720_IG29:
        mov      rdi, rbx
        mov      esi, r15d
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:SetNullIfElementIsEmpty(ubyte):this
        call     [rax]Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:SetNullIfElementIsEmpty(ubyte):this
        nop      
 						;; size=19 bbWeight=1 PerfScore 4.00
-G_M24720_IG31:
+G_M24720_IG30:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
-G_M24720_IG32:
+G_M24720_IG31:
        mov      esi, ecx
        mov      edi, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowJsonElementWrongTypeException(ubyte,ubyte)
        call     [rax]System.Text.Json.ThrowHelper:ThrowJsonElementWrongTypeException(ubyte,ubyte)
        int3     
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M24720_IG33:
-       mov      edi, 40
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
-G_M24720_IG34:
+G_M24720_IG32:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M24720_IG35:
+G_M24720_IG33:
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowObjectDisposedException_JsonDocument()
        call     [rax]System.Text.Json.ThrowHelper:ThrowObjectDisposedException_JsonDocument()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M24720_IG36:
+G_M24720_IG34:
        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
        call     [rax]System.InvalidOperationException:.ctor():this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=42 bbWeight=0 PerfScore 0.00
-G_M24720_IG37:
+G_M24720_IG35:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
        lea      rbp, [rbp+0x40]
 						;; size=22 bbWeight=0 PerfScore 0.00
-G_M24720_IG38:
+G_M24720_IG36:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 781, prolog size 26, PerfScore 635.88, instruction count 219, allocated bytes for code 781 (MethodHash=2add9f6f) for method Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:VisitObjectElement(System.Text.Json.JsonElement):this (FullOpts)
+; Total bytes of code 741, prolog size 26, PerfScore 635.88, instruction count 211, allocated bytes for code 741 (MethodHash=2add9f6f) for method Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:VisitObjectElement(System.Text.Json.JsonElement):this (FullOpts)

Note: some changes were skipped as they were too large to fit into a comment.

Larger list of diffs: https://gist.github.com/MihuBot/63f869c7e76d7958186fb1ce43d39502

@MihuBot
Copy link
Owner Author

MihuBot commented Jul 25, 2024

@xtqqczze

@xtqqczze
Copy link

dotnet/runtime#105475

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants