[cfe-dev] OpenCL vector data types

Chris Lattner clattner at apple.com
Thu Oct 28 08:58:31 PDT 2010


On Oct 25, 2010, at 2:58 PM, Alberto Magni wrote:

> Hi everybody,
> 
> for my master thesis I am extending clang in order to support OpenCL, at least the most important features.
> I am adding the support for vector data types. 
> 
> As I saw in many of the test cases in the suite the standard way to support them is using the ext_vector_type attribute, like this:
> 
> typedef __attribute__(( ext_vector_type(4) )) int int4;
> 
> My problem is that OpenCL supports a variety of vector data types: charn, intn, floatn ...
> There are 9 basic types supported and 'n' can assume 6 different values. 
> Moreover every vector type has an alias: cl_charn, cl_intn, ... and so on.
> This will end up in 108 typedefs to add in the Preprocessor intialization phase. 
> Can this be a problem? 
> Is there a better way to suppor all this types ?

108 typedefs should be no problem.  The implicit header for opencl is typically quite big to support the whole standard library etc.  The best way to handle this is to put the resultant header in a PCH file when you start caring about compile time.

-Chris



More information about the cfe-dev mailing list