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] [MihaZupan] Rework HttpClient content buffering #800

Open
MihuBot opened this issue Nov 30, 2024 · 3 comments
Open

[JitDiff X64] [MihaZupan] Rework HttpClient content buffering #800

MihuBot opened this issue Nov 30, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Nov 30, 2024

Job completed in 17 minutes 41 seconds.

Diffs

Diffs
Found 265 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 39685965
Total bytes of diff: 39685139
Total bytes of delta: -826 (-0.00 % of base)
Total relative delta: 8.15
    diff is an improvement.
    relative diff is a regression.


Total byte diff includes 533 bytes from reconciling methods
	Base had   47 unique methods,    11805 unique bytes
	Diff had   42 unique methods,    12338 unique bytes

Top file improvements (bytes):
        -826 : System.Net.Http.dasm (-0.10 % of base)

1 total files with Code Size differences (1 improved, 0 regressed), 258 unchanged.

Top method regressions (bytes):
        1013 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<<CopyToAsync>g__WaitAsync|46_0>d:MoveNext():this (FullOpts) (0 base, 1 diff methods)
         881 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadBufferAsString(System.Net.Http.HttpContent+LimitArrayPoolWriteStream,System.Net.Http.Headers.HttpContentHeaders):System.String (FullOpts) (0 base, 1 diff methods)
         858 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:GrowAndWrite(System.ReadOnlySpan`1[ubyte]):this (FullOpts) (0 base, 1 diff methods)
         857 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<LoadIntoBufferAsyncCore>d__53:MoveNext():this (FullOpts) (0 base, 1 diff methods)
         838 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
         704 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
         693 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[double,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
         693 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[short,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
         693 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
         692 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[long,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
         692 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
         691 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[int,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
         361 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:GetPreambleLength(System.ReadOnlySpan`1[ubyte],System.Text.Encoding):int (FullOpts) (0 base, 1 diff methods)
         353 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:TryDetectEncoding(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         248 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ReturnAllPooledBuffers():this (FullOpts) (0 base, 1 diff methods)
         243 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this (FullOpts) (0 base, 1 diff methods)
         215 (75.97 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CreateTemporaryBuffer(long,byref,byref):ubyte:this (FullOpts)
         207 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:CopyToCore(System.Span`1[ubyte]):this (FullOpts) (0 base, 1 diff methods)
         184 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<ReadAsByteArrayAsync>b__30_0(System.Net.Http.HttpContent):ubyte[]:this (FullOpts) (0 base, 1 diff methods)
         180 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:CreateCopy():ubyte[]:this (FullOpts) (0 base, 1 diff methods)
         164 (820.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadBufferedContentAsByteArray():ubyte[]:this (FullOpts)
         148 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:.ctor(int,long,ubyte):this (FullOpts) (0 base, 1 diff methods)
         102 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ReallocateIfPooled():this (FullOpts) (0 base, 1 diff methods)
          98 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:<CopyToAsync>g__WaitAsync|46_0(System.Threading.Tasks.ValueTask):System.Threading.Tasks.Task (FullOpts) (0 base, 1 diff methods)
          98 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:LoadIntoBufferAsyncCore(System.Threading.Tasks.Task,System.Net.Http.HttpContent+LimitArrayPoolWriteStream):System.Threading.Tasks.Task:this (FullOpts) (0 base, 1 diff methods)
          95 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:GetFirstBuffer():System.ReadOnlySpan`1[ubyte]:this (FullOpts) (0 base, 1 diff methods)
          83 (122.06 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ToArray():ubyte[]:this (FullOpts)
          65 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<LoadIntoBuffer>b__48_0(System.Object):this (FullOpts) (0 base, 1 diff methods)
          57 (65.52 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(ubyte[],int,int):this (FullOpts)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[double,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[int,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[long,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[short,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.__Canon,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.Nullable`1[int],System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[ubyte,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
          52 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<ReadAsStringAsync>b__26_0(System.Net.Http.HttpContent):System.String:this (FullOpts) (0 base, 1 diff methods)
          35 (22.58 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
          32 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<<CopyToAsync>g__WaitAsync|46_0>d:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
          32 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<LoadIntoBufferAsyncCore>d__53:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
          23 (69.70 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CreateContentReadStream(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
          23 (69.70 % of base) : System.Net.Http.dasm - System.Net.Http.MultipartContent:<>n__1(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
          18 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<CreateContentReadStreamAsync>b__55_0(System.Net.Http.HttpContent):System.IO.Stream:this (FullOpts) (0 base, 1 diff methods)
          16 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:get_BigEndianUnicodePreamble():System.ReadOnlySpan`1[ubyte] (FullOpts) (0 base, 1 diff methods)
          16 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:get_UnicodePreamble():System.ReadOnlySpan`1[ubyte] (FullOpts) (0 base, 1 diff methods)
          16 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:get_UTF32Preamble():System.ReadOnlySpan`1[ubyte] (FullOpts) (0 base, 1 diff methods)
          16 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:get_UTF8Preamble():System.ReadOnlySpan`1[ubyte] (FullOpts) (0 base, 1 diff methods)
          15 (4.41 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:Dispose(ubyte):this (FullOpts)
          14 (1.62 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:LoadIntoBuffer(long,System.Threading.CancellationToken):this (FullOpts)
           8 (0.45 % of base) : System.Net.Http.dasm - System.Net.Http.MultipartContent+<CreateContentReadStreamAsyncCore>d__28:MoveNext():this (FullOpts)
           5 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:GetSingleBuffer():ubyte[]:this (FullOpts) (0 base, 1 diff methods)
           2 (1.60 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:GetComputedOrBufferLength():System.Nullable`1[long]:this (FullOpts)

Top method improvements (bytes):
       -1013 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<<CopyToAsync>g__WaitAsync|56_0>d:MoveNext():this (FullOpts) (1 base, 0 diff methods)
        -960 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<LoadIntoBufferAsyncCore>d__63:MoveNext():this (FullOpts) (1 base, 0 diff methods)
        -838 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
        -704 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
        -693 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[double,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
        -693 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[short,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
        -693 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
        -692 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[long,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
        -692 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
        -691 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[int,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
        -525 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:GetPreambleLength(System.ArraySegment`1[ubyte],System.Text.Encoding):int (FullOpts) (1 base, 0 diff methods)
        -475 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadBufferAsString(System.ArraySegment`1[ubyte],System.Net.Http.Headers.HttpContentHeaders):System.String (FullOpts) (1 base, 0 diff methods)
        -402 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:TryDetectEncoding(System.ArraySegment`1[ubyte],byref,byref):ubyte (FullOpts) (1 base, 0 diff methods)
        -361 (-49.79 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:TryReadAsStream():System.IO.Stream:this (FullOpts)
        -342 (-61.62 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadAsStream(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
        -269 (-43.25 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadAsStreamAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.IO.Stream]:this (FullOpts)
        -261 (-8.35 % of base) : System.Net.Http.dasm - System.Net.Http.HttpClient+<GetStringAsyncCore>d__41:MoveNext():this (FullOpts)
        -222 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:CopyToAsync(System.IO.Stream,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) (1 base, 0 diff methods)
        -221 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CreateMemoryStream(long,byref):System.Net.Http.HttpContent+LimitMemoryStream:this (FullOpts) (1 base, 0 diff methods)
        -215 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Grow(int):this (FullOpts) (1 base, 0 diff methods)
        -194 (-6.32 % of base) : System.Net.Http.dasm - System.Net.Http.HttpClient+<GetByteArrayAsyncCore>d__46:MoveNext():this (FullOpts)
        -167 (-77.31 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadBufferedContentAsString():System.String:this (FullOpts)
        -153 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:.ctor(int,long):this (FullOpts) (1 base, 0 diff methods)
        -141 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
        -115 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:BufferHasPrefix(System.ArraySegment`1[ubyte],ubyte[]):ubyte (FullOpts) (1 base, 0 diff methods)
        -114 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:BeginWrite(ubyte[],int,int,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) (1 base, 0 diff methods)
        -102 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts) (1 base, 0 diff methods)
         -99 (-27.58 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CopyTo(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken):this (FullOpts)
         -98 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:<CopyToAsync>g__WaitAsync|56_0(System.Threading.Tasks.ValueTask):System.Threading.Tasks.Task (FullOpts) (1 base, 0 diff methods)
         -98 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:LoadIntoBufferAsyncCore(System.Threading.Tasks.Task,System.IO.MemoryStream):System.Threading.Tasks.Task:this (FullOpts) (1 base, 0 diff methods)
         -97 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:GetSizedBuffer():ubyte[]:this (FullOpts) (1 base, 0 diff methods)
         -91 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) (1 base, 0 diff methods)
         -84 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:CheckSize(int):this (FullOpts) (1 base, 0 diff methods)
         -83 (-1.98 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream+<SendRequestBodyAsync>d__45:MoveNext():this (FullOpts)
         -81 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:GetBuffer():System.ArraySegment`1[ubyte]:this (FullOpts) (1 base, 0 diff methods)
         -78 (-24.22 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:InternalCopyToAsync(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
         -76 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:Write(ubyte[],int,int):this (FullOpts) (1 base, 0 diff methods)
         -65 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<LoadIntoBuffer>b__58_0(System.Object):this (FullOpts) (1 base, 0 diff methods)
         -65 (-77.38 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Dispose(ubyte):this (FullOpts)
         -59 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:EnsureCapacity(int):this (FullOpts) (1 base, 0 diff methods)
         -59 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:WriteByte(ubyte):this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[double,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[int,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[long,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[short,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.__Canon,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.Nullable`1[int],System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[ubyte,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
         -45 (-11.75 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:LoadIntoBufferAsync(long,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -39 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:.ctor(int,int):this (FullOpts) (1 base, 0 diff methods)
         -36 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:TryGetBuffer(byref):ubyte:this (FullOpts) (1 base, 0 diff methods)
         -34 (-49.28 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:WriteByte(ubyte):this (FullOpts)
         -32 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<<CopyToAsync>g__WaitAsync|56_0>d:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
         -32 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<LoadIntoBufferAsyncCore>d__63:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
         -20 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<ReadAsByteArrayAsync>b__40_0(System.Net.Http.HttpContent):ubyte[]:this (FullOpts) (1 base, 0 diff methods)
         -18 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<ReadAsStringAsync>b__36_0(System.Net.Http.HttpContent):System.String:this (FullOpts) (1 base, 0 diff methods)
         -13 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:EndWrite(System.IAsyncResult):this (FullOpts) (1 base, 0 diff methods)
          -5 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<CreateContentReadStreamAsync>b__65_0(System.Net.Http.HttpContent):System.IO.Stream:this (FullOpts) (1 base, 0 diff methods)

Top method regressions (percentages):
          98 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:<CopyToAsync>g__WaitAsync|46_0(System.Threading.Tasks.ValueTask):System.Threading.Tasks.Task (FullOpts) (0 base, 1 diff methods)
         243 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this (FullOpts) (0 base, 1 diff methods)
          16 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:get_BigEndianUnicodePreamble():System.ReadOnlySpan`1[ubyte] (FullOpts) (0 base, 1 diff methods)
          16 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:get_UnicodePreamble():System.ReadOnlySpan`1[ubyte] (FullOpts) (0 base, 1 diff methods)
          16 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:get_UTF32Preamble():System.ReadOnlySpan`1[ubyte] (FullOpts) (0 base, 1 diff methods)
          16 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:get_UTF8Preamble():System.ReadOnlySpan`1[ubyte] (FullOpts) (0 base, 1 diff methods)
         361 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:GetPreambleLength(System.ReadOnlySpan`1[ubyte],System.Text.Encoding):int (FullOpts) (0 base, 1 diff methods)
          98 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:LoadIntoBufferAsyncCore(System.Threading.Tasks.Task,System.Net.Http.HttpContent+LimitArrayPoolWriteStream):System.Threading.Tasks.Task:this (FullOpts) (0 base, 1 diff methods)
         881 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadBufferAsString(System.Net.Http.HttpContent+LimitArrayPoolWriteStream,System.Net.Http.Headers.HttpContentHeaders):System.String (FullOpts) (0 base, 1 diff methods)
         353 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:TryDetectEncoding(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte (FullOpts) (0 base, 1 diff methods)
        1013 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<<CopyToAsync>g__WaitAsync|46_0>d:MoveNext():this (FullOpts) (0 base, 1 diff methods)
          32 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<<CopyToAsync>g__WaitAsync|46_0>d:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
          18 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<CreateContentReadStreamAsync>b__55_0(System.Net.Http.HttpContent):System.IO.Stream:this (FullOpts) (0 base, 1 diff methods)
          65 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<LoadIntoBuffer>b__48_0(System.Object):this (FullOpts) (0 base, 1 diff methods)
         184 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<ReadAsByteArrayAsync>b__30_0(System.Net.Http.HttpContent):ubyte[]:this (FullOpts) (0 base, 1 diff methods)
          52 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<ReadAsStringAsync>b__26_0(System.Net.Http.HttpContent):System.String:this (FullOpts) (0 base, 1 diff methods)
         857 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<LoadIntoBufferAsyncCore>d__53:MoveNext():this (FullOpts) (0 base, 1 diff methods)
          32 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<LoadIntoBufferAsyncCore>d__53:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
         693 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[double,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[double,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
         691 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[int,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[int,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
         692 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[long,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[long,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
         693 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[short,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[short,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
         838 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.__Canon,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
         692 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.Nullable`1[int],System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
         704 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
         693 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__70`2[ubyte,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (0 base, 1 diff methods)
         148 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:.ctor(int,long,ubyte):this (FullOpts) (0 base, 1 diff methods)
         207 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:CopyToCore(System.Span`1[ubyte]):this (FullOpts) (0 base, 1 diff methods)
         180 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:CreateCopy():ubyte[]:this (FullOpts) (0 base, 1 diff methods)
          95 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:GetFirstBuffer():System.ReadOnlySpan`1[ubyte]:this (FullOpts) (0 base, 1 diff methods)
           5 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:GetSingleBuffer():ubyte[]:this (FullOpts) (0 base, 1 diff methods)
         858 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:GrowAndWrite(System.ReadOnlySpan`1[ubyte]):this (FullOpts) (0 base, 1 diff methods)
         102 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ReallocateIfPooled():this (FullOpts) (0 base, 1 diff methods)
         248 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ReturnAllPooledBuffers():this (FullOpts) (0 base, 1 diff methods)
         164 (820.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadBufferedContentAsByteArray():ubyte[]:this (FullOpts)
          83 (122.06 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ToArray():ubyte[]:this (FullOpts)
         215 (75.97 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CreateTemporaryBuffer(long,byref,byref):ubyte:this (FullOpts)
          23 (69.70 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CreateContentReadStream(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
          23 (69.70 % of base) : System.Net.Http.dasm - System.Net.Http.MultipartContent:<>n__1(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
          57 (65.52 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(ubyte[],int,int):this (FullOpts)
          35 (22.58 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
          15 (4.41 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:Dispose(ubyte):this (FullOpts)
          14 (1.62 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:LoadIntoBuffer(long,System.Threading.CancellationToken):this (FullOpts)
           2 (1.60 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:GetComputedOrBufferLength():System.Nullable`1[long]:this (FullOpts)
           8 (0.45 % of base) : System.Net.Http.dasm - System.Net.Http.MultipartContent+<CreateContentReadStreamAsyncCore>d__28:MoveNext():this (FullOpts)

Top method improvements (percentages):
         -98 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:<CopyToAsync>g__WaitAsync|56_0(System.Threading.Tasks.ValueTask):System.Threading.Tasks.Task (FullOpts) (1 base, 0 diff methods)
        -115 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:BufferHasPrefix(System.ArraySegment`1[ubyte],ubyte[]):ubyte (FullOpts) (1 base, 0 diff methods)
        -221 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CreateMemoryStream(long,byref):System.Net.Http.HttpContent+LimitMemoryStream:this (FullOpts) (1 base, 0 diff methods)
        -525 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:GetPreambleLength(System.ArraySegment`1[ubyte],System.Text.Encoding):int (FullOpts) (1 base, 0 diff methods)
         -98 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:LoadIntoBufferAsyncCore(System.Threading.Tasks.Task,System.IO.MemoryStream):System.Threading.Tasks.Task:this (FullOpts) (1 base, 0 diff methods)
        -475 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadBufferAsString(System.ArraySegment`1[ubyte],System.Net.Http.Headers.HttpContentHeaders):System.String (FullOpts) (1 base, 0 diff methods)
        -402 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:TryDetectEncoding(System.ArraySegment`1[ubyte],byref,byref):ubyte (FullOpts) (1 base, 0 diff methods)
         -36 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:TryGetBuffer(byref):ubyte:this (FullOpts) (1 base, 0 diff methods)
       -1013 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<<CopyToAsync>g__WaitAsync|56_0>d:MoveNext():this (FullOpts) (1 base, 0 diff methods)
         -32 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<<CopyToAsync>g__WaitAsync|56_0>d:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
          -5 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<CreateContentReadStreamAsync>b__65_0(System.Net.Http.HttpContent):System.IO.Stream:this (FullOpts) (1 base, 0 diff methods)
         -65 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<LoadIntoBuffer>b__58_0(System.Object):this (FullOpts) (1 base, 0 diff methods)
         -20 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<ReadAsByteArrayAsync>b__40_0(System.Net.Http.HttpContent):ubyte[]:this (FullOpts) (1 base, 0 diff methods)
         -18 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<>c:<ReadAsStringAsync>b__36_0(System.Net.Http.HttpContent):System.String:this (FullOpts) (1 base, 0 diff methods)
        -960 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<LoadIntoBufferAsyncCore>d__63:MoveNext():this (FullOpts) (1 base, 0 diff methods)
         -32 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<LoadIntoBufferAsyncCore>d__63:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
        -693 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[double,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[double,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
        -691 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[int,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[int,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
        -692 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[long,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[long,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
        -693 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[short,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[short,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
        -838 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.__Canon,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
        -692 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.Nullable`1[int],System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
        -704 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
        -693 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts) (1 base, 0 diff methods)
         -56 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+<WaitAndReturnAsync>d__82`2[ubyte,System.Nullable`1[int]]:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods)
        -153 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:.ctor(int,long):this (FullOpts) (1 base, 0 diff methods)
        -141 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -59 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:EnsureCapacity(int):this (FullOpts) (1 base, 0 diff methods)
         -81 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:GetBuffer():System.ArraySegment`1[ubyte]:this (FullOpts) (1 base, 0 diff methods)
        -215 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Grow(int):this (FullOpts) (1 base, 0 diff methods)
         -39 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:.ctor(int,int):this (FullOpts) (1 base, 0 diff methods)
        -114 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:BeginWrite(ubyte[],int,int,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) (1 base, 0 diff methods)
         -84 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:CheckSize(int):this (FullOpts) (1 base, 0 diff methods)
        -222 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:CopyToAsync(System.IO.Stream,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) (1 base, 0 diff methods)
         -13 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:EndWrite(System.IAsyncResult):this (FullOpts) (1 base, 0 diff methods)
         -97 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:GetSizedBuffer():ubyte[]:this (FullOpts) (1 base, 0 diff methods)
         -76 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:Write(ubyte[],int,int):this (FullOpts) (1 base, 0 diff methods)
        -102 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts) (1 base, 0 diff methods)
         -91 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) (1 base, 0 diff methods)
         -59 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitMemoryStream:WriteByte(ubyte):this (FullOpts) (1 base, 0 diff methods)
         -65 (-77.38 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Dispose(ubyte):this (FullOpts)
        -167 (-77.31 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadBufferedContentAsString():System.String:this (FullOpts)
        -342 (-61.62 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadAsStream(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
        -361 (-49.79 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:TryReadAsStream():System.IO.Stream:this (FullOpts)
         -34 (-49.28 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:WriteByte(ubyte):this (FullOpts)
        -269 (-43.25 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:ReadAsStreamAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.IO.Stream]:this (FullOpts)
         -99 (-27.58 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CopyTo(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken):this (FullOpts)
         -78 (-24.22 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:InternalCopyToAsync(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
         -45 (-11.75 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:LoadIntoBufferAsync(long,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
        -261 (-8.35 % of base) : System.Net.Http.dasm - System.Net.Http.HttpClient+<GetStringAsyncCore>d__41:MoveNext():this (FullOpts)
        -194 (-6.32 % of base) : System.Net.Http.dasm - System.Net.Http.HttpClient+<GetByteArrayAsyncCore>d__46:MoveNext():this (FullOpts)
         -83 (-1.98 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream+<SendRequestBodyAsync>d__45:MoveNext():this (FullOpts)

112 total methods with Code Size differences (59 improved, 53 regressed), 232703 unchanged.

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

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Nov 30, 2024

Top method regressions

215 (75.97 % of base) - System.Net.Http.HttpContent:CreateTemporaryBuffer(long,byref,byref):ubyte:this
 ; Assembly listing for method System.Net.Http.HttpContent:CreateTemporaryBuffer(long,byref,byref):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  rdi         this class-hnd single-def <System.Net.Http.HttpContent>
-;  V01 arg1         [V01,T00] (  5,  3.50)    long  ->  rbx         single-def
-;  V02 arg2         [V02,T02] (  4,  3   )   byref  ->  r15         single-def
-;  V03 arg3         [V03,T03] (  4,  3   )   byref  ->  rcx         single-def
-;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T04] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-;  V06 tmp2         [V06,T07] (  2,  0   )     ref  ->  rbx         class-hnd exact single-def "non-inline candidate call" <System.Globalization.CultureInfo>
-;  V07 tmp3         [V07,T05] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "Single-def Box Helper" <System.Int32>
-;  V08 tmp4         [V08,T08] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "impImportAndPushBox" <System.String>
-;  V09 tmp5         [V09,T06] (  3,  0   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
-;  V10 tmp6         [V10,T09] (  2,  0   )     ref  ->  [rbp-0x30]  spill-single-def "argument with side effect"
-;  V11 tmp7         [V11,T10] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V00 this         [V00,T04] (  4,  3.50)     ref  ->  rdi         this class-hnd single-def <System.Net.Http.HttpContent>
+;  V01 arg1         [V01,T01] (  7,  4.50)    long  ->  rbx         single-def
+;  V02 arg2         [V02,T02] (  5,  3.50)   byref  ->  r15         single-def
+;  V03 arg3         [V03,T03] (  5,  3.50)   byref  ->  r14         single-def
+;* V04 loc0         [V04    ] (  0,  0   )    long  ->  zero-ref   
+;* V05 loc1         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Nullable`1[long]>
+;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V07 tmp1         [V07,T00] (  7,  7   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
+;  V08 tmp2         [V08,T08] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
+;  V09 tmp3         [V09,T11] (  2,  0   )     ref  ->  rbx         class-hnd exact single-def "non-inline candidate call" <System.Globalization.CultureInfo>
+;  V10 tmp4         [V10,T09] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "Single-def Box Helper" <System.Int32>
+;  V11 tmp5         [V11,T12] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "impImportAndPushBox" <System.String>
+;  V12 tmp6         [V12,T10] (  3,  0   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
+;  V13 tmp7         [V13,T05] (  4,  3   )     int  ->  rbx         "Inlining Arg"
+;* V14 tmp8         [V14    ] (  0,  0   )     ref  ->  zero-ref   
+;* V15 tmp9         [V15    ] (  0,  0   )     ref  ->  zero-ref   
+;* V16 tmp10        [V16    ] (  0,  0   )     int  ->  zero-ref   
+;  V17 tmp11        [V17,T07] (  1,  0.50)   ubyte  ->  rax         "field V05.hasValue (fldOffset=0x0)" P-INDEP
+;  V18 tmp12        [V18,T06] (  5,  2.50)    long  ->  r13         "field V05.value (fldOffset=0x8)" P-INDEP
+;  V19 tmp13        [V19,T13] (  2,  0   )     ref  ->  [rbp-0x30]  spill-single-def "argument with side effect"
+;  V20 tmp14        [V20,T14] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 8
 
 G_M14512_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        lea      rbp, [rsp+0x30]
        mov      rbx, rsi
        mov      r15, rdx
-						;; size=22 bbWeight=1 PerfScore 8.00
+       mov      r14, rcx
+						;; size=25 bbWeight=1 PerfScore 8.25
 G_M14512_IG02:
        cmp      rbx, 0xD1FFAB1E
-       jg       SHORT G_M14512_IG08
+       jg       G_M14512_IG13
        cmp      gword ptr [rdi+0x10], 0
-       jne      SHORT G_M14512_IG05
-						;; size=16 bbWeight=1 PerfScore 5.25
+       jne      G_M14512_IG08
+						;; size=24 bbWeight=1 PerfScore 5.25
 G_M14512_IG03:
-       mov      rsi, rbx
-       mov      rdx, rcx
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:CreateMemoryStream(long,byref):System.Net.Http.HttpContent+LimitMemoryStream:this
-       call     [rax]System.Net.Http.HttpContent:CreateMemoryStream(long,byref):System.Net.Http.HttpContent+LimitMemoryStream:this
-       mov      rsi, rax
-       mov      rdi, r15
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      eax, 1
-						;; size=34 bbWeight=0.50 PerfScore 2.75
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
+       call     [rax]System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.Headers.HttpContentHeaders:get_ContentLength():System.Nullable`1[long]:this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Net.Http.Headers.HttpContentHeaders:get_ContentLength():System.Nullable`1[long]:this
+       mov      r13, rdx
+       cmp      r13, rbx
+       jg       SHORT G_M14512_IG05
+       mov      rdi, 0xD1FFAB1E      ; System.Net.Http.HttpContent+LimitArrayPoolWriteStream
+       call     CORINFO_HELP_NEWSFAST
+       mov      r12, rax
+       movsxd   rdi, ebx
+       cmp      r13, rdi
+       jg       G_M14512_IG12
+       mov      dword ptr [r12+0x20], ebx
+       mov      dword ptr [r12+0x24], r13d
+       test     r13, r13
+       sete     dil
+       mov      byte  ptr [r12+0x30], dil
+       mov      byte  ptr [r12+0x31], 0
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M14512_IG11
+						;; size=110 bbWeight=0.50 PerfScore 11.88
 G_M14512_IG04:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+       mov      rdi, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[ubyte]:Value
+       mov      rsi, gword ptr [rdi]
+       lea      rdi, bword ptr [r12+0x10]
+       call     CORINFO_HELP_ASSIGN_REF
+       mov      rdi, r15
+       mov      rsi, r12
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+       xor      rdi, rdi
+       mov      gword ptr [r14], rdi
+       jmp      SHORT G_M14512_IG06
+						;; size=41 bbWeight=0.50 PerfScore 4.25
 G_M14512_IG05:
-       xor      rax, rax
-       mov      gword ptr [r15], rax
-						;; size=5 bbWeight=0.50 PerfScore 0.62
+       xor      rdi, rdi
+       mov      gword ptr [r15], rdi
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:CreateOverCapacityException(long):System.Net.Http.HttpRequestException
+       call     [rax]System.Net.Http.HttpContent:CreateOverCapacityException(long):System.Net.Http.HttpRequestException
+       mov      rsi, rax
+       mov      rdi, r14
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+						;; size=31 bbWeight=0.50 PerfScore 3.12
 G_M14512_IG06:
-       mov      gword ptr [rcx], rax
-						;; size=3 bbWeight=0.50 PerfScore 0.50
+       mov      eax, 1
+						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M14512_IG07:
        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_M14512_IG08:
+       xor      rax, rax
+       mov      gword ptr [r15], rax
+						;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M14512_IG09:
+       mov      gword ptr [r14], rax
+						;; size=3 bbWeight=0.50 PerfScore 0.50
+G_M14512_IG10:
+       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_M14512_IG11:
+       mov      rdi, 0xD1FFAB1E      ; System.Array+EmptyArray`1[ubyte]
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M14512_IG04
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M14512_IG12:
+       movsxd   rdi, ebx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:CreateOverCapacityException(long):System.Net.Http.HttpRequestException
+       call     [rax]System.Net.Http.HttpContent:CreateOverCapacityException(long):System.Net.Http.HttpRequestException
+       mov      rdi, rax
+       call     CORINFO_HELP_THROW
+       int3     
+						;; size=24 bbWeight=0 PerfScore 0.00
+G_M14512_IG13:
        mov      rdi, 0xD1FFAB1E      ; System.Int64
        call     CORINFO_HELP_NEWSFAST
        mov      r15, rax
        mov      qword ptr [r15+0x08], rbx
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rbx, gword ptr [rdi]
        mov      rdi, 0xD1FFAB1E      ; System.Int32
        call     CORINFO_HELP_NEWSFAST
        mov      r14, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_net_http_content_buffersize_limit():System.String
        call     [rax]System.SR:get_net_http_content_buffersize_limit():System.String
        mov      r13, rax
        mov      dword ptr [r14+0x08], 0xD1FFAB1E
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentOutOfRangeException
        call     CORINFO_HELP_NEWSFAST
        mov      r12, rax
        mov      edi, 0x3E30
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      gword ptr [rbp-0x30], rax
        mov      rdx, r14
        mov      rdi, rbx
        mov      rsi, r13
        mov      rcx, 0xD1FFAB1E      ; code for System.SR:Format(System.IFormatProvider,System.String,System.Object):System.String
        call     [rcx]System.SR:Format(System.IFormatProvider,System.String,System.Object):System.String
        mov      rcx, rax
        mov      rsi, gword ptr [rbp-0x30]
        mov      rdx, r15
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
        call     [rax]System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
        mov      rdi, r12
        call     CORINFO_HELP_THROW
        int3     
 						;; size=173 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 283, prolog size 16, PerfScore 21.38, instruction count 75, allocated bytes for code 283 (MethodHash=1a89c74f) for method System.Net.Http.HttpContent:CreateTemporaryBuffer(long,byref,byref):ubyte:this (FullOpts)
+; Total bytes of code 498, prolog size 16, PerfScore 38.25, instruction count 121, allocated bytes for code 498 (MethodHash=1a89c74f) for method System.Net.Http.HttpContent:CreateTemporaryBuffer(long,byref,byref):ubyte:this (FullOpts)
 ; ============================================================
164 (820.00 % of base) - System.Net.Http.HttpContent:ReadBufferedContentAsByteArray():ubyte[]:this
 ; Assembly listing for method System.Net.Http.HttpContent:ReadBufferedContentAsByteArray():ubyte[]:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Net.Http.HttpContent>
+;  V00 this         [V00,T03] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Net.Http.HttpContent>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 rat0         [V02,T00] (  3,  6   )     ref  ->  rdi         "virtual vtable call"
+;  V02 tmp1         [V02,T01] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
+;* V03 tmp2         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
+;  V04 tmp3         [V04,T00] (  4,  6   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <ubyte[]>
+;  V05 tmp4         [V05,T02] (  4,  5   )     int  ->  r15         "Inlining Arg"
+;* V06 tmp5         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V07 tmp6         [V07,T06] (  3,  2   )     ref  ->  r14         class-hnd "Inline return value spill temp" <ubyte[]>
+;  V08 tmp7         [V08,T05] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "dup spill" <ubyte[]>
+;* V09 tmp8         [V09    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V10 tmp9         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V11 tmp10        [V11    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V12 tmp11        [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V13 tmp12        [V13    ] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp13        [V14,T07] (  3,  1.50)   byref  ->  rbx         "field V06._reference (fldOffset=0x0)" P-INDEP
+;  V15 tmp14        [V15,T04] (  5,  3   )     int  ->  r15         "field V06._length (fldOffset=0x8)" P-INDEP
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M2296_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=1 PerfScore 1.25
+       push     r15
+       push     r14
+       push     rbx
+       push     rax
+       lea      rbp, [rsp+0x20]
+						;; size=12 bbWeight=1 PerfScore 5.50
 G_M2296_IG02:
-       mov      rdi, gword ptr [rdi+0x10]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x68]
-						;; size=11 bbWeight=1 PerfScore 6.00
+       mov      rsi, gword ptr [rdi+0x10]
+       mov      rbx, gword ptr [rsi+0x10]
+       mov      r15d, dword ptr [rsi+0x2C]
+       test     rbx, rbx
+       je       SHORT G_M2296_IG04
+						;; size=17 bbWeight=1 PerfScore 7.25
 G_M2296_IG03:
+       cmp      dword ptr [rbx+0x08], r15d
+       jb       G_M2296_IG12
+       add      rbx, 16
+       jmp      SHORT G_M2296_IG05
+						;; size=16 bbWeight=0.50 PerfScore 3.12
+G_M2296_IG04:
+       test     r15d, r15d
+       jne      SHORT G_M2296_IG12
+       xor      rbx, rbx
+       xor      r15d, r15d
+						;; size=10 bbWeight=0.50 PerfScore 0.88
+G_M2296_IG05:
+       test     r15d, r15d
+       je       SHORT G_M2296_IG07
+						;; size=5 bbWeight=1 PerfScore 1.25
+G_M2296_IG06:
+       mov      esi, r15d
+       mov      rdi, 0xD1FFAB1E      ; ubyte[]
+       call     CORINFO_HELP_NEWARR_1_VC
+       mov      r14, rax
+       mov      edx, r15d
+       lea      rdi, bword ptr [r14+0x10]
+       mov      rsi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       jmp      SHORT G_M2296_IG09
+						;; size=45 bbWeight=0.50 PerfScore 4.00
+G_M2296_IG07:
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M2296_IG11
+						;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M2296_IG08:
+       mov      rax, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[ubyte]:Value
+       mov      r14, gword ptr [rax]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M2296_IG09:
+       mov      rax, r14
+						;; size=3 bbWeight=1 PerfScore 0.25
+G_M2296_IG10:
+       add      rsp, 8
+       pop      rbx
+       pop      r14
+       pop      r15
        pop      rbp
-       tail.jmp [rax+0x30]System.IO.MemoryStream:ToArray():ubyte[]:this
-						;; size=5 bbWeight=1 PerfScore 2.50
+       ret      
+						;; size=11 bbWeight=1 PerfScore 3.25
+G_M2296_IG11:
+       mov      rdi, 0xD1FFAB1E      ; System.Array+EmptyArray`1[ubyte]
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M2296_IG08
+						;; size=24 bbWeight=0 PerfScore 0.00
+G_M2296_IG12:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 20, prolog size 4, PerfScore 9.75, instruction count 7, allocated bytes for code 20 (MethodHash=f95ef707) for method System.Net.Http.HttpContent:ReadBufferedContentAsByteArray():ubyte[]:this (FullOpts)
+; Total bytes of code 184, prolog size 12, PerfScore 28.75, instruction count 50, allocated bytes for code 184 (MethodHash=f95ef707) for method System.Net.Http.HttpContent:ReadBufferedContentAsByteArray():ubyte[]:this (FullOpts)
 ; ============================================================
83 (122.06 % of base) - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ToArray():ubyte[]:this
 ; Assembly listing for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ToArray():ubyte[]:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
-;  V01 loc0         [V01,T01] (  3,  3   )     ref  ->  r14         class-hnd exact single-def <ubyte[]>
+;  V00 this         [V00,T00] (  7,  5   )     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
+;  V01 loc0         [V01,T02] (  4,  2   )     ref  ->  r15         class-hnd exact single-def <ubyte[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  3,  3   )     int  ->  r15         "CSE #01: aggressive"
+;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
+;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;* V05 tmp3         [V05    ] (  0,  0   )   byref  ->  zero-ref    "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06    ] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
+;  V07 tmp5         [V07,T04] (  2,  1   )   byref  ->  rsi         "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V08 tmp6         [V08,T05] (  2,  1   )     int  ->  rdx         "field V04._length (fldOffset=0x8)" P-INDEP
+;  V09 cse0         [V09,T03] (  3,  1.50)     ref  ->  rax         "CSE #01: moderate"
+;  V10 cse1         [V10,T01] (  5,  2.50)     int  ->  rsi         multi-def "CSE #02: aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M28475_IG01:
+       push     rbp
        push     r15
-       push     r14
        push     rbx
+       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
-						;; size=8 bbWeight=1 PerfScore 3.25
+						;; size=12 bbWeight=1 PerfScore 3.75
 G_M28475_IG02:
-       mov      r15d, dword ptr [rbx+0x1C]
-       movsxd   rsi, r15d
+       cmp      byte  ptr [rbx+0x31], 0
+       jne      SHORT G_M28475_IG04
+						;; size=6 bbWeight=1 PerfScore 4.00
+G_M28475_IG03:
+       mov      esi, dword ptr [rbx+0x2C]
+       mov      rax, gword ptr [rbx+0x10]
+       cmp      esi, dword ptr [rax+0x08]
+       je       SHORT G_M28475_IG09
+						;; size=12 bbWeight=0.50 PerfScore 4.00
+G_M28475_IG04:
+       mov      esi, dword ptr [rbx+0x2C]
+       test     esi, esi
+       je       SHORT G_M28475_IG06
+       movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        call     CORINFO_HELP_NEWARR_1_VC
-       mov      r14, rax
-       mov      rdi, gword ptr [rbx+0x10]
-       mov      r8d, r15d
-       mov      rdx, r14
-       xor      esi, esi
-       xor      ecx, ecx
-       mov      rax, 0xD1FFAB1E      ; code for System.Buffer:BlockCopy(System.Array,int,System.Array,int,int)
-       call     [rax]System.Buffer:BlockCopy(System.Array,int,System.Array,int,int)
-       mov      rax, r14
-						;; size=54 bbWeight=1 PerfScore 10.25
-G_M28475_IG03:
+       mov      r15, rax
+       lea      rsi, bword ptr [r15+0x10]
+       mov      edx, dword ptr [r15+0x08]
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent+LimitArrayPoolWriteStream:CopyToCore(System.Span`1[ubyte]):this
+       call     [rax]System.Net.Http.HttpContent+LimitArrayPoolWriteStream:CopyToCore(System.Span`1[ubyte]):this
+       mov      rax, r15
+						;; size=54 bbWeight=0.50 PerfScore 5.62
+G_M28475_IG05:
        pop      rbx
-       pop      r14
        pop      r15
+       pop      rbp
        ret      
-						;; size=6 bbWeight=1 PerfScore 2.50
+						;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M28475_IG06:
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M28475_IG10
+						;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M28475_IG07:
+       mov      rax, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[ubyte]:Value
+       mov      rax, gword ptr [rax]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M28475_IG08:
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+						;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M28475_IG09:
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+						;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M28475_IG10:
+       mov      rdi, 0xD1FFAB1E      ; System.Array+EmptyArray`1[ubyte]
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M28475_IG07
+						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 68, prolog size 5, PerfScore 16.00, instruction count 21, allocated bytes for code 68 (MethodHash=4f6790c4) for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ToArray():ubyte[]:this (FullOpts)
+; Total bytes of code 151, prolog size 9, PerfScore 24.38, instruction count 45, allocated bytes for code 151 (MethodHash=4f6790c4) for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ToArray():ubyte[]:this (FullOpts)
 ; ============================================================
57 (65.52 % of base) - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(ubyte[],int,int):this
 ; Assembly listing for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(ubyte[],int,int):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  8,  8   )     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
-;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  r14         class-hnd single-def <ubyte[]>
-;  V02 arg2         [V02,T03] (  3,  3   )     int  ->  r13         single-def
-;  V03 arg3         [V03,T01] (  5,  5   )     int  ->  r15         single-def
+;  V00 this         [V00,T03] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
+;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->  rsi         class-hnd single-def <ubyte[]>
+;  V02 arg2         [V02,T01] (  5,  5   )     int  ->  rdx         single-def
+;  V03 arg3         [V03,T02] (  4,  4   )     int  ->  rcx         single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
+;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
+;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V09 tmp5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V10 tmp6         [V10    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
+;* V11 tmp7         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V12 tmp8         [V12    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V13 tmp9         [V13    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;* V14 tmp10        [V14    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
+;* V15 tmp11        [V15    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
+;  V16 tmp12        [V16,T07] (  2,  2   )   byref  ->  rsi         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V18 tmp14        [V18    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V19 tmp15        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
+;  V20 tmp16        [V20,T08] (  2,  2   )   byref  ->  rsi         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V21 tmp17        [V21,T09] (  2,  2   )     int  ->  rdx         "field V09._length (fldOffset=0x8)" P-INDEP
+;  V22 cse0         [V22,T04] (  3,  3   )     int  ->  rax         "CSE #02: aggressive"
+;  V23 cse1         [V23,T05] (  3,  3   )    long  ->   r9         "CSE #01: aggressive"
+;  V24 cse2         [V24,T06] (  3,  3   )    long  ->  rdx         "CSE #03: aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M28126_IG01:
        push     rbp
-       push     r15
-       push     r14
-       push     r13
-       push     rbx
-       lea      rbp, [rsp+0x20]
-       mov      rbx, rdi
-       mov      r14, rsi
-       mov      r13d, edx
-       mov      r15d, ecx
-						;; size=25 bbWeight=1 PerfScore 6.50
+       mov      rbp, rsp
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M28126_IG02:
-       mov      esi, r15d
-       add      esi, dword ptr [rbx+0x1C]
-       mov      rdi, rbx
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent+LimitArrayPoolWriteStream:EnsureCapacity(int):this
-       call     [rax]System.Net.Http.HttpContent+LimitArrayPoolWriteStream:EnsureCapacity(int):this
-       mov      rdx, gword ptr [rbx+0x10]
-       mov      ecx, dword ptr [rbx+0x1C]
-       mov      rdi, r14
-       mov      esi, r13d
-       mov      r8d, r15d
-       mov      rax, 0xD1FFAB1E      ; code for System.Buffer:BlockCopy(System.Array,int,System.Array,int,int)
-       call     [rax]System.Buffer:BlockCopy(System.Array,int,System.Array,int,int)
-       add      dword ptr [rbx+0x1C], r15d
-						;; size=53 bbWeight=1 PerfScore 17.75
+       test     rsi, rsi
+       je       SHORT G_M28126_IG07
+       test     edx, edx
+       jl       SHORT G_M28126_IG06
+       mov      eax, dword ptr [rsi+0x08]
+       mov      r8d, eax
+       sub      r8d, edx
+       movsxd   r8, r8d
+       mov      r9d, ecx
+       cmp      r8, r9
+       jl       SHORT G_M28126_IG05
+       mov      edx, edx
+       add      r9, rdx
+       cmp      r9, rax
+       ja       SHORT G_M28126_IG04
+       lea      rsi, bword ptr [rsi+rdx+0x10]
+       mov      edx, ecx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(System.ReadOnlySpan`1[ubyte]):this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(System.ReadOnlySpan`1[ubyte]):this
+       nop      
+						;; size=61 bbWeight=1 PerfScore 16.25
 G_M28126_IG03:
-       pop      rbx
-       pop      r13
-       pop      r14
-       pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=1 PerfScore 3.50
+						;; size=2 bbWeight=1 PerfScore 1.50
+G_M28126_IG04:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
+G_M28126_IG05:
+       mov      edi, 27
+       mov      esi, 16
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
+       int3     
+						;; size=23 bbWeight=0 PerfScore 0.00
+G_M28126_IG06:
+       mov      edi, 90
+       mov      esi, 13
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
+       int3     
+						;; size=23 bbWeight=0 PerfScore 0.00
+G_M28126_IG07:
+       mov      edi, 88
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
+       call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
+       int3     
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 87, prolog size 13, PerfScore 27.75, instruction count 29, allocated bytes for code 87 (MethodHash=28219221) for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(ubyte[],int,int):this (FullOpts)
+; Total bytes of code 144, prolog size 4, PerfScore 19.00, instruction count 42, allocated bytes for code 144 (MethodHash=28219221) for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(ubyte[],int,int):this (FullOpts)
 ; ============================================================
35 (22.58 % of base) - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(System.ReadOnlySpan`1[ubyte]):this
 ; Assembly listing for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 0 single block inlinees; 3 inlinees without PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  8,  8   )     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
+;  V00 this         [V00,T00] ( 11,  8   )     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V04 tmp2         [V04,T02] (  4,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
-;  V05 tmp3         [V05,T03] (  4,  5   )     int  ->  rcx         "Inlining Arg"
-;* V06 tmp4         [V06    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V07 tmp5         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V08 tmp6         [V08    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V09 tmp7         [V09    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V10 tmp8         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V11 tmp9         [V11,T04] (  2,  2   )   byref  ->  r14         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V12 tmp10        [V12,T01] (  8,  6.50)     int  ->  r15         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V13 tmp11        [V13,T05] (  3,  2   )   byref  ->  rdi         "field V03._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp12        [V14,T06] (  3,  2   )     int  ->  rax         "field V03._length (fldOffset=0x8)" P-INDEP
-;* V15 tmp13        [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V16 tmp14        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;  V02 loc0         [V02,T04] (  3,  2.50)     ref  ->  r14         class-hnd single-def <ubyte[]>
+;  V03 loc1         [V03,T03] (  5,  3.50)     int  ->  r13        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
+;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
+;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
+;  V09 tmp5         [V09,T07] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V10 tmp6         [V10,T08] (  2,  2   )     int  ->  rax         "Inlining Arg"
+;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V12 tmp8         [V12    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V13 tmp9         [V13    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V14 tmp10        [V14    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V15 tmp11        [V15,T02] (  3,  2   )   byref  ->  rsi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V16 tmp12        [V16,T01] (  8,  5.50)     int  ->  r15         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;* V17 tmp13        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V18 tmp14        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;* V19 tmp15        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
+;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
+;* V21 tmp17        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp19        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp20        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
+;* V25 tmp21        [V25    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
+;  V27 cse0         [V27,T05] (  3,  2.50)     int  ->  rax         "CSE #03: aggressive"
+;  V28 cse1         [V28,T06] (  3,  2.50)     int  ->  r12         "CSE #02: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M24462_IG01:
        push     rbp
        push     r15
        push     r14
+       push     r13
+       push     r12
        push     rbx
        push     rax
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x30]
        mov      rbx, rdi
-       mov      r14, rsi
        mov      r15d, edx
-						;; size=21 bbWeight=1 PerfScore 6.25
+						;; size=22 bbWeight=1 PerfScore 8.00
 G_M24462_IG02:
-       mov      esi, r15d
-       add      esi, dword ptr [rbx+0x1C]
-       mov      rdi, rbx
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent+LimitArrayPoolWriteStream:EnsureCapacity(int):this
-       call     [rax]System.Net.Http.HttpContent+LimitArrayPoolWriteStream:EnsureCapacity(int):this
-       mov      rax, gword ptr [rbx+0x10]
-       mov      ecx, dword ptr [rbx+0x1C]
-       test     rax, rax
-       je       SHORT G_M24462_IG04
-						;; size=33 bbWeight=1 PerfScore 12.00
+       mov      edx, dword ptr [rbx+0x20]
+       sub      edx, dword ptr [rbx+0x2C]
+       cmp      edx, r15d
+       jl       G_M24462_IG08
+       mov      r14, gword ptr [rbx+0x10]
+       mov      r13d, dword ptr [rbx+0x28]
+       mov      r12d, dword ptr [r14+0x08]
+       mov      eax, r12d
+       sub      eax, r13d
+       cmp      eax, r15d
+       jge      SHORT G_M24462_IG04
+						;; size=38 bbWeight=1 PerfScore 14.00
 G_M24462_IG03:
-       mov      edx, ecx
-       mov      edi, r15d
-       add      rdx, rdi
-       mov      edi, dword ptr [rax+0x08]
-       cmp      rdx, rdi
-       ja       SHORT G_M24462_IG08
-       mov      ecx, ecx
-       lea      rdi, bword ptr [rax+rcx+0x10]
-       mov      eax, r15d
-       jmp      SHORT G_M24462_IG05
-						;; size=28 bbWeight=0.50 PerfScore 3.75
-G_M24462_IG04:
-       or       ecx, r15d
-       jne      SHORT G_M24462_IG08
-       xor      rdi, rdi
-       xor      eax, eax
-						;; size=9 bbWeight=0.50 PerfScore 0.88
-G_M24462_IG05:
-       cmp      r15d, eax
-       jg       SHORT G_M24462_IG07
        mov      edx, r15d
-       mov      rsi, r14
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent+LimitArrayPoolWriteStream:GrowAndWrite(System.ReadOnlySpan`1[ubyte]):this
+       call     [rax]System.Net.Http.HttpContent+LimitArrayPoolWriteStream:GrowAndWrite(System.ReadOnlySpan`1[ubyte]):this
+       jmp      SHORT G_M24462_IG05
+						;; size=20 bbWeight=0.50 PerfScore 2.88
+G_M24462_IG04:
+       cmp      r12d, r13d
+       jb       SHORT G_M24462_IG07
+       mov      ecx, r13d
+       lea      rdi, bword ptr [r14+rcx+0x10]
+       cmp      r15d, eax
+       ja       SHORT G_M24462_IG06
+       mov      edx, r15d
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       add      dword ptr [rbx+0x1C], r15d
-						;; size=27 bbWeight=1 PerfScore 8.00
-G_M24462_IG06:
+       add      r13d, r15d
+       mov      dword ptr [rbx+0x28], r13d
+       add      dword ptr [rbx+0x2C], r15d
+						;; size=44 bbWeight=0.50 PerfScore 5.75
+G_M24462_IG05:
        add      rsp, 8
        pop      rbx
+       pop      r12
+       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=1 PerfScore 3.25
-G_M24462_IG07:
+						;; size=15 bbWeight=1 PerfScore 4.25
+G_M24462_IG06:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M24462_IG08:
+G_M24462_IG07:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
+G_M24462_IG08:
+       movsxd   rdi, dword ptr [rbx+0x20]
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:CreateOverCapacityException(long):System.Net.Http.HttpRequestException
+       call     [rax]System.Net.Http.HttpContent:CreateOverCapacityException(long):System.Net.Http.HttpRequestException
+       mov      rdi, rax
+       call     CORINFO_HELP_THROW
+       int3     
+						;; size=25 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 155, prolog size 12, PerfScore 34.12, instruction count 51, allocated bytes for code 155 (MethodHash=7a51a071) for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
+; Total bytes of code 190, prolog size 16, PerfScore 34.88, instruction count 58, allocated bytes for code 190 (MethodHash=7a51a071) for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
 ; ============================================================
23 (69.70 % of base) - System.Net.Http.HttpContent:CreateContentReadStream(System.Threading.CancellationToken):System.IO.Stream:this
 ; Assembly listing for method System.Net.Http.HttpContent:CreateContentReadStream(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Threading.CancellationToken>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T01] (  2,  2   )     ref  ->  rsi         single-def "field V01._source (fldOffset=0x0)" P-INDEP
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M34305_IG01:
+       push     rbp
        push     rbx
+       push     rax
+       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
-						;; size=4 bbWeight=1 PerfScore 1.25
+						;; size=11 bbWeight=1 PerfScore 3.75
 G_M34305_IG02:
        mov      rdi, rbx
        mov      rdx, rsi
        mov      esi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:LoadIntoBuffer(long,System.Threading.CancellationToken):this
        call     [rax]System.Net.Http.HttpContent:LoadIntoBuffer(long,System.Threading.CancellationToken):this
-       mov      rax, gword ptr [rbx+0x10]
-						;; size=27 bbWeight=1 PerfScore 6.00
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this
+						;; size=36 bbWeight=1 PerfScore 4.50
 G_M34305_IG03:
+       add      rsp, 8
        pop      rbx
-       ret      
-						;; size=2 bbWeight=1 PerfScore 1.50
+       pop      rbp
+       tail.jmp [rax]System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this
+						;; size=9 bbWeight=1 PerfScore 3.25
 
-; Total bytes of code 33, prolog size 1, PerfScore 8.75, instruction count 10, allocated bytes for code 33 (MethodHash=0a9c79fe) for method System.Net.Http.HttpContent:CreateContentReadStream(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 16, allocated bytes for code 56 (MethodHash=0a9c79fe) for method System.Net.Http.HttpContent:CreateContentReadStream(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
 ; ============================================================
23 (69.70 % of base) - System.Net.Http.MultipartContent:<>n__1(System.Threading.CancellationToken):System.IO.Stream:this
 ; Assembly listing for method System.Net.Http.MultipartContent:<>n__1(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Net.Http.MultipartContent>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Threading.CancellationToken>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T01] (  2,  2   )     ref  ->  rsi         single-def "field V01._source (fldOffset=0x0)" P-INDEP
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M1337_IG01:
+       push     rbp
        push     rbx
+       push     rax
+       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
-						;; size=4 bbWeight=1 PerfScore 1.25
+						;; size=11 bbWeight=1 PerfScore 3.75
 G_M1337_IG02:
        mov      rdi, rbx
        mov      rdx, rsi
        mov      esi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:LoadIntoBuffer(long,System.Threading.CancellationToken):this
        call     [rax]System.Net.Http.HttpContent:LoadIntoBuffer(long,System.Threading.CancellationToken):this
-       mov      rax, gword ptr [rbx+0x10]
-						;; size=27 bbWeight=1 PerfScore 6.00
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this
+						;; size=36 bbWeight=1 PerfScore 4.50
 G_M1337_IG03:
+       add      rsp, 8
        pop      rbx
-       ret      
-						;; size=2 bbWeight=1 PerfScore 1.50
+       pop      rbp
+       tail.jmp [rax]System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this
+						;; size=9 bbWeight=1 PerfScore 3.25
 
-; Total bytes of code 33, prolog size 1, PerfScore 8.75, instruction count 10, allocated bytes for code 33 (MethodHash=6164fac6) for method System.Net.Http.MultipartContent:<>n__1(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 16, allocated bytes for code 56 (MethodHash=6164fac6) for method System.Net.Http.MultipartContent:<>n__1(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
 ; ============================================================
15 (4.41 % of base) - System.Net.Http.HttpContent:Dispose(ubyte):this
 ; Assembly listing for method System.Net.Http.HttpContent:Dispose(ubyte):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 8 single block inlinees; 3 inlinees without PGO data
+; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  7,  4.50)     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent>
 ;  V01 arg1         [V01,T02] (  3,  3   )   ubyte  ->  rsi         single-def
 ;  V02 loc0         [V02,T01] ( 11,  5   )     ref  ->  r15         class-hnd single-def <System.Threading.Tasks.Task`1[System.IO.Stream]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T06] (  2,  2   )     ref  ->  rdi         class-hnd single-def "dup spill" <System.IO.Stream>
-;  V05 tmp2         [V05,T03] (  7,  3.50)     ref  ->  rdi        
+;  V05 tmp2         [V05,T04] (  7,  3.50)     ref  ->  rdi        
 ;* V06 tmp3         [V06    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.IO.Stream>
 ;* V08 tmp5         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
 ;  V11 tmp8         [V11,T08] (  3,  1   )     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <System.AggregateException>
-;* V12 tmp9         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.IO.MemoryStream>
+;  V12 tmp9         [V12,T03] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
 ;* V13 tmp10        [V13,T09] (  0,  0   )     ref  ->  zero-ref    single-def "field V08._source (fldOffset=0x0)" P-INDEP
 ;* V14 tmp11        [V14    ] (  0,  0   )     ref  ->  zero-ref    "field V10._source (fldOffset=0x0)" P-INDEP
-;  V15 tmp12        [V15,T04] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V16 cse0         [V16,T05] (  4,  2   )     ref  ->  r15         "CSE #01: aggressive"
-;  V17 cse1         [V17,T07] (  3,  1.50)     ref  ->  rdi         "CSE #02: moderate"
+;  V15 cse0         [V15,T05] (  4,  2   )     ref  ->  r15         "CSE #01: aggressive"
+;  V16 cse1         [V16,T07] (  3,  1.50)     ref  ->  rbx         "CSE #02: moderate"
 ;
 ; Lcl frame size = 8
 
 G_M18504_IG01:
        push     rbp
        push     r15
        push     r14
        push     rbx
        push     rax
        lea      rbp, [rsp+0x20]
        mov      rbx, rdi
 						;; size=15 bbWeight=1 PerfScore 5.75
 G_M18504_IG02:
        test     sil, sil
        je       G_M18504_IG10
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M18504_IG03:
        cmp      byte  ptr [rbx+0x20], 0
        jne      G_M18504_IG10
        mov      byte  ptr [rbx+0x20], 1
        mov      r15, gword ptr [rbx+0x18]
        test     r15, r15
        je       G_M18504_IG09
        mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.IO.Stream
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        mov      rdi, rax
        test     rdi, rdi
        jne      G_M18504_IG07
        mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Stream]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        mov      r15, rax
        test     r15, r15
        je       G_M18504_IG06
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:get_Status():int:this
        call     [rax]System.Threading.Tasks.Task:get_Status():int:this
        cmp      eax, 5
        jne      SHORT G_M18504_IG06
        mov      edi, dword ptr [r15+0x34]
        and      edi, 0xD1FFAB1E
        cmp      edi, 0xD1FFAB1E
        je       SHORT G_M18504_IG05
        test     dword ptr [r15+0x34], 0xD1FFAB1E
        jne      SHORT G_M18504_IG04
        mov      rdi, r15
        xor      rdx, rdx
        mov      esi, -1
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:InternalWaitCore(int,System.Threading.CancellationToken):ubyte:this
        call     [rax]System.Threading.Tasks.Task:InternalWaitCore(int,System.Threading.CancellationToken):ubyte:this
 						;; size=171 bbWeight=0.50 PerfScore 17.50
 G_M18504_IG04:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:NotifyDebuggerOfWaitCompletionIfNecessary():ubyte:this
        call     [rax]System.Threading.Tasks.Task:NotifyDebuggerOfWaitCompletionIfNecessary():ubyte:this
        mov      edi, dword ptr [r15+0x34]
        and      edi, 0xD1FFAB1E
        cmp      edi, 0xD1FFAB1E
        je       SHORT G_M18504_IG05
        mov      rdi, r15
        mov      esi, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:GetExceptions(ubyte):System.AggregateException:this
        call     [rax]System.Threading.Tasks.Task:GetExceptions(ubyte):System.AggregateException:this
        mov      r14, rax
        test     r14, r14
        jne      SHORT G_M18504_IG12
 						;; size=61 bbWeight=0.50 PerfScore 6.12
 G_M18504_IG05:
        mov      rdi, gword ptr [r15+0x38]
        jmp      SHORT G_M18504_IG07
 						;; size=6 bbWeight=0.50 PerfScore 2.00
 G_M18504_IG06:
        xor      rdi, rdi
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M18504_IG07:
        test     rdi, rdi
        je       SHORT G_M18504_IG08
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x50]
        call     [rax+0x18]System.IO.Stream:Close():this
 						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M18504_IG08:
        xor      rdi, rdi
        mov      gword ptr [rbx+0x18], rdi
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M18504_IG09:
-       mov      rdi, gword ptr [rbx+0x10]
-       test     rdi, rdi
+       mov      rbx, gword ptr [rbx+0x10]
+       test     rbx, rbx
        je       SHORT G_M18504_IG10
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x50]
-       call     [rax+0x18]System.IO.Stream:Close():this
-						;; size=19 bbWeight=0.50 PerfScore 5.12
+       cmp      byte  ptr [rbx], bl
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ReturnAllPooledBuffers():this
+       call     [rax]System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ReturnAllPooledBuffers():this
+       mov      rdi, rbx
+       call     System.GC:_SuppressFinalize(System.Object)
+						;; size=34 bbWeight=0.50 PerfScore 5.50
 G_M18504_IG10:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M18504_IG11:
        add      rsp, 8
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=1 PerfScore 3.25
 G_M18504_IG12:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:UpdateExceptionObservedStatus():this
        call     [rax]System.Threading.Tasks.Task:UpdateExceptionObservedStatus():this
        mov      rdi, r14
        call     CORINFO_HELP_THROW
        int3     
 						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 340, prolog size 12, PerfScore 46.12, instruction count 88, allocated bytes for code 340 (MethodHash=f6afb7b7) for method System.Net.Http.HttpContent:Dispose(ubyte):this (FullOpts)
+; Total bytes of code 355, prolog size 12, PerfScore 46.50, instruction count 91, allocated bytes for code 355 (MethodHash=f6afb7b7) for method System.Net.Http.HttpContent:Dispose(ubyte):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/c4d8c48e1d0fe823d0635204ac232d70

@MihuBot
Copy link
Owner Author

MihuBot commented Nov 30, 2024

Top method improvements

-361 (-49.79 % of base) - System.Net.Http.HttpContent:TryReadAsStream():System.IO.Stream:this
 ; Assembly listing for method System.Net.Http.HttpContent:TryReadAsStream():System.IO.Stream:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 15 single block inlinees; 9 inlinees without PGO data
+; 0 inlinees with PGO data; 7 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  9,  6   )     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent>
+;  V00 this         [V00,T00] ( 10,  6.50)     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.IO.Stream>
-;  V02 loc1         [V02    ] (  5,  2.50)  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ubyte]>
-;  V03 loc2         [V03,T11] (  3,  1.50)     ref  ->  rax         class-hnd single-def <System.IO.Stream>
-;  V04 loc3         [V04,T03] ( 10,  4.50)     ref  ->  rbx         class-hnd single-def <System.Threading.Tasks.Task`1[System.IO.Stream]>
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T05] (  4,  4   )     ref  ->  r15         class-hnd single-def "impAppendStmt" <ubyte[]>
-;  V07 tmp2         [V07,T02] (  7,  6   )     int  ->  r14         "impAppendStmt"
-;  V08 tmp3         [V08,T00] (  9,  9   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.IO.MemoryStream>
-;  V09 tmp4         [V09,T10] (  4,  2   )     ref  ->  r13        
-;* V10 tmp5         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V11 tmp6         [V11,T15] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V12 tmp7         [V12,T04] (  5,  4   )     int  ->  r12         "Inlining Arg"
-;* V13 tmp8         [V13    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V14 tmp9         [V14,T09] (  3,  3   )     int  ->  r12         "dup spill"
-;  V15 tmp10        [V15,T17] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-;* V16 tmp11        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.IO.Stream>
-;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-;* V18 tmp13        [V18    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V19 tmp14        [V19    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V20 tmp15        [V20,T14] (  3,  1   )     ref  ->  r15         class-hnd single-def "Inline stloc first use temp" <System.AggregateException>
-;  V21 tmp16        [V21    ] (  3,  1.50)     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V02._array (fldOffset=0x0)" P-DEP
-;  V22 tmp17        [V22    ] (  3,  1.50)     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V02._offset (fldOffset=0x8)" P-DEP
-;  V23 tmp18        [V23    ] (  3,  1.50)     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V02._count (fldOffset=0xc)" P-DEP
-;* V24 tmp19        [V24,T16] (  0,  0   )     ref  ->  zero-ref    single-def "field V17._source (fldOffset=0x0)" P-INDEP
-;* V25 tmp20        [V25    ] (  0,  0   )     ref  ->  zero-ref    "field V19._source (fldOffset=0x0)" P-INDEP
-;  V26 tmp21        [V26,T08] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V27 tmp22        [V27,T18] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V28 tmp23        [V28,T19] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V29 tmp24        [V29,T20] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V30 cse0         [V30,T07] (  5,  3.12)     ref  ->  r15         "CSE #02: moderate"
-;  V31 cse1         [V31,T12] (  3,  1.50)     ref  ->  rdi         "CSE #01: moderate"
-;  V32 rat0         [V32,T06] (  5,  3.75)     ref  ->  rbx         "replacement local"
-;  V33 rat1         [V33,T13] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
+;  V02 loc1         [V02,T05] (  3,  1.50)     ref  ->  rax         class-hnd single-def <System.IO.Stream>
+;  V03 loc2         [V03,T01] ( 10,  4.50)     ref  ->  rbx         class-hnd single-def <System.Threading.Tasks.Task`1[System.IO.Stream]>
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V05 tmp1         [V05,T04] (  4,  2   )     ref  ->  r15        
+;* V06 tmp2         [V06    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.IO.Stream>
+;* V08 tmp4         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
+;* V09 tmp5         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
+;  V11 tmp7         [V11,T07] (  3,  1   )     ref  ->  r15         class-hnd single-def "Inline stloc first use temp" <System.AggregateException>
+;* V12 tmp8         [V12,T08] (  0,  0   )     ref  ->  zero-ref    single-def "field V08._source (fldOffset=0x0)" P-INDEP
+;* V13 tmp9         [V13    ] (  0,  0   )     ref  ->  zero-ref    "field V10._source (fldOffset=0x0)" P-INDEP
+;  V14 cse0         [V14,T03] (  5,  3.12)     ref  ->  r15         "CSE #01: aggressive"
+;  V15 rat0         [V15,T02] (  5,  3.75)     ref  ->  rbx         "replacement local"
+;  V16 rat1         [V16,T06] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 0
 
 G_M29990_IG01:
        push     rbp
        push     r15
-       push     r14
-       push     r13
-       push     r12
        push     rbx
-       sub      rsp, 24
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
+       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
-						;; size=28 bbWeight=1 PerfScore 8.25
+						;; size=12 bbWeight=1 PerfScore 3.75
 G_M29990_IG02:
        cmp      byte  ptr [rbx+0x20], 0
-       jne      G_M29990_IG23
+       jne      G_M29990_IG18
        mov      r15, gword ptr [rbx+0x18]
        test     r15, r15
        je       G_M29990_IG13
 						;; size=23 bbWeight=1 PerfScore 7.25
 G_M29990_IG03:
        mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.IO.Stream
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        jne      G_M29990_IG12
        mov      rbx, r15
        test     rbx, rbx
        je       SHORT G_M29990_IG06
 						;; size=42 bbWeight=0.50 PerfScore 3.25
 G_M29990_IG04:
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Stream]
        cmp      qword ptr [rbx], rdi
        je       SHORT G_M29990_IG06
 						;; size=15 bbWeight=0.25 PerfScore 1.06
 G_M29990_IG05:
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
        mov      rbx, rax
 						;; size=18 bbWeight=0.12 PerfScore 0.47
 G_M29990_IG06:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:get_Status():int:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Threading.Tasks.Task:get_Status():int:this
        cmp      eax, 5
-       jne      G_M29990_IG10
+       jne      SHORT G_M29990_IG10
        mov      edi, dword ptr [rbx+0x34]
        and      edi, 0xD1FFAB1E
        cmp      edi, 0xD1FFAB1E
        je       SHORT G_M29990_IG08
        test     dword ptr [rbx+0x34], 0xD1FFAB1E
        jne      SHORT G_M29990_IG07
        mov      rdi, rbx
        xor      rdx, rdx
        mov      esi, -1
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:InternalWaitCore(int,System.Threading.CancellationToken):ubyte:this
        call     [rax]System.Threading.Tasks.Task:InternalWaitCore(int,System.Threading.CancellationToken):ubyte:this
-						;; size=74 bbWeight=0.50 PerfScore 9.62
+						;; size=70 bbWeight=0.50 PerfScore 9.62
 G_M29990_IG07:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:NotifyDebuggerOfWaitCompletionIfNecessary():ubyte:this
        call     [rax]System.Threading.Tasks.Task:NotifyDebuggerOfWaitCompletionIfNecessary():ubyte:this
        mov      edi, dword ptr [rbx+0x34]
        and      edi, 0xD1FFAB1E
        cmp      edi, 0xD1FFAB1E
        je       SHORT G_M29990_IG08
        mov      rdi, rbx
        mov      esi, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:GetExceptions(ubyte):System.AggregateException:this
        call     [rax]System.Threading.Tasks.Task:GetExceptions(ubyte):System.AggregateException:this
        mov      r15, rax
        test     r15, r15
-       jne      G_M29990_IG18
-						;; size=64 bbWeight=0.50 PerfScore 6.12
+       jne      SHORT G_M29990_IG17
+						;; size=60 bbWeight=0.50 PerfScore 6.12
 G_M29990_IG08:
        mov      rax, gword ptr [rbx+0x38]
 						;; size=4 bbWeight=0.50 PerfScore 1.00
 G_M29990_IG09:
-       add      rsp, 24
        pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M29990_IG10:
        xor      rax, rax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M29990_IG11:
-       add      rsp, 24
        pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M29990_IG12:
-       add      rsp, 24
        pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M29990_IG13:
-       mov      rdi, gword ptr [rbx+0x10]
-       test     rdi, rdi
-       jne      SHORT G_M29990_IG17
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu  xmmword ptr [rbp-0x38], xmm0
-						;; size=18 bbWeight=0.50 PerfScore 2.29
+       cmp      gword ptr [rbx+0x10], 0
+       je       SHORT G_M29990_IG14
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this
+       call     [rax]System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this
+       mov      r15, rax
+       jmp      SHORT G_M29990_IG15
+						;; size=27 bbWeight=0.50 PerfScore 4.88
 G_M29990_IG14:
        mov      rdi, rbx
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x18]System.Net.Http.HttpContent:TryCreateContentReadStream():System.IO.Stream:this
-       mov      r13, rax
+       mov      r15, rax
 						;; size=16 bbWeight=0.50 PerfScore 3.75
 G_M29990_IG15:
        lea      rdi, bword ptr [rbx+0x18]
-       mov      rsi, r13
+       mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rax, r13
+       mov      rax, r15
 						;; size=15 bbWeight=0.50 PerfScore 1.00
 G_M29990_IG16:
-       add      rsp, 24
        pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M29990_IG17:
-       lea      rsi, [rbp-0x38]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x68]
-       call     [rax+0x18]System.IO.MemoryStream:TryGetBuffer(byref):ubyte:this
-       test     eax, eax
-       je       SHORT G_M29990_IG14
-       mov      r15, gword ptr [rbp-0x38]
-       mov      r14d, dword ptr [rbp-0x30]
-       mov      rdi, 0xD1FFAB1E      ; System.IO.MemoryStream
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      r12d, dword ptr [rbp-0x2C]
-       test     r15, r15
-       je       G_M29990_IG22
-       test     r14d, r14d
-       jl       G_M29990_IG21
-       test     r12d, r12d
-       jl       G_M29990_IG20
-       mov      edi, dword ptr [r15+0x08]
-       sub      edi, r14d
-       cmp      edi, r12d
-       jl       SHORT G_M29990_IG19
-       lea      rdi, bword ptr [r13+0x10]
-       mov      rsi, r15
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      dword ptr [r13+0x1C], r14d
-       mov      dword ptr [r13+0x18], r14d
-       add      r12d, r14d
-       mov      dword ptr [r13+0x24], r12d
-       mov      dword ptr [r13+0x20], r12d
-       mov      word  ptr [r13+0x29], 0
-       mov      byte  ptr [r13+0x2B], 1
-       jmp      G_M29990_IG15
-						;; size=135 bbWeight=0.50 PerfScore 15.25
-G_M29990_IG18:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:UpdateExceptionObservedStatus():this
        call     [rax]System.Threading.Tasks.Task:UpdateExceptionObservedStatus():this
        mov      rdi, r15
        call     CORINFO_HELP_THROW
        int3     
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M29990_IG19:
-       mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
-       call     CORINFO_HELP_NEWSFAST
-       mov      r14, rax
-       mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Argument_InvalidOffLen():System.String
-       call     [rax]System.SR:get_Argument_InvalidOffLen():System.String
-       mov      rsi, rax
-       mov      rdi, r14
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String):this
-       call     [rax]System.ArgumentException:.ctor(System.String):this
-       mov      rdi, r14
-       call     CORINFO_HELP_THROW
-       int3     
-						;; size=57 bbWeight=0 PerfScore 0.00
-G_M29990_IG20:
-       mov      edi, 0x3F3
-       mov      rsi, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       mov      rsi, rax
-       mov      edi, r12d
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       call     [rax]System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       int3     
-						;; size=39 bbWeight=0 PerfScore 0.00
-G_M29990_IG21:
-       mov      edi, 0x135AE
-       mov      rsi, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       mov      rsi, rax
-       mov      edi, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       call     [rax]System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       int3     
-						;; size=39 bbWeight=0 PerfScore 0.00
-G_M29990_IG22:
-       mov      edi, 0x13968
-       mov      rsi, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       mov      rdi, rax
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
-       call     [rax]System.ArgumentNullException:Throw(System.String)
-       int3     
-						;; size=36 bbWeight=0 PerfScore 0.00
-G_M29990_IG23:
+G_M29990_IG18:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
        call     [rax]System.ThrowHelper:ThrowObjectDisposedException(System.Object)
        int3     
 						;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 725, prolog size 25, PerfScore 67.95, instruction count 189, allocated bytes for code 725 (MethodHash=0dcf8ad9) for method System.Net.Http.HttpContent:TryReadAsStream():System.IO.Stream:this (FullOpts)
+; Total bytes of code 364, prolog size 9, PerfScore 47.28, instruction count 101, allocated bytes for code 364 (MethodHash=0dcf8ad9) for method System.Net.Http.HttpContent:TryReadAsStream():System.IO.Stream:this (FullOpts)
 ; ============================================================
-342 (-61.62 % of base) - System.Net.Http.HttpContent:ReadAsStream(System.Threading.CancellationToken):System.IO.Stream:this
 ; Assembly listing for method System.Net.Http.HttpContent:ReadAsStream(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 12 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] ( 10,  6.50)     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent>
+;  V00 this         [V00,T00] ( 10,  6.50)     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Threading.CancellationToken>
 ;* V02 loc0         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.IO.Stream>
-;  V03 loc1         [V03    ] (  5,  2.50)  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ubyte]>
-;  V04 loc2         [V04,T09] (  3,  1.50)     ref  ->  rax         class-hnd single-def <System.IO.Stream>
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T12] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Net.Http.HttpRequestException>
-;  V07 tmp2         [V07,T04] (  4,  4   )     ref  ->  r15         class-hnd single-def "impAppendStmt" <ubyte[]>
-;  V08 tmp3         [V08,T02] (  7,  6   )     int  ->  r14         "impAppendStmt"
-;  V09 tmp4         [V09,T00] (  9,  9   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.IO.MemoryStream>
-;  V10 tmp5         [V10,T08] (  4,  2   )     ref  ->  r13        
-;* V11 tmp6         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V12 tmp7         [V12,T11] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V13 tmp8         [V13,T03] (  5,  4   )     int  ->  r12         "Inlining Arg"
-;* V14 tmp9         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V15 tmp10        [V15,T07] (  3,  3   )     int  ->  r12         "dup spill"
-;  V16 tmp11        [V16,T13] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-;  V17 tmp12        [V17,T14] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp13        [V18,T05] (  2,  1.50)     ref  ->  r15         single-def "field V01._source (fldOffset=0x0)" P-INDEP
-;  V19 tmp14        [V19    ] (  3,  1.50)     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V03._array (fldOffset=0x0)" P-DEP
-;  V20 tmp15        [V20    ] (  3,  1.50)     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V03._offset (fldOffset=0x8)" P-DEP
-;  V21 tmp16        [V21    ] (  3,  1.50)     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0xc)" P-DEP
-;  V22 tmp17        [V22,T06] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V23 tmp18        [V23,T15] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V24 tmp19        [V24,T16] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V25 tmp20        [V25,T17] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V26 cse0         [V26,T10] (  3,  1.50)     ref  ->  rdi         "CSE #01: moderate"
+;  V03 loc1         [V03,T04] (  3,  1.50)     ref  ->  rax         class-hnd single-def <System.IO.Stream>
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V05 tmp1         [V05,T05] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Net.Http.HttpRequestException>
+;  V06 tmp2         [V06,T03] (  4,  2   )     ref  ->  r15        
+;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T06] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V09 tmp5         [V09,T01] (  2,  1.50)     ref  ->  rsi         single-def "field V01._source (fldOffset=0x0)" P-INDEP
+;  V10 cse0         [V10,T02] (  3,  2.50)     ref  ->  rdi         "CSE #01: aggressive"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 0
 
 G_M11678_IG01:
        push     rbp
        push     r15
-       push     r14
-       push     r13
-       push     r12
        push     rbx
-       sub      rsp, 24
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
+       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
-       mov      r15, rsi
-						;; size=31 bbWeight=1 PerfScore 8.50
+						;; size=12 bbWeight=1 PerfScore 3.75
 G_M11678_IG02:
        cmp      byte  ptr [rbx+0x20], 0
-       jne      G_M11678_IG15
-       cmp      gword ptr [rbx+0x18], 0
+       jne      G_M11678_IG10
+       mov      rdi, gword ptr [rbx+0x18]
+       test     rdi, rdi
        je       SHORT G_M11678_IG05
-						;; size=17 bbWeight=1 PerfScore 8.00
+						;; size=19 bbWeight=1 PerfScore 7.25
 G_M11678_IG03:
-       mov      rsi, gword ptr [rbx+0x18]
+       mov      rsi, rdi
        mov      rdi, 0xD1FFAB1E      ; System.IO.Stream
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
-       je       G_M11678_IG10
-						;; size=35 bbWeight=0.50 PerfScore 3.38
+       je       SHORT G_M11678_IG09
+						;; size=30 bbWeight=0.50 PerfScore 2.50
 G_M11678_IG04:
-       add      rsp, 24
        pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M11678_IG05:
-       mov      rdi, gword ptr [rbx+0x10]
-       test     rdi, rdi
-       jne      SHORT G_M11678_IG09
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu  xmmword ptr [rbp-0x38], xmm0
-						;; size=18 bbWeight=0.50 PerfScore 2.29
+       cmp      gword ptr [rbx+0x10], 0
+       je       SHORT G_M11678_IG06
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this
+       call     [rax]System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this
+       mov      r15, rax
+       jmp      SHORT G_M11678_IG07
+						;; size=27 bbWeight=0.50 PerfScore 4.88
 G_M11678_IG06:
        mov      rdi, rbx
-       mov      rsi, r15
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x48]
        call     [rax]System.Net.Http.HttpContent:CreateContentReadStream(System.Threading.CancellationToken):System.IO.Stream:this
-       mov      r13, rax
-						;; size=18 bbWeight=0.50 PerfScore 3.88
+       mov      r15, rax
+						;; size=15 bbWeight=0.50 PerfScore 3.75
 G_M11678_IG07:
        lea      rdi, bword ptr [rbx+0x18]
-       mov      rsi, r13
+       mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rax, r13
+       mov      rax, r15
 						;; size=15 bbWeight=0.50 PerfScore 1.00
 G_M11678_IG08:
-       add      rsp, 24
        pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M11678_IG09:
-       lea      rsi, [rbp-0x38]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x68]
-       call     [rax+0x18]System.IO.MemoryStream:TryGetBuffer(byref):ubyte:this
-       test     eax, eax
-       je       SHORT G_M11678_IG06
-       mov      r15, gword ptr [rbp-0x38]
-       mov      r14d, dword ptr [rbp-0x30]
-       mov      rdi, 0xD1FFAB1E      ; System.IO.MemoryStream
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      r12d, dword ptr [rbp-0x2C]
-       test     r15, r15
-       je       G_M11678_IG14
-       test     r14d, r14d
-       jl       G_M11678_IG13
-       test     r12d, r12d
-       jl       G_M11678_IG12
-       mov      edi, dword ptr [r15+0x08]
-       sub      edi, r14d
-       cmp      edi, r12d
-       jl       SHORT G_M11678_IG11
-       lea      rdi, bword ptr [r13+0x10]
-       mov      rsi, r15
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      dword ptr [r13+0x1C], r14d
-       mov      dword ptr [r13+0x18], r14d
-       add      r12d, r14d
-       mov      dword ptr [r13+0x24], r12d
-       mov      dword ptr [r13+0x20], r12d
-       mov      word  ptr [r13+0x29], 0
-       mov      byte  ptr [r13+0x2B], 1
-       jmp      G_M11678_IG07
-						;; size=135 bbWeight=0.50 PerfScore 15.25
-G_M11678_IG10:
        mov      rdi, 0xD1FFAB1E      ; System.Net.Http.HttpRequestException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_net_http_content_read_as_stream_has_task():System.String
        call     [rax]System.SR:get_net_http_content_read_as_stream_has_task():System.String
        mov      r15, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Exception:.ctor():this
        call     [rax]System.Exception:.ctor():this
        lea      rdi, bword ptr [rbx+0x10]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=69 bbWeight=0 PerfScore 0.00
-G_M11678_IG11:
-       mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
-       call     CORINFO_HELP_NEWSFAST
-       mov      r14, rax
-       mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Argument_InvalidOffLen():System.String
-       call     [rax]System.SR:get_Argument_InvalidOffLen():System.String
-       mov      rsi, rax
-       mov      rdi, r14
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String):this
-       call     [rax]System.ArgumentException:.ctor(System.String):this
-       mov      rdi, r14
-       call     CORINFO_HELP_THROW
-       int3     
-						;; size=57 bbWeight=0 PerfScore 0.00
-G_M11678_IG12:
-       mov      edi, 0x3F3
-       mov      rsi, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       mov      rsi, rax
-       mov      edi, r12d
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       call     [rax]System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       int3     
-						;; size=39 bbWeight=0 PerfScore 0.00
-G_M11678_IG13:
-       mov      edi, 0x135AE
-       mov      rsi, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       mov      rsi, rax
-       mov      edi, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       call     [rax]System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       int3     
-						;; size=39 bbWeight=0 PerfScore 0.00
-G_M11678_IG14:
-       mov      edi, 0x13968
-       mov      rsi, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       mov      rdi, rax
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
-       call     [rax]System.ArgumentNullException:Throw(System.String)
-       int3     
-						;; size=36 bbWeight=0 PerfScore 0.00
-G_M11678_IG15:
+G_M11678_IG10:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
        call     [rax]System.ThrowHelper:ThrowObjectDisposedException(System.Object)
        int3     
 						;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 555, prolog size 25, PerfScore 46.54, instruction count 140, allocated bytes for code 555 (MethodHash=e6f4d261) for method System.Net.Http.HttpContent:ReadAsStream(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
+; Total bytes of code 213, prolog size 9, PerfScore 25.62, instruction count 59, allocated bytes for code 213 (MethodHash=e6f4d261) for method System.Net.Http.HttpContent:ReadAsStream(System.Threading.CancellationToken):System.IO.Stream:this (FullOpts)
 ; ============================================================
-269 (-43.25 % of base) - System.Net.Http.HttpContent:ReadAsStreamAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.IO.Stream]:this
 ; Assembly listing for method System.Net.Http.HttpContent:ReadAsStreamAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.IO.Stream]:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 14 single block inlinees; 10 inlinees without PGO data
+; 0 inlinees with PGO data; 6 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] ( 10,  6.50)     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent>
+;  V00 this         [V00,T00] ( 11,  7   )     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Threading.CancellationToken>
 ;* V02 loc0         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Threading.Tasks.Task`1[System.IO.Stream]>
-;  V03 loc1         [V03    ] (  5,  2.50)  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ubyte]>
-;  V04 loc2         [V04,T14] (  3,  1.50)     ref  ->  rax         class-hnd single-def <System.Threading.Tasks.Task`1[System.IO.Stream]>
-;* V05 loc3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Threading.Tasks.Task`1[System.IO.Stream]>
-;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07,T04] (  4,  4   )     ref  ->  r15         class-hnd single-def "impAppendStmt" <ubyte[]>
-;  V08 tmp2         [V08,T02] (  7,  6   )     int  ->  r14         "impAppendStmt"
-;  V09 tmp3         [V09,T00] (  9,  9   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.IO.MemoryStream>
-;  V10 tmp4         [V10,T11] (  4,  2   )     ref  ->  r15        
-;* V11 tmp5         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V12 tmp6         [V12,T18] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V13 tmp7         [V13,T03] (  5,  4   )     int  ->  r12         "Inlining Arg"
-;* V14 tmp8         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V15 tmp9         [V15,T10] (  3,  3   )     int  ->  r12         "dup spill"
-;  V16 tmp10        [V16,T19] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-;  V17 tmp11        [V17,T17] (  2,  1   )     ref  ->  r15         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.IO.Stream]>
-;* V18 tmp12        [V18    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd single-def "Inlining Arg" <System.IO.Stream>
-;  V19 tmp13        [V19,T05] (  4,  4   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.IO.Stream]>
-;* V20 tmp14        [V20    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-;* V21 tmp15        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.IO.Stream>
-;* V22 tmp16        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V23 tmp17        [V23,T15] (  3,  1.50)     ref  ->  r14         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.IO.Stream]>
-;  V24 tmp18        [V24,T13] (  2,  2   )     ref  ->  r15         ld-addr-op class-hnd single-def "Inlining Arg" <System.IO.Stream>
-;  V25 tmp19        [V25,T06] (  4,  4   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.IO.Stream]>
-;* V26 tmp20        [V26    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-;* V27 tmp21        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.IO.Stream>
-;* V28 tmp22        [V28    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V29 tmp23        [V29,T07] (  2,  1.50)     ref  ->  r15         single-def "field V01._source (fldOffset=0x0)" P-INDEP
-;  V30 tmp24        [V30    ] (  3,  1.50)     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V03._array (fldOffset=0x0)" P-DEP
-;  V31 tmp25        [V31    ] (  3,  1.50)     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V03._offset (fldOffset=0x8)" P-DEP
-;  V32 tmp26        [V32    ] (  3,  1.50)     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0xc)" P-DEP
-;* V33 tmp27        [V33    ] (  0,  0   )     ref  ->  zero-ref    "field V20._source (fldOffset=0x0)" P-INDEP
-;* V34 tmp28        [V34    ] (  0,  0   )     ref  ->  zero-ref    "field V26._source (fldOffset=0x0)" P-INDEP
-;  V35 tmp29        [V35,T09] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V36 tmp30        [V36,T20] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V37 tmp31        [V37,T21] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V38 tmp32        [V38,T22] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V39 cse0         [V39,T08] (  4,  3   )     ref  ->  r14         "CSE #03: moderate"
-;  V40 cse1         [V40,T16] (  3,  1.50)     ref  ->  rdi         "CSE #01: moderate"
-;  V41 cse2         [V41,T12] (  4,  2   )    long  ->  rdi         multi-def "CSE #02: moderate"
+;  V03 loc1         [V03,T08] (  3,  1.50)     ref  ->  rax         class-hnd single-def <System.Threading.Tasks.Task`1[System.IO.Stream]>
+;* V04 loc2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Threading.Tasks.Task`1[System.IO.Stream]>
+;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V06 tmp1         [V06,T06] (  4,  2   )     ref  ->  r14        
+;* V07 tmp2         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;  V08 tmp3         [V08,T09] (  3,  1.50)     ref  ->  r14         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.IO.Stream]>
+;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->  r15         ld-addr-op class-hnd single-def "Inlining Arg" <System.IO.Stream>
+;  V10 tmp5         [V10,T01] (  4,  4   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.IO.Stream]>
+;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
+;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.IO.Stream>
+;* V13 tmp8         [V13    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V14 tmp9         [V14,T10] (  3,  1.50)     ref  ->  r14         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.IO.Stream]>
+;  V15 tmp10        [V15,T07] (  2,  2   )     ref  ->  r15         ld-addr-op class-hnd single-def "Inlining Arg" <System.IO.Stream>
+;  V16 tmp11        [V16,T02] (  4,  4   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.IO.Stream]>
+;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
+;* V18 tmp13        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.IO.Stream>
+;* V19 tmp14        [V19    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V20 tmp15        [V20,T03] (  2,  1.50)     ref  ->  rsi         single-def "field V01._source (fldOffset=0x0)" P-INDEP
+;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V11._source (fldOffset=0x0)" P-INDEP
+;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V17._source (fldOffset=0x0)" P-INDEP
+;* V23 cse0         [V23,T12] (  0,  0   )   byref  ->  zero-ref    "CSE #03: moderate"
+;  V24 cse1         [V24,T04] (  4,  3   )     ref  ->  r15         "CSE #02: moderate"
+;  V25 cse2         [V25,T11] (  2,  1   )    long  ->  rdi         "CSE #04: moderate"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M63737_IG01:
        push     rbp
        push     r15
        push     r14
-       push     r13
-       push     r12
        push     rbx
-       sub      rsp, 24
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
+       push     rax
+       lea      rbp, [rsp+0x20]
        mov      rbx, rdi
-       mov      r15, rsi
-						;; size=31 bbWeight=1 PerfScore 8.50
+						;; size=15 bbWeight=1 PerfScore 5.75
 G_M63737_IG02:
        cmp      byte  ptr [rbx+0x20], 0
-       jne      G_M63737_IG15
-       mov      r14, gword ptr [rbx+0x18]
-       test     r14, r14
+       jne      G_M63737_IG14
+       mov      r15, gword ptr [rbx+0x18]
+       test     r15, r15
        je       G_M63737_IG06
 						;; size=23 bbWeight=1 PerfScore 7.25
 G_M63737_IG03:
-       mov      rsi, r14
+       mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Stream]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        jne      SHORT G_M63737_IG05
-       mov      rsi, r14
+       mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.IO.Stream
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS
        call     [rax]CORINFO_HELP_CHKCASTCLASS
        mov      r15, rax
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Stream]
        call     CORINFO_HELP_NEWSFAST
        mov      r14, rax
        mov      dword ptr [r14+0x34], 0xD1FFAB1E
        lea      rdi, bword ptr [r14+0x38]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x18]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        mov      rax, r14
 						;; size=111 bbWeight=0.50 PerfScore 7.62
 G_M63737_IG04:
-       add      rsp, 24
+       add      rsp, 8
        pop      rbx
-       pop      r12
-       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+						;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M63737_IG05:
-       add      rsp, 24
+       add      rsp, 8
        pop      rbx
-       pop      r12
-       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+						;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M63737_IG06:
-       mov      rdi, gword ptr [rbx+0x10]
-       test     rdi, rdi
-       jne      SHORT G_M63737_IG10
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu  xmmword ptr [rbp-0x38], xmm0
-						;; size=18 bbWeight=0.50 PerfScore 2.29
-G_M63737_IG07:
+       cmp      gword ptr [rbx+0x10], 0
+       je       SHORT G_M63737_IG10
        mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this
+       call     [rax]System.Net.Http.HttpContent:CreateMemoryStreamFromBufferedContent():System.IO.MemoryStream:this
+       mov      r15, rax
+       test     r15, r15
+       je       SHORT G_M63737_IG07
+       mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Stream]
+       call     CORINFO_HELP_NEWSFAST
+       mov      r14, rax
+       mov      dword ptr [r14+0x34], 0xD1FFAB1E
+       lea      rdi, bword ptr [r14+0x38]
        mov      rsi, r15
+       call     CORINFO_HELP_ASSIGN_REF
+       jmp      SHORT G_M63737_IG09
+						;; size=70 bbWeight=0.50 PerfScore 7.62
+G_M63737_IG07:
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M63737_IG13
+						;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M63737_IG08:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task`1[System.IO.Stream]:s_defaultResultTask
+       mov      r14, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M63737_IG09:
+       jmp      SHORT G_M63737_IG11
+						;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M63737_IG10:
+       mov      rdi, rbx
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x10]System.Net.Http.HttpContent:CreateContentReadStreamAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.IO.Stream]:this
-       mov      r15, rax
-						;; size=19 bbWeight=0.50 PerfScore 3.88
-G_M63737_IG08:
+       mov      r14, rax
+						;; size=16 bbWeight=0.50 PerfScore 3.75
+G_M63737_IG11:
        lea      rdi, bword ptr [rbx+0x18]
-       mov      rsi, r15
+       mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rax, r15
+       mov      rax, r14
 						;; size=15 bbWeight=0.50 PerfScore 1.00
-G_M63737_IG09:
-       add      rsp, 24
+G_M63737_IG12:
+       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_M63737_IG10:
-       lea      rsi, [rbp-0x38]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x68]
-       call     [rax+0x18]System.IO.MemoryStream:TryGetBuffer(byref):ubyte:this
-       test     eax, eax
-       je       SHORT G_M63737_IG07
-       mov      r15, gword ptr [rbp-0x38]
-       mov      r14d, dword ptr [rbp-0x30]
-       mov      rdi, 0xD1FFAB1E      ; System.IO.MemoryStream
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      r12d, dword ptr [rbp-0x2C]
-       test     r15, r15
-       je       G_M63737_IG14
-       test     r14d, r14d
-       jl       G_M63737_IG13
-       test     r12d, r12d
-       jl       G_M63737_IG12
-       mov      edi, dword ptr [r15+0x08]
-       sub      edi, r14d
-       cmp      edi, r12d
-       jl       SHORT G_M63737_IG11
-       lea      rdi, bword ptr [r13+0x10]
-       mov      rsi, r15
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      dword ptr [r13+0x1C], r14d
-       mov      dword ptr [r13+0x18], r14d
-       add      r12d, r14d
-       mov      dword ptr [r13+0x24], r12d
-       mov      dword ptr [r13+0x20], r12d
-       mov      word  ptr [r13+0x29], 0
-       mov      byte  ptr [r13+0x2B], 1
-       mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Stream]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r15, rax
-       mov      dword ptr [r15+0x34], 0xD1FFAB1E
-       lea      rdi, bword ptr [r15+0x38]
-       mov      rsi, r13
-       call     CORINFO_HELP_ASSIGN_REF
-       jmp      G_M63737_IG08
-						;; size=173 bbWeight=0.50 PerfScore 17.38
-G_M63737_IG11:
-       mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
-       call     CORINFO_HELP_NEWSFAST
-       mov      r14, rax
-       mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Argument_InvalidOffLen():System.String
-       call     [rax]System.SR:get_Argument_InvalidOffLen():System.String
-       mov      rsi, rax
-       mov      rdi, r14
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String):this
-       call     [rax]System.ArgumentException:.ctor(System.String):this
-       mov      rdi, r14
-       call     CORINFO_HELP_THROW
-       int3     
-						;; size=57 bbWeight=0 PerfScore 0.00
-G_M63737_IG12:
-       mov      edi, 0x3F3
-       mov      rsi, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       mov      rsi, rax
-       mov      edi, r12d
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       call     [rax]System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       int3     
-						;; size=39 bbWeight=0 PerfScore 0.00
+						;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M63737_IG13:
-       mov      edi, 0x135AE
-       mov      rsi, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       mov      rsi, rax
-       mov      edi, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       call     [rax]System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-       int3     
-						;; size=39 bbWeight=0 PerfScore 0.00
+       mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Stream]
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M63737_IG08
+						;; size=24 bbWeight=0 PerfScore 0.00
 G_M63737_IG14:
-       mov      edi, 0x13968
-       mov      rsi, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       mov      rdi, rax
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
-       call     [rax]System.ArgumentNullException:Throw(System.String)
-       int3     
-						;; size=36 bbWeight=0 PerfScore 0.00
-G_M63737_IG15:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
        call     [rax]System.ThrowHelper:ThrowObjectDisposedException(System.Object)
        int3     
 						;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 622, prolog size 25, PerfScore 54.29, instruction count 157, allocated bytes for code 622 (MethodHash=f93f0706) for method System.Net.Http.HttpContent:ReadAsStreamAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.IO.Stream]:this (FullOpts)
+; Total bytes of code 353, prolog size 12, PerfScore 42.12, instruction count 91, allocated bytes for code 353 (MethodHash=f93f0706) for method System.Net.Http.HttpContent:ReadAsStreamAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.IO.Stream]:this (FullOpts)
 ; ============================================================
-167 (-77.31 % of base) - System.Net.Http.HttpContent:ReadBufferedContentAsString():System.String:this
 ; Assembly listing for method System.Net.Http.HttpContent:ReadBufferedContentAsString():System.String:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  6,  4.50)     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent>
-;  V01 loc0         [V01    ] (  6,  3   )  struct (16) [rbp-0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ubyte]>
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ArraySegment`1[ubyte]>
-;  V04 tmp2         [V04,T08] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V05 tmp3         [V05,T02] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
-;  V06 tmp4         [V06    ] (  4,  2   )     ref  ->  [rbp-0x18]  do-not-enreg[X] addr-exposed "field V01._array (fldOffset=0x0)" P-DEP
-;  V07 tmp5         [V07    ] (  4,  2   )     int  ->  [rbp-0x10]  do-not-enreg[X] addr-exposed "field V01._offset (fldOffset=0x8)" P-DEP
-;  V08 tmp6         [V08    ] (  4,  2   )     int  ->  [rbp-0x0C]  do-not-enreg[X] addr-exposed "field V01._count (fldOffset=0xc)" P-DEP
-;* V09 tmp7         [V09    ] (  0,  0   )     ref  ->  zero-ref    "field V03._array (fldOffset=0x0)" P-INDEP
-;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V03._offset (fldOffset=0x8)" P-INDEP
-;* V11 tmp9         [V11    ] (  0,  0   )     int  ->  zero-ref    "field V03._count (fldOffset=0xc)" P-INDEP
-;  V12 tmp10        [V12,T01] (  3,  6   )     ref  ->  rdi         single-def "argument with side effect"
-;  V13 tmp11        [V13,T03] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V14 tmp12        [V14,T04] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V15 tmp13        [V15,T06] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  V16 tmp14        [V16,T05] (  3,  3   )  struct (16) [rbp-0x28]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ArraySegment`1[ubyte]>
-;  V17 cse0         [V17,T07] (  3,  1.50)     ref  ->  rdi         "CSE #01: moderate"
+;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rdi         this class-hnd single-def <System.Net.Http.HttpContent>
+;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
+;  V03 tmp2         [V03,T01] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
+;  V04 tmp3         [V04,T02] (  2,  4   )     ref  ->  rbx         single-def "argument with side effect"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 8
 
 G_M14105_IG01:
        push     rbp
        push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x30]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       vxorps   xmm8, xmm8, xmm8
-       vmovdqa  xmmword ptr [rbp-0x20], xmm8
-       mov      qword ptr [rbp-0x10], rax
-       mov      rbx, rdi
-						;; size=34 bbWeight=1 PerfScore 7.58
+       push     rax
+       lea      rbp, [rsp+0x10]
+						;; size=8 bbWeight=1 PerfScore 3.50
 G_M14105_IG02:
-       mov      rdi, gword ptr [rbx+0x10]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x48]
-       call     [rax+0x08]System.IO.Stream:get_Length():long:this
-       test     rax, rax
-       je       SHORT G_M14105_IG08
-						;; size=19 bbWeight=1 PerfScore 10.25
-G_M14105_IG03:
-       mov      rdi, gword ptr [rbx+0x10]
-       test     rdi, rdi
-       jne      SHORT G_M14105_IG10
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu  xmmword ptr [rbp-0x18], xmm0
-						;; size=18 bbWeight=0.50 PerfScore 2.29
-G_M14105_IG04:
-       mov      rdi, gword ptr [rbx+0x10]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x68]
-       call     [rax+0x30]System.IO.MemoryStream:ToArray():ubyte[]:this
-       test     rax, rax
-       je       SHORT G_M14105_IG11
-       mov      gword ptr [rbp-0x18], rax
-       xor      edi, edi
-       mov      dword ptr [rbp-0x10], edi
-       mov      edi, dword ptr [rax+0x08]
-       mov      dword ptr [rbp-0x0C], edi
-						;; size=34 bbWeight=0.50 PerfScore 7.75
-G_M14105_IG05:
-       vmovdqu  xmm0, xmmword ptr [rbp-0x18]
-       vmovdqu  xmmword ptr [rbp-0x28], xmm0
-						;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M14105_IG06:
-       mov      rdi, rbx
+       mov      rbx, gword ptr [rdi+0x10]
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
        call     [rax]System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
-       mov      rdx, rax
-       mov      rdi, gword ptr [rbp-0x28]
-       mov      rsi, qword ptr [rbp-0x20]
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:ReadBufferAsString(System.ArraySegment`1[ubyte],System.Net.Http.Headers.HttpContentHeaders):System.String
-       call     [rax]System.Net.Http.HttpContent:ReadBufferAsString(System.ArraySegment`1[ubyte],System.Net.Http.Headers.HttpContentHeaders):System.String
-       nop      
-						;; size=39 bbWeight=0.50 PerfScore 4.62
-G_M14105_IG07:
-       add      rsp, 40
+       mov      rsi, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent:ReadBufferAsString(System.Net.Http.HttpContent+LimitArrayPoolWriteStream,System.Net.Http.Headers.HttpContentHeaders):System.String
+						;; size=32 bbWeight=1 PerfScore 6.00
+G_M14105_IG03:
+       add      rsp, 8
        pop      rbx
        pop      rbp
-       ret      
-						;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M14105_IG08:
-       mov      rax, 0xD1FFAB1E      ; ''
-						;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M14105_IG09:
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       ret      
-						;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M14105_IG10:
-       lea      rsi, [rbp-0x18]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x68]
-       call     [rax+0x18]System.IO.MemoryStream:TryGetBuffer(byref):ubyte:this
-       test     eax, eax
-       jne      SHORT G_M14105_IG05
-       jmp      SHORT G_M14105_IG04
-						;; size=20 bbWeight=0.50 PerfScore 5.38
-G_M14105_IG11:
-       mov      edi, 2
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
+       tail.jmp [rax]System.Net.Http.HttpContent:ReadBufferAsString(System.Net.Http.HttpContent+LimitArrayPoolWriteStream,System.Net.Http.Headers.HttpContentHeaders):System.String
+						;; size=9 bbWeight=1 PerfScore 3.25
 
-; Total bytes of code 216, prolog size 31, PerfScore 42.25, instruction count 63, allocated bytes for code 216 (MethodHash=956cc8e6) for method System.Net.Http.HttpContent:ReadBufferedContentAsString():System.String:this (FullOpts)
+; Total bytes of code 49, prolog size 8, PerfScore 12.75, instruction count 14, allocated bytes for code 49 (MethodHash=956cc8e6) for method System.Net.Http.HttpContent:ReadBufferedContentAsString():System.String:this (FullOpts)
 ; ============================================================
-65 (-77.38 % of base) - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Dispose(ubyte):this
 ; Assembly listing for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Dispose(ubyte):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
+;  V00 this         [V00,T00] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Net.Http.HttpContent+LimitArrayPoolWriteStream>
 ;* V01 arg1         [V01    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T01] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M2610_IG01:
-       push     rbx
-       mov      rbx, rdi
-						;; size=4 bbWeight=1 PerfScore 1.25
+       push     rax
+						;; size=1 bbWeight=1 PerfScore 1.00
 G_M2610_IG02:
-       mov      rdi, 0xD1FFAB1E      ; global ptr
-       test     byte  ptr [rdi], 1
-       je       SHORT G_M2610_IG05
-						;; size=15 bbWeight=1 PerfScore 4.25
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ReturnAllPooledBuffers():this
+       call     [rax]System.Net.Http.HttpContent+LimitArrayPoolWriteStream:ReturnAllPooledBuffers():this
+       nop      
+						;; size=13 bbWeight=1 PerfScore 3.50
 G_M2610_IG03:
-       mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.ArrayPool`1[ubyte]:s_shared
-       mov      rdi, gword ptr [rdi]
-       mov      rsi, gword ptr [rbx+0x10]
-       xor      edx, edx
-       mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this
-       cmp      dword ptr [rdi], edi
-       call     [rax]System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this
-       xor      rax, rax
-       mov      gword ptr [rbx+0x10], rax
-						;; size=39 bbWeight=1 PerfScore 12.00
-G_M2610_IG04:
-       pop      rbx
+       add      rsp, 8
        ret      
-						;; size=2 bbWeight=1 PerfScore 1.50
-G_M2610_IG05:
-       mov      rdi, 0xD1FFAB1E      ; System.Buffers.ArrayPool`1[ubyte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
-       jmp      SHORT G_M2610_IG03
-						;; size=24 bbWeight=0 PerfScore 0.00
+						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 84, prolog size 1, PerfScore 19.00, instruction count 20, allocated bytes for code 84 (MethodHash=86e9f5cd) for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Dispose(ubyte):this (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 5.75, instruction count 6, allocated bytes for code 19 (MethodHash=86e9f5cd) for method System.Net.Http.HttpContent+LimitArrayPoolWriteStream:Dispose(ubyte):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/bdc34dc33d0f74cce26391c0e25b6420

@MihuBot
Copy link
Owner Author

MihuBot commented Nov 30, 2024

@MihaZupan

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

1 participant