================ @@ -8069,6 +8069,38 @@ static void handleAMDGPUNumVGPRAttr(Sema &S, Decl *D, const ParsedAttr &AL) { D->addAttr(::new (S.Context) AMDGPUNumVGPRAttr(S.Context, AL, NumVGPR)); } +static void handleAMDGPUMaxNumWorkGroupsAttr(Sema &S, Decl *D, + const ParsedAttr &AL) { + if (AL.getNumArgs() != 3) { + S.Diag(AL.getLoc(), diag::err_attribute_wrong_number_arguments) << AL << 3; + return; + } + uint32_t NumWGX = 0; + uint32_t NumWGY = 0; + uint32_t NumWGZ = 0; + Expr *NumWGXExpr = AL.getArgAsExpr(0); + Expr *NumWGYExpr = AL.getArgAsExpr(1); + Expr *NumWGZExpr = AL.getArgAsExpr(2); + if (!checkUInt32Argument(S, AL, NumWGXExpr, NumWGX, 0, true)) + return; + if (!checkUInt32Argument(S, AL, NumWGYExpr, NumWGY, 1, true)) + return; + if (!checkUInt32Argument(S, AL, NumWGZExpr, NumWGZ, 2, true)) + return; + + if (NumWGX == 0 || NumWGY == 0 || NumWGZ == 0) { ---------------- erichkeane wrote:
It seems that this whole function is effectively just `handleWorkGroupSize`. Can we just use that function here instead? It seems to do exactly what you want here without such awkward layout. https://github.com/llvm/llvm-project/pull/79035 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits