[cfe-dev] OpenCL and Type Poisoning

Speziale Ettore speziale.ettore at gmail.com
Tue Feb 8 09:03:28 PST 2011


I attach the proposed patch for parsing and validating OpenCL kernel
functions. The patch is composed by:

* "kernel" keyword handling:
  the code comes from lates Anton's pathches. Since I have seen that 
  the ARM patch is not yet been merged in the main tree, I have 
  extrapolated the portion about the "kernel" keyword, and I have based 
  my work on this
* "opencl_kernel_poison" attribute:
  can be attached to a typedef definition to mark the defined type, and 
  derived ones, unusable as kernel param types
* kernel function semantic checking:
  kernel function has been checked for correct return value and for 
  param types (OpenCL 1.1 Specs, 6.8.k). Checking for half data type
  has not been implemented
* OpenCL header:
  that header should define OpenCL derived types, such as size_t and 
  vector types. For now, if defines size_t, ptrdiff_t, [u]intptr_t.
  I have preferred using a custom header instead of stddef and stdint
  to not incure in namespace pollution
* tests:
  I have added some test to check the proposed extension

I have found a family of functions (Require*) in clang::Sema
implementing custom checking. I have implemented the checking for the
OpenCLKernelAttr attribute in a similar way.

I hope this patch will be usefull for the clang community. It was for
Best regards,
speziale.ettore at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: anton-kernel-02-08-2011.diff
Type: text/x-patch
Size: 15044 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110208/0b459545/attachment.bin>

More information about the cfe-dev mailing list