[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