Skip to content

Commit d0b88fc

Browse files
author
Anastasia Stulova
committed
[Docs][OpenCL] Release 9.0 notes for OpenCL
Differential Revision: https://reviews.llvm.org/D66294 llvm-svn: 369758
1 parent 9f06b98 commit d0b88fc

File tree

1 file changed

+90
-3
lines changed

1 file changed

+90
-3
lines changed

clang/docs/ReleaseNotes.rst

Lines changed: 90 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ sections with improvements to Clang's support for those languages.
4646
Major New Features
4747
------------------
4848

49+
- Experimental support for :ref:`C++ for OpenCL <openclcpp>` has been
50+
added.
4951
- ...
5052

5153
Improvements to Clang's diagnostics
@@ -133,6 +135,14 @@ C11 Feature Support
133135
C++ Language Changes in Clang
134136
-----------------------------
135137

138+
- Support for the address space attribute in various C++ features was improved,
139+
refer to :ref:`C++ for OpenCL <openclcpp>` for more details. The following
140+
features deviated from OpenCL:
141+
142+
(1) Address spaces as method qualifiers are not accepted yet;
143+
144+
(2) There is no address space deduction.
145+
136146
- ...
137147

138148
C++1z Feature Support
@@ -152,10 +162,87 @@ Objective-C Language Changes in Clang
152162
// clang used to encode this as "^{NSArray=#}" instead of "@".
153163
const char *s0 = @encode(MyArray *);
154164
155-
OpenCL C Language Changes in Clang
156-
----------------------------------
165+
OpenCL Kernel Language Changes in Clang
166+
---------------------------------------
157167

158-
...
168+
OpenCL C
169+
^^^^^^^^
170+
171+
- Enabled use of variadic macro as a Clang extension.
172+
173+
- Added initial support for implicitly including OpenCL builtin
174+
fuctions using efficient trie lookup generated by TableGen.
175+
A corresponding frontend-only flag ``-fdeclare-opencl-builtins``
176+
has been added to enable trie during parsing.
177+
178+
- Refactored header file to be used for common parts between
179+
regular header added using ``-finclude-default-header`` and trie
180+
based declarations added using ``-fdeclare-opencl-builtins``.
181+
182+
- Improved string formatting diagnostics in printf for vector types.
183+
184+
- Simplified the internal representation of blocks, including their
185+
generation in IR. Furthermore, indirect calls to block function
186+
has been changed to direct function calls.
187+
188+
- Added diagnostics for conversions of nested pointers with
189+
different address spaces.
190+
191+
- Added ``cl_arm_integer_dot_product`` extension.
192+
193+
- Fixed global samplers in OpenCL v2.0.
194+
195+
- Improved math builtin functions with parameters of type ``long
196+
long`` for x86.
197+
198+
.. _openclcpp:
199+
200+
C++ for OpenCL
201+
^^^^^^^^^^^^^^
202+
203+
Experimental support for C++17 features in OpenCL has been added
204+
and backwards compatibility with OpenCL C v2.0 was enabled.
205+
The documentation has been added for supported language features
206+
into :doc:`LanguageExtensions` and :doc:`UsersManual`.
207+
208+
Implemented features are:
209+
210+
- Address space behavior is improved in majority of C++ features:
211+
212+
- Templates parameters and arguments;
213+
214+
- Reference types;
215+
216+
- Type deduction;
217+
218+
- Objects and member functions, including special member
219+
functions;
220+
221+
- Builtin operators;
222+
223+
- Method qualifiers now include address space;
224+
225+
- Address space deduction has been extended for C++ use cases;
226+
227+
- Improved overload ranking rules;
228+
229+
- All standard cast operators now prevent converting address
230+
spaces (except for conversions allowed implicitly). They
231+
can still be cast using C-style cast.
232+
233+
- Vector types as in OpenCL C, including compound vector
234+
initialization.
235+
236+
- OpenCL-specific types: images, samplers, events, pipes, are
237+
accepted. Note that blocks are not supported yet.
238+
239+
- OpenCL standard header in Clang can be compiled in C++ mode.
240+
241+
- Global constructors can be invoked from the host side using
242+
a specific, compiler-generated kernel.
243+
244+
- Overloads with generic address space are added to all atomic
245+
builtin functions, including the ones prior to OpenCL v2.0.
159246

160247
ABI Changes in Clang
161248
--------------------

0 commit comments

Comments
 (0)