[PATCH] D156853: [AMDGPU] Add metadata to track preloaded arguments

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 2 04:08:58 PDT 2023


arsenm added inline comments.


================
Comment at: llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp:29
 
+class PreloadKernelArgInfo {
+private:
----------------
All this logic is basically repeated in the other 2 kernarg lowering implementations, can this be shared?


================
Comment at: llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp:195
+    if (Arg.hasInRegAttr() && (InPreloadSequence || !HasPreloadArgs) &&
+        PreloadInfo.allocPreloadArg(AllocSize)) {
+      // Preload this argument.
----------------
This AllocSize thing isn't sophisticated enough and won't handle aggregates correctly. You need to check the type and number of parts from getNumRegistersForCallingConv and getRegisterTypeForCallingConv


================
Comment at: llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp:200-202
+      PreloadInfo.KernelArgMetadata.push_back(
+          llvm::MDNode::get(Ctx, MDB.createConstant(llvm::ConstantInt::get(
+                                     Builder.getInt32Ty(), Idx))));
----------------
My first thought is I'm not a huge fan of adding metadata for communicating between passes but I'll have to look at the use context


================
Comment at: llvm/test/CodeGen/AMDGPU/preload-kernal-args-metadata.ll:2
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature
+; RUN: opt -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -amdgpu-attributor -amdgpu-lower-kernel-arguments -S < %s | FileCheck -check-prefix=NO-PRELOAD %s
+; RUN: opt -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -amdgpu-attributor -amdgpu-lower-kernel-arguments -amdgpu-kernarg-preload-count=1 -S < %s | FileCheck -check-prefix=PRELOAD-1 %s
----------------
Can you use -passes here?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D156853/new/

https://reviews.llvm.org/D156853



More information about the llvm-commits mailing list