================ @@ -1270,77 +1270,21 @@ exit: ; MODULE: attributes #[[ATTR1:[0-9]+]] = { convergent nocallback nounwind } ; MODULE: attributes #[[ATTR2:[0-9]+]] = { convergent nocallback nofree nounwind willreturn } ; MODULE: attributes #[[ATTR3:[0-9]+]] = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } -; MODULE: attributes #[[ATTR4]] = { "kernel" } -; MODULE: attributes #[[ATTR5]] = { nosync memory(none) } +; MODULE: attributes #[[ATTR4]] = { "kernel" "nvvm.kernel" } +; MODULE: attributes #[[ATTR5]] = { "kernel" } +; MODULE: attributes #[[ATTR6]] = { nosync memory(none) } ;. ; CGSCC: attributes #[[ATTR0]] = { "llvm.assume"="ompx_aligned_barrier" } ; CGSCC: attributes #[[ATTR1:[0-9]+]] = { convergent nocallback nounwind } ; CGSCC: attributes #[[ATTR2:[0-9]+]] = { convergent nocallback nofree nounwind willreturn } ; CGSCC: attributes #[[ATTR3:[0-9]+]] = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } -; CGSCC: attributes #[[ATTR4]] = { "kernel" } -; CGSCC: attributes #[[ATTR5]] = { nosync memory(none) } +; CGSCC: attributes #[[ATTR4]] = { "kernel" "nvvm.kernel" } ---------------- AlexMaclean wrote:
There is a `ptx_kernel` calling convention which is an alternative to `nvvm.annoations` `!"kernel"` already. However, I don't think we can safely auto-upgrade to this in all cases, in the openMP example @jhuber6 provided above the function has both `amdgpu_kernel` and `"nvvm.kernel"` which would not be possible with `ptx_kernel` CC. Is there any way around this? if not an attribute seems like the only option. > The metadata use useful if we have cases where we really want fast lookup of > all the kernels in the TU. I don't think there are any cases where we do this, there isn't even a function to traverse the metadata and find all the kernels (that I know of). It's far more important to be able to quickly check if a function is a kernel, which the metadata solution is fairly slow for (there is a cache hacked on to try to mitigate this but that has other issues). In addition metadata should not be used to carry semantic information like this. https://github.com/llvm/llvm-project/pull/119261 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits