On Wed, May 25, 2016 at 2:20 PM, Aleksey Bader <aleksey.ba...@mail.ru> wrote:
> On Wed, May 25, 2016 at 11:53 PM, Richard Smith <rich...@metafoo.co.uk> > wrote: > >> On Wed, May 25, 2016 at 2:20 AM, Alexey Bader via cfe-commits < >> cfe-commits@lists.llvm.org> wrote: >> >>> bader added a subscriber: bader. >>> bader added a comment. >>> >>> In http://reviews.llvm.org/D20602#438667, @rsmith wrote: >>> >>> > I'm not suggesting it be treated as invalid. This extension is part of >>> at least OpenCL 2.1, but it's not part of OpenCL 1.0. `ext_vector_type` is >>> Clang's implementation of the OpenCL vector type. Therefore if the user >>> asks us to support OpenCL 1.0, we should give them a warning if they use >>> this syntax. >>> > >>> > If we're not building an OpenCL source file, then yes, this is our >>> extension and it makes sense for it to be available unconditionally >>> (without a warning). >>> >>> >>> To avoid confusion, I'd like to note that rgba selector was first >>> introduced in OpenCL C++ kernel language, which is currently in provisional >>> state and will be part of OpenCL version 2.2. >>> https://www.khronos.org/registry/cl/specs/opencl-2.2-cplusplus.pdf >>> (page 18). >>> >> >> https://www.khronos.org/registry/cl/specs/opencl-2.1-openclc++.pdf page >> 12-13 document it. Is that not OpenCL version 2.1? >> >> > > Not quite. OpenCL C++ kernel language was planned to be ratified with > OpenCL 2.1 standard, but it did happen. > It's still listed as provisional although OpenCL 2.1 specification was > released last year. https://www.khronos.org/opencl/ > Ratified OpenCL 2.1 standard requires to support only OpenCL C 2.0 and > SPIR-V 1.0 kernel languages. > There is no much sense to support provisional specification that will > never be ratified. > Thanks for the explanation. It seems to me that the right way to handle this is the same way we'd handle any feature that's part of an upcoming language standard: - add a flag to enable the OpenCL 2.2 language mode - if an OpenCL compilation uses this extension and doesn't specify that version or newer, produce an `ExtWarn` BTW, Khronos provided open source implementation of OpenCL C++ compiler and > since OpenCL C++ is a new kernel language and specification ( > https://www.khronos.org/registry/cl/specs/opencl-2.2-cplusplus.pdf) is > version 1.0, the numbering of standard versions is different from OpenCL C. > Current std version is 'c++'. > Here is usage example: > https://github.com/KhronosGroup/SPIR/blob/spirv-1.1/test/OpenCL/OpenCL22/opencl_cplusplus.cl > That's a really weird way to specify a version number.
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits