[cfe-dev] [OpenCL] Representing kernel attributes by LLVM target-dependent attribute-value pairs instead of metadata

Liu, Yaxun (Sam) via cfe-dev cfe-dev at lists.llvm.org
Mon May 9 13:05:11 PDT 2016


Hi,

When SPIR 1.2/2.0 spec was developed, there was no target-dependent attribute-value pair in LLVM. As such, kernel attributes were represented as metadata.

This caused lots of inconvenience since these metadata are difficult to manipulate/change when kernel functions went through transformations in backends.

Now LLVM supports target-dependent attribute-value pair, I am wondering whether it is time to use that to represent kernel attributes.

e.g. something like (just to give an idea, not exact llvm IR)

kernel void foo(global int*a, sampler_t s); #1
#1 = {
reqd_work_group_size="1 1 1",
kernel_arg_type="int *, sampler_t",
...
}

basically we keep the info conveyed by the original metadata but attach them to the kernel function as attribute/value pair. This will make these attributes much easier to manipulate/change.

Any feedbacks? Thanks.

Sam
-------------- next part --------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/ms-tnef
Size: 12475 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160509/a2ecc8ff/attachment.bin>


More information about the cfe-dev mailing list