diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td
--- a/clang/include/clang/Basic/AttrDocs.td
+++ b/clang/include/clang/Basic/AttrDocs.td
@@ -260,6 +260,7 @@
to outline device code and to generate an OpenCL kernel.
Here is a code example of the SYCL program, which demonstrates the compiler's
outlining job:
+
.. code-block:: c++
int foo(int x) { return ++x; }
@@ -282,27 +283,29 @@
specification Section 6.4.
To show to the compiler entry point to the "device part" of the code, the SYCL
runtime can use the ``sycl_kernel`` attribute in the following way:
+
.. code-block:: c++
-namespace cl {
-namespace sycl {
-class handler {
- template
- __attribute__((sycl_kernel)) void sycl_kernel_function(KernelType KernelFuncObj) {
- // ...
- KernelFuncObj();
- }
- template
- void parallel_for(range NumWorkItems, KernelType KernelFunc) {
-#ifdef __SYCL_DEVICE_ONLY__
- sycl_kernel_function(KernelFunc);
-#else
- // Host implementation
-#endif
- }
-};
-} // namespace sycl
-} // namespace cl
+ namespace cl {
+ namespace sycl {
+ class handler {
+ template
+ __attribute__((sycl_kernel)) void sycl_kernel_function(KernelType KernelFuncObj) {
+ // ...
+ KernelFuncObj();
+ }
+
+ template
+ void parallel_for(range NumWorkItems, KernelType KernelFunc) {
+ #ifdef __SYCL_DEVICE_ONLY__
+ sycl_kernel_function(KernelFunc);
+ #else
+ // Host implementation
+ #endif
+ }
+ };
+ } // namespace sycl
+ } // namespace cl
The compiler will also generate an OpenCL kernel using the function marked with
the ``sycl_kernel`` attribute.