Anastasia created this revision.
Anastasia added reviewers: svenvh, mantognini, hans.
Herald added subscribers: ebevhan, jfb, yaxunl.

https://reviews.llvm.org/D66294

Files:
  docs/ReleaseNotes.rst

Index: docs/ReleaseNotes.rst
===================================================================
--- docs/ReleaseNotes.rst
+++ docs/ReleaseNotes.rst
@@ -46,6 +46,8 @@
 Major New Features
 ------------------
 
+- Full experimental support of :ref:`C++ for OpenCL <openclcpp>` has
+  been added.
 - ...
 
 Improvements to Clang's diagnostics
@@ -133,6 +135,14 @@
 C++ Language Changes in Clang
 -----------------------------
 
+- Support of 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,84 @@
       // 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 BIFs using
+  efficient trie lookup generated by TableGen. A corresponding
+  frontend only flag ``-fadd-opencl-builtins`` has been added to
+  enable trie during parsing.
+
+- Refactored header file to be used for common parts between
+  regular header and TableGen trie.
+
+- Improved string formatting diagnostics in printf for vector types.
+
+- Simplified representation of blocks including their generation in
+  IR i.e. 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 function of long long for x86.
+
+.. _openclcpp:
+
+C++ for OpenCL
+^^^^^^^^^^^^^^
+
+Full experimental support for C++17 features in OpenCL has been
+added and backwards compatibility to 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 are allowed with address spaces;
+
+  - Address space deduction has been extended for C++ use cases;
+
+  - Improved overload ranking rules.
+
+  - Cast operators are now preventing to converting address
+    spaces. They can still be cast using C style cast.
+
+- Vector types as in OpenCL C including compound vector
+  initialization.
+
+- OpenCL specific type: images, samplers, events, pipes, except
+  for blocks.
+
+- OpenCL standard header in Clang can be compiled in C++ mode.
+
+- Global constructor stab is made an executable kernel to allow
+  invoking it from the host side.
+
+- Overloads with generic address space are added to all atomics
+  including the ones from prior to OpenCL v2.0.
 
-...
 
 ABI Changes in Clang
 --------------------
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to