[llvm] [AMDGPU] Split struct kernel arguments (PR #133786)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 21 10:11:28 PST 2026
================
@@ -357,17 +357,38 @@ void MetadataStreamerMsgPackV4::emitKernelArg(const Argument &Arg,
Align ArgAlign;
std::tie(ArgTy, ArgAlign) = getArgumentTypeAlign(Arg, DL);
+ // Assuming the argument is not split from struct-type argument by default,
+ // unless we find it in function attribute amdgpu-argument-mapping.
+ unsigned OriginalArgIndex = ~0U;
+ uint64_t OriginalArgOffset = 0;
+ Attribute Attr =
+ Func->getAttributes().getParamAttr(ArgNo, "amdgpu-original-arg");
+ if (Attr.isValid()) {
+ StringRef MappingStr = Attr.getValueAsString();
+ SmallVector<StringRef, 2> Elements;
+ MappingStr.split(Elements, ':');
+ if (Elements.size() == 2) {
+ if (Elements[0].getAsInteger(10, OriginalArgIndex))
+ report_fatal_error(
----------------
arsenm wrote:
Don't use fatal errors
https://github.com/llvm/llvm-project/pull/133786
More information about the llvm-commits
mailing list