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

Anastasia Stulova anastasia.stulova at arm.com
Tue Nov 11 10:13:06 PST 2014


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141111/c8014208/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: address_space_coversions.patch
Type: application/octet-stream
Size: 19654 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141111/c8014208/attachment.obj>


More information about the cfe-commits mailing list