[cfe-dev] OpenCL & SPIR specific types - proposal and patch

Benyei, Guy guy.benyei at intel.com
Sun Oct 7 02:07:45 PDT 2012


Anton,
I've fixed my patch according to your comments. I've also did some changes. See the patch attached.

Tanya,
I think the OpenCL specific types, including the sampler and the event types should be well distinguishable in IR format. The fact, that a 32 bit integer exposes a superset of the sampler functionality in some perspective is just a coincidence. The sampler type itself could contain additional information (for optimizations and other architecture specifics), and it doesn't have to hold the initializer value in the bitwise or integer format.
The backend should be able to recognize the sampler type from the IR.
In the attached patch, I've moved the OpenCL specific type conversion to the CGOpenCLRuntime class - this class was meant to be overloaded by OpenCL vendors to implement vendor specific behavior (codegen for OpenCL locals is implemented there), and so if a vendor prefers using the i32 representation, he could implement it there.
In the next increment this class should also contain a sampler initialization function, so sampler initialization could be implemented also in a vendor specific way.

Please review this new patch

Thanks
[email_signature_guy_new2]

From: Villmow, Micah [mailto:Micah.Villmow at amd.com]
Sent: Thursday, October 04, 2012 22:15
To: Tanya Lattner; Benyei, Guy
Cc: cfe-dev at cs.uiuc.edu; Anton.Lokhmotov at arm.com
Subject: RE: [cfe-dev] OpenCL & SPIR specific types - proposal and patch

There needs to be a way to differentiate between an integer and a sampler by only looking at the type. The sampler itself is an opaque type in OpenCL. The only requirement is that it is initialized with a 32bit unsigned integer, not that the type itself is an integer.

Micah

From: Tanya Lattner [mailto:lattner at apple.com]
Sent: Thursday, October 04, 2012 11:49 AM
To: Benyei, Guy
Cc: cfe-dev at cs.uiuc.edu<mailto:cfe-dev at cs.uiuc.edu>; Villmow, Micah; Anton.Lokhmotov at arm.com<mailto:Anton.Lokhmotov at arm.com>
Subject: Re: [cfe-dev] OpenCL & SPIR specific types - proposal and patch

I'm hoping to have comments on this patch tomorrow, but since I have proposed several patches to Clang for the sampler type (and have another in revision).. can you explain why you want to change the type from an integer to a pointer?

-Tanya

On Oct 3, 2012, at 8:06 AM, "Benyei, Guy" <guy.benyei at intel.com<mailto:guy.benyei at intel.com>> wrote:

I'd like to renew the discussion about making the OpenCL specific types first class citizens in Clang.

I think this change is required by the OpenCL specifications, since these type names are keywords of the OpenCL C language.
This change is also needed in order to enable efficient checking of OpenCL restrictions on these types (OpenCL 1.2 spec, section 6.9).
Furthermore, the proposed change will turn these types to pointers to opaque types, which means that it will hide the actual (vendor specific) implementation, so the OpenCL vendors using Clang will be able to implement these types in their own way.

This change would also be a basis for the implementation of SPIR generation by Clang. The SPIR discussion and spec can be found here:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-September/024132.html
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-September/024178.html

Earlier discussion about the OpenCL types was started by Anton Lokhmotov:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-May/015297.html
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-April/014741.html
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-March/014118.html
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-March/014121.html


<image001.png>

<opencl_types.patch>

---------------------------------------------------------------------
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-dev mailing list
cfe-dev at cs.uiuc.edu<mailto:cfe-dev at cs.uiuc.edu>
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20121007/d80eebba/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 24800 bytes
Desc: image001.png
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20121007/d80eebba/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: opencl_types2.patch
Type: application/octet-stream
Size: 28901 bytes
Desc: opencl_types2.patch
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20121007/d80eebba/attachment.obj>
-------------- next part --------------
---------------------------------------------------------------------
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20121007/d80eebba/attachment-0001.html>


More information about the cfe-dev mailing list