================
@@ -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

Reply via email to