[cfe-dev] A proposal for adding OpenCL C++ support (Spec v2.2)

Anastasia Stulova via cfe-dev cfe-dev at lists.llvm.org
Wed Apr 4 07:09:48 PDT 2018

Hi John,

The OpenCL C++ patch contains integration with the SPIR-V translation tool. We have restared the discussion about that tool on llvm dev recently:


If you look for example in the README file it explain such things as new option -emit-spirv.


Also there is support for the SPIR-V friendly format:


This is mainly located in lib/CodeGen/OclCxxRewrite directory.

Because, we have a separate activity to redesign the integration with SPIRV, we won't be contributing those bits currently. But the plan is to restart the discussion around this at some point hopefully soon.

Supporting SPIR-V is essential to us because it gives to many tool vendor a path to use Clang directly from upstream. So we will be working on its integration as well. But for now we would like to start with the generic OpenCL C++ support - Parsing, Sema, basic CodeGen, etc.

I hope it clarifies your question.



From: rjmccall at apple.com <rjmccall at apple.com> on behalf of John McCall <rjmccall at apple.com>
Sent: 28 March 2018 22:25
To: Anastasia Stulova
Cc: clang-dev developer list; nd
Subject: Re: [cfe-dev] A proposal for adding OpenCL C++ support (Spec v2.2)

On Mar 23, 2018, at 2:30 PM, Anastasia Stulova via cfe-dev <cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>> wrote:
There were no objections to this so far. I assume it means nobody is opposing this new feature.

I have no objections.

Just to give a bit more info and a chance for the last feedback. We don't plan to contribute the whole patch but only around 3K lines + tests. The overall changes will be smaller than OpenCL 2.0. And they will mainly affect C++ code paths in Sema and CodeGen, but some parsing bits too.

The time frame to start this work will hopefully be the beginning of April.

Okay.  Can you explain what it means that you won't be contributing the whole patch?



From: cfe-dev <cfe-dev-bounces at lists.llvm.org<mailto:cfe-dev-bounces at lists.llvm.org>> on behalf of Anastasia Stulova via cfe-dev <cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>>
Sent: 23 February 2018 16:29
To: clang-dev developer list
Cc: nd
Subject: [cfe-dev] A proposal for adding OpenCL C++ support (Spec v2.2)


A number of developers from the member companies within the Khronos Group are interested to contribute the prototype implementation of OpenCL C++ that is currently located on github and based on version 3.6:

This implementation is compliant to OpenCL v2.2 standard:
Similarly to OpenCL C being based on C99, OpenCL C++ support is entirely based on C++14 with a number of extensions (some of which will be shared with OpenCL C) and a few minor restrictions.

The plan would be to take small patches from the github repository and perform any necessary rework and clean up before putting up for review. From the OpenCL side, I don't see any issue with this plan as it doesn't interfere with any current development I am aware of, and also it would be great to progress to the next OpenCL standard. I just want to check if there are any objections from anyone or things we should be aware of before the start. I'm particularly looking for feedback from C++ implementers as there might be some overlap.

Additionally, there are two more related threads, which I plan to discuss separately. There is:
(i) standard library support libclcxx: https://github.com/KhronosGroup/libclcxx.<https://github.com/KhronosGroup/libclcxx.>
(ii) and IR generation to SPIRV: http://lists.llvm.org/pipermail/llvm-dev/2018-February/121317.html
that we would like to provide as well, in order to allow Clang to produce an end binary targeting a wider range of architectures directly (not just AMD GPU). We expect that the complete open source solution for OpenCL C++ will increase significantly Clang users and unify our development forces i.e. refactoring, bug hunting, etc. The plan would be to do similar for OpenCL C too at a later point of time.

Please, contact me if you have any thoughts or comments.

cfe-dev mailing list
cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180404/b4e4379c/attachment.html>

More information about the cfe-dev mailing list