Skip to content

Conversation

@EgorBo
Copy link
Member

@EgorBo EgorBo commented Feb 12, 2025

A follow up to #112060

Previously, we were conservative about return buffers and couldn't really merge loads/store due to unknown alignment & unknown atomicity requirements.

(int,int,int,int) Test => (1, 2, 3, 4);
; Method Proga:get_Test():System.ValueTuple`4[int,int,int,int]:this
-      mov      dword ptr [rdx], 1
-      mov      dword ptr [rdx+0x04], 2
-      mov      dword ptr [rdx+0x08], 3
-      mov      dword ptr [rdx+0x0C], 4
+      vmovups  xmm0, xmmword ptr [reloc @RWD00]
+      vmovups  xmmword ptr [rdx], xmm0
       mov      rax, rdx
       ret   
+RWD00  	dq	0000000200000001h, 0000000400000003h   
+; Total bytes of code: 31
-; Total bytes of code: 16

@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Feb 12, 2025
@dotnet-policy-service
Copy link
Contributor

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

@EgorBo
Copy link
Member Author

EgorBo commented Feb 12, 2025

PTAL @jakobbotsch @dotnet/jit-contrib diffs aren't too big, although, we don't have 4 SPMI collections

@EgorBo EgorBo requested a review from jakobbotsch February 12, 2025 09:23
@EgorBo EgorBo merged commit 06037f8 into dotnet:main Feb 12, 2025
109 of 112 checks passed
@EgorBo EgorBo deleted the more-store-coalescing branch February 12, 2025 14:02
@github-actions github-actions bot locked and limited conversation to collaborators Mar 15, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants