[PATCH] D93353: [AMDGPU] Print SCRATCH_EN field after the kernel

Stanislav Mekhanoshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 15 15:33:03 PST 2020


rampitec created this revision.
rampitec added reviewers: t-tye, kzhuravl.
Herald added subscribers: kerbowa, hiraditya, tpr, dstuttard, yaxunl, nhaehnle, jvesely, arsenm.
rampitec requested review of this revision.
Herald added a subscriber: wdng.
Herald added a project: LLVM.

https://reviews.llvm.org/D93353

Files:
  llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
  llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch-init.ll


Index: llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch-init.ll
===================================================================
--- llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch-init.ll
+++ llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch-init.ll
@@ -3,7 +3,14 @@
 ; Make sure flat_scratch_init is set
 
 ; GCN-LABEL: {{^}}stack_object_addrspacecast_in_kernel_no_calls:
-; GCN: .amdhsa_user_sgpr_flat_scratch_init 1
+; GCN:     s_add_u32 flat_scratch_lo, s4, s7
+; GCN:     s_addc_u32 flat_scratch_hi, s5, 0
+; GCN:     flat_store_dword
+; GCN:     .amdhsa_user_sgpr_flat_scratch_init 1
+; GCN:     .amdhsa_system_sgpr_private_segment_wavefront_offset
+; GCN-NOT: .amdhsa_reserve_flat_scratch
+; GCN:     COMPUTE_PGM_RSRC2:SCRATCH_EN: 1
+; GCN:     COMPUTE_PGM_RSRC2:USER_SGPR: 6
 define amdgpu_kernel void @stack_object_addrspacecast_in_kernel_no_calls() {
   %alloca = alloca i32, addrspace(5)
   %cast = addrspacecast i32 addrspace(5)* %alloca to i32*
@@ -13,7 +20,15 @@
 
 ; TODO: Could optimize out in this case
 ; GCN-LABEL: {{^}}stack_object_in_kernel_no_calls:
-; GCN: .amdhsa_user_sgpr_flat_scratch_init 1
+; GCN:     s_add_u32 flat_scratch_lo, s4, s7
+; GCN:     s_addc_u32 flat_scratch_hi, s5, 0
+; GCN:     buffer_store_dword
+; GCN:     .amdhsa_user_sgpr_private_segment_buffer 1
+; GCN:     .amdhsa_user_sgpr_flat_scratch_init 1
+; GCN:     .amdhsa_system_sgpr_private_segment_wavefront_offset 1
+; GCN-NOT: .amdhsa_reserve_flat_scratch
+; GCN:     COMPUTE_PGM_RSRC2:SCRATCH_EN: 1
+; GCN:     COMPUTE_PGM_RSRC2:USER_SGPR: 6
 define amdgpu_kernel void @stack_object_in_kernel_no_calls() {
   %alloca = alloca i32, addrspace(5)
   store volatile i32 0, i32 addrspace(5)* %alloca
@@ -21,7 +36,13 @@
 }
 
 ; GCN-LABEL: {{^}}kernel_no_calls_no_stack:
-; GCN: .amdhsa_user_sgpr_flat_scratch_init 0
+; GCN-NOT: flat_scratch
+; GCN:     .amdhsa_user_sgpr_private_segment_buffer 1
+; GCN:     .amdhsa_user_sgpr_flat_scratch_init 0
+; GCN:     .amdhsa_system_sgpr_private_segment_wavefront_offset 0
+; GCN:     .amdhsa_reserve_flat_scratch 0
+; GCN:     COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
+; GCN:     COMPUTE_PGM_RSRC2:USER_SGPR: 4
 define amdgpu_kernel void @kernel_no_calls_no_stack() {
   ret void
 }
Index: llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+++ llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
@@ -538,6 +538,9 @@
     OutStreamer->emitRawComment(
       " WaveLimiterHint : " + Twine(MFI->needsWaveLimiter()), false);
 
+    OutStreamer->emitRawComment(
+      " COMPUTE_PGM_RSRC2:SCRATCH_EN: " +
+      Twine(G_00B84C_SCRATCH_EN(CurrentProgramInfo.ComputePGMRSrc2)), false);
     OutStreamer->emitRawComment(
       " COMPUTE_PGM_RSRC2:USER_SGPR: " +
       Twine(G_00B84C_USER_SGPR(CurrentProgramInfo.ComputePGMRSrc2)), false);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D93353.312058.patch
Type: text/x-patch
Size: 2864 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201215/6d0d1af4/attachment.bin>


More information about the llvm-commits mailing list