[llvm] [AMDGPU] Don't send DEALLOC_VGPRs after calls (PR #77439)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 9 04:35:47 PST 2024


================
@@ -565,3 +566,19 @@ body:             |
     S_WAITCNT_VSCNT undef $sgpr_null, 0
     S_ENDPGM 0
 ...
+
+---
+name:            with_calls
+frameInfo:
+  hasCalls:        true
+body:             |
+  bb.0:
+    ; Make sure we don't send DEALLOC_VGPRS after a call, since there might be
+    ; scratch stores still in progress.
+    ; CHECK-LABEL: name: with_calls
+    ; CHECK-NOT: S_SENDMSG 3
+    ; CHECK: S_ENDPGM 0
+    GLOBAL_STORE_DWORD undef renamable $vgpr0_vgpr1, killed renamable $vgpr1, 0, 4, implicit $exec
+    $sgpr30_sgpr31 = SI_CALL undef renamable $sgpr4_sgpr5, 0, csr_amdgpu
+    S_ENDPGM 0
+...
----------------
arsenm wrote:

is it worth adding a tail call case too?

https://github.com/llvm/llvm-project/pull/77439


More information about the llvm-commits mailing list