This wasn't necessary before since they are always enabled
for kernels, but this is necessary if they need to be
forwarded to a callable function.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
LGTM, with exception of llvm_unreachable for indirect calls.
| lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp | ||
|---|---|---|
| 221 | llvm_unreachable for now.  | |
| lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp | ||
|---|---|---|
| 221 | We already error on these calls in codegen with a proper error  | |
llvm_unreachable for now.
In general I guess all functions whose address is taken shall get all the attributes. One tricky point is that bitcast of a function type (for example when calling an alias changing FTy) considered to be a taken address, so some simplification and analysis is needed.