Hi all,
First, I'm in favor of the qualifiers solution, and I also think that 
qualifiers are enough for checking image access restrictions (in some past 
version we did that by using only the attributes in the AST, using the 
qualifiers would be even more straight forward).
I'm also not sure you cannot have an image without access qualifier: there are 
built-in functions that do exactly this: get_image_width, get_image_height, 
get_image_channel_data_type etc... have a single prototype, but should accept 
both read_only and write_only images. Also, in the future, we might have 
read_write images too, so it would make sense to have a solution that enables 
us to pass an image only to a function accepting images with the same or lesser 
permissions.
Having something like:

  image_access_none       = 0,
  image_access_read_only  = 1,
  image_access_write_only = 2,
  image_access_read_write = 3

would make sense. Given a function expecting image with access qualifier fncq, 
passing an argument with qualifier argq is accepted iff:

((~argq) & fncq) == 0

Thanks
    Guy


-----Original Message-----
From: [email protected] [mailto:[email protected]] 
On Behalf Of Joey Gouly
Sent: Monday, February 25, 2013 14:04
To: 'Tanya Lattner'
Cc: [email protected]
Subject: RE: [PATCH] [OpenCL] Promoting OpenCL image types

> Ok, so take AddressSpaces for example. These are implemented as 
> qualifiers
and if you changed the read_only/write_only to an address space (and make them 
different) you would get an error a> > bout changing address space pointers 
when passing dst to that function. Address spaces are also available at codgen 
too.

> Using AddressSpaces as my example, to me it seems like its doable with
qualifiers. Maybe take a look at how that works and see if maybe you are just 
missing something? I think its cleaner to > use qualifiers.

Thinking about this, the reason image access qualifiers are different to 
address space qualifiers is that you cannot have an image *without* an access 
qualifier. There isn't an "image2d_t" type, only "read_only image2d_t" and 
"write_only image2d_t" (and read_write, but it's invalid). This is why I think 
it's better to have them as actual distinct types.

Joey







_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to