================
@@ -1755,6 +1755,56 @@ As part of the AMDGPU MC layer, AMDGPU provides the 
following target specific
 
      =================== ================= 
========================================================
 
+Function Resource Usage
+-----------------------
+
+The function resource information (e.g., number of VGPRs) required depends on
+all of its callees' function resources. The expression to denote these
+resources should, therefore, be described as the propagative of its callees'
+equivalent expressions. Said expressions are generated and emitted (as symbols)
+by the compiler when compiling to either assembly or object format and should
+not be overwritten or redefined.
+
+The following describes all emitted function resource usage information:
+
+  .. table:: Function Resource Usage:
+     :name: function-usage-table
+
+     ===================================== ========= 
========================================= 
===============================================================================
+     Symbol                                Type      Description               
                Example
+     ===================================== ========= 
========================================= 
===============================================================================
+     <function_name>.num_vgpr              Integer   Number of VGPRs used by 
<function_name>,  .set foo.num_vgpr, max(32, bar.num_vgpr, baz.num_vgpr)
+                                                     worst case of itself and 
its callees'
+                                                     VGPR use
+     <function_name>.num_agpr              Integer   Number of AGPRs used by 
<function_name>,  .set foo.num_agpr, max(35, bar.num_agpr)
+                                                     worst case of itself and 
its callees'
+                                                     AGPR use
+     <function_name>.numbered_sgpr         Integer   Number of SGPRs used by 
<function_name>,  .set foo.num_sgpr, 21
+                                                     worst case of itself and 
its callees'
+                                                     SGPR use (without any of 
the implicitly
+                                                     used SGPRs)
+     <function_name>.private_seg_size      Integer   Total stack size required 
for             .set foo.private_seg_size, 16+max(bar.private_seg_size, 
baz.private_seg_size)
+                                                     <function_name>, 
expression is the
+                                                     locally used stack size + 
the worst case
+                                                     callee
+     <function_name>.uses_vcc              Bool      Whether <function_name>, 
or any of its    .set foo.uses_vcc, or(0, bar.uses_vcc)
+                                                     callees, uses vcc or not
----------------
slinder1 wrote:

The "or not" could probably be dropped

https://github.com/llvm/llvm-project/pull/102913
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to