[OpenCL] CL2.0 restricts coversions of pointers to different address spaces

Pekka Jääskeläinen pekka.jaaskelainen at tut.fi
Wed Nov 12 01:11:23 PST 2014


Hi,

Could the two bool isAddressSpaceOverlapping() methods share
code somehow?

Otherwise LGTM (but I'm still learning the Clang code base!).

On 11/11/2014 08:13 PM, Anastasia Stulova wrote:
> Hello,
>
> In this patch I added restrictions for conversions of pointers to different
> address spaces as explained below.
>
> OpenCLv2.0 C spec s6.5 adds __generic (unnamed) address space to be used as a
> place holder in case an address space is not known statically or multiple are
> intended to be used with the same fragment of code.
>
> All named address spaces (that existed in the previous OpenCL standards)
> except for __constant are subset of __generic one. Conversions between
> pointers of different address spaces are regulated by rules in s6.5.5 as follows:
>
> -The named address spaces  ( __global, __local, and __private) can be
> converted to __generic implicitly. Generic -> named can only be done with an
> explicit cast.
>
> -Conversions between pointers of named address spaces are  not allowed.
>
> -A pointer to the __constant address space can only be converted to a pointer
> to the  __constant address space (either by an implicit cast or by an explicit
> one).
>
> This patch depends on the change submitted previously:
>
> https://www.mail-archive.com/cfe-commits@cs.uiuc.edu/msg109232.html
>
> Thanks,
>
> Anastasia
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>


-- 
Pekka



More information about the cfe-commits mailing list