[llvm-branch-commits] [cfe-branch] r369758 - [Docs][OpenCL] Release 9.0 notes for OpenCL

Anastasia Stulova via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Aug 23 06:54:19 PDT 2019


Author: stulova
Date: Fri Aug 23 06:54:19 2019
New Revision: 369758

URL: http://llvm.org/viewvc/llvm-project?rev=369758&view=rev
Log:
[Docs][OpenCL] Release 9.0 notes for OpenCL

Differential Revision: https://reviews.llvm.org/D66294


Modified:
    cfe/branches/release_90/docs/ReleaseNotes.rst

Modified: cfe/branches/release_90/docs/ReleaseNotes.rst
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_90/docs/ReleaseNotes.rst?rev=369758&r1=369757&r2=369758&view=diff
==============================================================================
--- cfe/branches/release_90/docs/ReleaseNotes.rst (original)
+++ cfe/branches/release_90/docs/ReleaseNotes.rst Fri Aug 23 06:54:19 2019
@@ -46,6 +46,8 @@ sections with improvements to Clang's su
 Major New Features
 ------------------
 
+- Experimental support for :ref:`C++ for OpenCL <openclcpp>` has been
+  added.
 - ...
 
 Improvements to Clang's diagnostics
@@ -133,6 +135,14 @@ C11 Feature Support
 C++ Language Changes in Clang
 -----------------------------
 
+- Support for the address space attribute in various C++ features was improved,
+  refer to :ref:`C++ for OpenCL <openclcpp>` for more details. The following
+  features deviated from OpenCL:
+
+  (1) Address spaces as method qualifiers are not accepted yet;
+
+  (2) There is no address space deduction.
+
 - ...
 
 C++1z Feature Support
@@ -152,10 +162,87 @@ Objective-C Language Changes in Clang
       // clang used to encode this as "^{NSArray=#}" instead of "@".
       const char *s0 = @encode(MyArray *);
 
-OpenCL C Language Changes in Clang
-----------------------------------
+OpenCL Kernel Language Changes in Clang
+---------------------------------------
 
-...
+OpenCL C
+^^^^^^^^
+
+- Enabled use of variadic macro as a Clang extension.
+
+- Added initial support for implicitly including OpenCL builtin
+  fuctions using efficient trie lookup generated by TableGen.
+  A corresponding frontend-only flag ``-fdeclare-opencl-builtins``
+  has been added to enable trie during parsing.
+
+- Refactored header file to be used for common parts between
+  regular header added using ``-finclude-default-header`` and trie
+  based declarations added using ``-fdeclare-opencl-builtins``.
+
+- Improved string formatting diagnostics in printf for vector types.
+
+- Simplified the internal representation of blocks, including their
+  generation in IR. Furthermore, indirect calls to block function
+  has been changed to direct function calls.
+
+- Added diagnostics for conversions of nested pointers with
+  different address spaces.
+
+- Added ``cl_arm_integer_dot_product`` extension.
+
+- Fixed global samplers in OpenCL v2.0.
+
+- Improved math builtin functions with parameters of type ``long
+  long`` for x86.
+
+.. _openclcpp:
+
+C++ for OpenCL
+^^^^^^^^^^^^^^
+
+Experimental support for C++17 features in OpenCL has been added
+and backwards compatibility with OpenCL C v2.0 was enabled.
+The documentation has been added for supported language features
+into :doc:`LanguageExtensions` and :doc:`UsersManual`.
+
+Implemented features are:
+
+- Address space behavior is improved in majority of C++ features:
+
+  - Templates parameters and arguments;
+
+  - Reference types;
+
+  - Type deduction;
+
+  - Objects and member functions, including special member
+    functions;
+
+  - Builtin operators;
+
+  - Method qualifiers now include address space;
+
+  - Address space deduction has been extended for C++ use cases;
+
+  - Improved overload ranking rules;
+
+  - All standard cast operators now prevent converting address
+    spaces (except for conversions allowed implicitly). They
+    can still be cast using C-style cast.
+
+- Vector types as in OpenCL C, including compound vector
+  initialization.
+
+- OpenCL-specific types: images, samplers, events, pipes, are
+  accepted. Note that blocks are not supported yet.
+
+- OpenCL standard header in Clang can be compiled in C++ mode.
+
+- Global constructors can be invoked from the host side using
+  a specific, compiler-generated kernel.
+
+- Overloads with generic address space are added to all atomic
+  builtin functions, including the ones prior to OpenCL v2.0.
 
 ABI Changes in Clang
 --------------------




More information about the llvm-branch-commits mailing list