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 ?
Thank you in advance,