jhuber6 added inline comments.
================ Comment at: clang/lib/CodeGen/TargetInfo.cpp:7362 + if (FD->hasAttr<NVPTXKernelAttr>()) { + addNVVMMetadata(F, "kernel", 1); + } ---------------- tra wrote: > How does AMDGPU track kernels? It may be a good opportunity to stop using > metadata for this if we can use a better suited mechanism. E.g. a function > attribute or a calling convention. > > AMDGPU uses a calling convention, which is probably a better option. I don't know how this still gets reduced in the back-end though. ================ Comment at: clang/lib/Sema/SemaDeclAttr.cpp:4872 + if (AL.getKind() == ParsedAttr::AT_NVPTXKernel) + D->addAttr(::new (S.Context) NVPTXKernelAttr(S.Context, AL)); + else ---------------- tra wrote: > I'm tempted to `addAttr(CUDAGlobal)` here, effectively making `nvptx_kernel` > a target-specific alias for it, so we're guaranteed that they both are > handled exactly the same everywhere. > On the other hand, it all may be moot -- without CUDA compilation mode, > `CUDAGlobal` handling will be different in this compilation mode. > > Can CUDAGlobal itself be allowed to be used as a target-specific attribute > for NVPTX in C++ mode? > > I think, if possible, we should ideally have only one attribute doing the > job, even if it may have somewhat different use cases in CUDA vs C++ > compilation modes. > > Yeah that's what I was thinking. Right now we only parse and check all the CUDA attributes in the CUDA language mode. I could change it to allow them whenever we're compiling for the `NVPTX` architecture instead. I don't think for the vast majority it would have any significant effect. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140226/new/ https://reviews.llvm.org/D140226 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits