@@ -150,10 +150,85 @@ C++2b Feature Support
150
150
Objective-C Language Changes in Clang
151
151
-------------------------------------
152
152
153
- OpenCL C Language Changes in Clang
154
- ----------------------------------
153
+ OpenCL Kernel Language Changes in Clang
154
+ ---------------------------------------
155
155
156
- ...
156
+
157
+ Command-line interface changes:
158
+
159
+ - All builtin types, macros and function declarations are now added by default
160
+ without any command-line flags. A flag is provided ``-cl-no-stdinc `` to
161
+ suppress the default declarations non-native to the compiler.
162
+
163
+ - Clang now compiles using OpenCL C version 1.2 by default if no version is
164
+ specified explicitly from the command line.
165
+
166
+ - Clang now supports ``.clcpp `` file extension for sources written in
167
+ C++ for OpenCL.
168
+
169
+ - Clang now accepts ``-cl-std=clc++1.0 `` that sets C++ for OpenCL to
170
+ the version 1.0 explicitly.
171
+
172
+ Misc common changes:
173
+
174
+ - Added ``NULL `` definition in internal headers for standards prior to the
175
+ version 2.0.
176
+
177
+ - Simplified use of pragma in extensions for ``double ``, images, atomics,
178
+ subgroups, Arm dot product extension. There are less cases where extension
179
+ pragma is now required by clang to compile kernel sources.
180
+
181
+ - Added missing ``as_size ``/``as_ptrdiff ``/``as_intptr ``/``as_uintptr_t ``
182
+ operators to internal headers.
183
+
184
+ - Added new builtin function for ndrange, ``cl_khr_subgroup_extended_types ``,
185
+ ``cl_khr_subgroup_non_uniform_vote ``, ``cl_khr_subgroup_ballot ``,
186
+ ``cl_khr_subgroup_non_uniform_arithmetic ``, ``cl_khr_subgroup_shuffle ``,
187
+ ``cl_khr_subgroup_shuffle_relative ``, ``cl_khr_subgroup_clustered_reduce ``
188
+ into the default Tablegen-based header.
189
+
190
+ - Added online documentation for Tablegen-based header, OpenCL 3.0 support,
191
+ new clang extensions.
192
+
193
+ - Fixed OpenCL C language version and SPIR address space reporting in DWARF.
194
+
195
+ New extensions:
196
+
197
+ - ``cl_khr_integer_dot_product `` for dedicated support of dot product.
198
+
199
+ - ``cl_khr_extended_bit_ops `` for dedicated support of extra binary operations.
200
+
201
+ - ``__cl_clang_bitfields `` for use of bit-fields in the kernel code.
202
+
203
+ - ``__cl_clang_non_portable_kernel_param_types `` for relaxing some restrictions
204
+ to types of kernel parameters.
205
+
206
+ OpenCL C 3.0 related changes:
207
+
208
+ - Added parsing support for the optionality of generic address space, images
209
+ (including 3d writes and ``read_write `` access qualifier), pipes, program
210
+ scope variables, double-precision floating-point support.
211
+
212
+ - Added optionality support for builtin functions (in ``opencl-c.h `` header)
213
+ for generic address space, C11 atomics.
214
+
215
+ - Added ``memory_scope_all_devices `` enum for the atomics in internal headers.
216
+
217
+ - Enabled use of ``.rgba `` vector components.
218
+
219
+ C++ for OpenCL related changes:
220
+
221
+ - Added ``__remove_address_space `` metaprogramming utility in internal headers
222
+ to allow removing address spaces from types.
223
+
224
+ - Improved overloads resolution logic for constructors wrt address spaces.
225
+
226
+ - Improved diagnostics of OpenCL specific types and address space qualified
227
+ types in ``reinterpret_cast `` and template functions.
228
+
229
+ - Fixed ``NULL `` macro in internal headers to be compatible with C++.
230
+
231
+ - Fixed use of ``half `` type.
157
232
158
233
ABI Changes in Clang
159
234
--------------------
0 commit comments