[clang] [llvm] [RegisterCoalescer] Improve register allocation for return values by limiting rematerialization (PR #163047)
guan jian via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 15 18:36:37 PDT 2025
================
@@ -202,13 +202,13 @@ define { <4 x i8>, <4 x i1> } @always_usub_const_vector() nounwind {
; SSE-LABEL: always_usub_const_vector:
; SSE: # %bb.0:
; SSE-NEXT: pcmpeqd %xmm0, %xmm0
-; SSE-NEXT: pcmpeqd %xmm1, %xmm1
+; SSE-NEXT: movdqa %xmm0, %xmm1
----------------
rez5427 wrote:
It will be something like:
```
pcmpeqd %xmm0, %xmm0
%xmm1 = copy %xmm0
```
In the original registercoalescer it would trigger rematerializeļ¼so it became
```
pcmpeqd %xmm0, %xmm0
pcmpeqd %xmm1, %xmm1
```
This patch avoid the rematerialize, so it would still be like `%xmm1 = copy %xmm0`.
https://github.com/llvm/llvm-project/pull/163047
More information about the cfe-commits
mailing list