Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Conversation

@benaadams
Copy link
Member

Non-Unsafe version of #22735 (which cut it by 2)

Cuts

; Lcl frame size = 408
       call     qword ptr [rax+40]PipeReader:ReadAsync(struct):struct:this

G_M43654_IG05:
       vmovdqu  xmm0, qword ptr [rbp-E0H]
       vmovdqu  qword ptr [rbp-158H], xmm0
       vmovdqu  xmm0, qword ptr [rbp-D0H]
       vmovdqu  qword ptr [rbp-148H], xmm0
       vmovdqu  xmm0, qword ptr [rbp-C0H]
       vmovdqu  qword ptr [rbp-138H], xmm0
       mov      rdx, qword ptr [rbp-B0H]
       mov      qword ptr [rbp-128H], rdx

G_M43654_IG06:
       vmovdqu  xmm0, qword ptr [rbp-158H]
       vmovdqu  qword ptr [rbp-120H], xmm0
       vmovdqu  xmm0, qword ptr [rbp-148H]
       vmovdqu  qword ptr [rbp-110H], xmm0
       vmovdqu  xmm0, qword ptr [rbp-138H]
       vmovdqu  qword ptr [rbp-100H], xmm0
       mov      rdx, qword ptr [rbp-128H]
       mov      qword ptr [rbp-F0H], rdx

G_M43661_IG07:
       vmovdqu  xmm0, qword ptr [rbp-120H]
       vmovdqu  qword ptr [rbp-A8H], xmm0
       vmovdqu  xmm0, qword ptr [rbp-110H]
       vmovdqu  qword ptr [rbp-98H], xmm0
       vmovdqu  xmm0, qword ptr [rbp-100H]
       vmovdqu  qword ptr [rbp-88H], xmm0
       mov      rdx, qword ptr [rbp-F0H]
       mov      qword ptr [rbp-78H], rdx

G_M43663_IG08:
       mov      rsi, gword ptr [rbp-A8H]
       test     rsi, rsi
       jne      SHORT G_M43663_IG09
       mov      edi, 1
       jmp      SHORT G_M43663_IG11

; Total bytes of code 1525, prolog size 59 for method <ProcessSends>d__26:MoveNext():this

To

; Lcl frame size = 360
       call     qword ptr [rax+40]PipeReader:ReadAsync(struct):struct:this

G_M43655_IG05:
       vmovdqu  xmm0, qword ptr [rbp-E0H]
       vmovdqu  qword ptr [rbp-120H], xmm0
       vmovdqu  xmm0, qword ptr [rbp-D0H]
       vmovdqu  qword ptr [rbp-110H], xmm0
       vmovdqu  xmm0, qword ptr [rbp-C0H]
       vmovdqu  qword ptr [rbp-100H], xmm0
       mov      rdx, qword ptr [rbp-B0H]
       mov      qword ptr [rbp-F0H], rdx

G_M43661_IG06:
       vmovdqu  xmm0, qword ptr [rbp-120H]
       vmovdqu  qword ptr [rbp-A8H], xmm0
       vmovdqu  xmm0, qword ptr [rbp-110H]
       vmovdqu  qword ptr [rbp-98H], xmm0
       vmovdqu  xmm0, qword ptr [rbp-100H]
       vmovdqu  qword ptr [rbp-88H], xmm0
       mov      rdx, qword ptr [rbp-F0H]
       mov      qword ptr [rbp-78H], rdx

G_M43663_IG07:
       mov      rsi, gword ptr [rbp-A8H]
       test     rsi, rsi
       jne      SHORT G_M43663_IG08
       mov      edi, 1
       jmp      SHORT G_M43663_IG10
       
; Total bytes of code 1463, prolog size 59 for method <ProcessSends>d__26:MoveNext():this

/cc @stephentoub @jkotas

@benaadams
Copy link
Member Author

@dotnet-bot test Windows_NT x64 Checked Innerloop Build and Test

@mikedn
Copy link

mikedn commented Feb 21, 2019

Seems unfortunate that those method inline but we still have unnecessary struct copies. Oh well, more struct work needed I suppose.

@jkotas jkotas merged commit f18123a into dotnet:master Feb 21, 2019
Dotnet-GitSync-Bot pushed a commit to Dotnet-GitSync-Bot/corefx that referenced this pull request Feb 21, 2019
* Reduce struct copy by 1 in ValueTask.GetAwaiter

* Bit more explicit

Signed-off-by: dotnet-bot <[email protected]>
Dotnet-GitSync-Bot pushed a commit to Dotnet-GitSync-Bot/corert that referenced this pull request Feb 21, 2019
* Reduce struct copy by 1 in ValueTask.GetAwaiter

* Bit more explicit

Signed-off-by: dotnet-bot <[email protected]>
@benaadams benaadams deleted the ValueTask.GetAwaiter branch February 21, 2019 08:25
Dotnet-GitSync-Bot pushed a commit to Dotnet-GitSync-Bot/mono that referenced this pull request Feb 21, 2019
* Reduce struct copy by 1 in ValueTask.GetAwaiter

* Bit more explicit

Signed-off-by: dotnet-bot <[email protected]>
marek-safar pushed a commit to mono/mono that referenced this pull request Feb 21, 2019
* Reduce struct copy by 1 in ValueTask.GetAwaiter

* Bit more explicit

Signed-off-by: dotnet-bot <[email protected]>
stephentoub pushed a commit to dotnet/corefx that referenced this pull request Feb 21, 2019
* Reduce struct copy by 1 in ValueTask.GetAwaiter

* Bit more explicit

Signed-off-by: dotnet-bot <[email protected]>
MichalStrehovsky pushed a commit to dotnet/corert that referenced this pull request Feb 22, 2019
* Reduce struct copy by 1 in ValueTask.GetAwaiter

* Bit more explicit

Signed-off-by: dotnet-bot <[email protected]>
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
* Reduce struct copy by 1 in ValueTask.GetAwaiter

* Bit more explicit


Commit migrated from dotnet/coreclr@f18123a
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants