@@ -415,6 +415,10 @@ def SYCLSimdDocs : Documentation {
415415 The compiler may decide to compile such functions using different optimization
416416 and code generation pipeline. Also, this attribute is used to distinguish
417417 ESIMD private globals from regular SYCL global variables.
418+
419+ In SYCL 1.2.1 mode, the ``intel::sycl_explicit_simd`` attribute is propagated
420+ from the function it is applied to onto the kernel which calls the function.
421+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
418422 }];
419423}
420424
@@ -2443,8 +2447,9 @@ lambda capture, or function object member, of the callable to which the
24432447attribute was applied. This effect is equivalent to annotating restrict on
24442448**all** kernel pointer arguments in an OpenCL or SPIR-V kernel.
24452449
2446- If ``intel::kernel_args_restrict`` is applied to a function called from a device
2447- kernel, the attribute is not ignored and it is propagated to the kernel.
2450+ In SYCL 1.2.1 mode, the ``intel::kernel_args_restrict`` attribute is propagated
2451+ from the function it is applied to onto the kernel which calls the function.
2452+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
24482453
24492454The attribute forms an unchecked assertion, in that implementations
24502455do not need to check/confirm the pre-condition in any way. If a user applies
@@ -2482,8 +2487,10 @@ def SYCLIntelNumSimdWorkItemsAttrDocs : Documentation {
24822487 let Content = [{
24832488Applies to a device function/lambda function. Indicates the number of work
24842489items that should be processed in parallel. Valid values are positive integers.
2485- If ``intel::num_simd_work_items`` is applied to a function called from a
2486- device kernel, the attribute is not ignored and it is propagated to the kernel.
2490+
2491+ In SYCL 1.2.1 mode, the ``intel::num_simd_work_items`` attribute is propagated
2492+ from the function it is applied to onto the kernel which calls the function.
2493+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
24872494
24882495.. code-block:: c++
24892496
@@ -2656,6 +2663,11 @@ allows the Y and Z arguments to be optional. If not provided by the user, the
26562663value of Y and Z defaults to 1. See section 5.8.1 Kernel Attributes for more
26572664details.
26582665
2666+ In SYCL 1.2.1 mode, the ``intel::reqd_work_group_size``,
2667+ ``cl::reqd_work_group_size``, and ``sycl::reqd_work_group_size`` attributes are
2668+ propagated from the function they are applied to onto the kernel which calls the
2669+ function. In SYCL 2020 mode, the attributes are not propagated to the kernel.
2670+
26592671.. code-block:: c++
26602672
26612673 [[sycl::reqd_work_group_size(4, 4, 4)]] void foo() {}
@@ -2800,8 +2812,10 @@ Applies to a device function/lambda function. Indicates the maximum dimensions
28002812of a work group. Values must be positive integers. This is similar to
28012813reqd_work_group_size, but allows work groups that are smaller or equal to the
28022814specified sizes.
2803- If ``intel::max_work_group_size`` is applied to a function called from a
2804- device kernel, the attribute is not ignored and it is propagated to the kernel.
2815+
2816+ In SYCL 1.2.1 mode, the ``intel::max_work_group_size`` attribute is propagated
2817+ from the function it is applied to onto the kernel which calls the function.
2818+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
28052819
28062820.. code-block:: c++
28072821
@@ -2832,8 +2846,10 @@ Applies to a device function/lambda function or function call operator (of a
28322846function object). Indicates the largest valid global work dimension that will be
28332847accepted when running the kernel on a device. Valid values are integers in a
28342848range of [0, 3].
2835- If ``intel::max_global_work_dim`` is applied to a function called from a
2836- device kernel, the attribute is not ignored and it is propagated to the kernel.
2849+
2850+ In SYCL 1.2.1 mode, the ``intel::max_global_work_dim`` attribute is propagated
2851+ from the function it is applied to onto the kernel which calls the function.
2852+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
28372853
28382854.. code-block:: c++
28392855
@@ -2890,6 +2906,10 @@ device operation, guiding the FPGA backend to insert the appropriate number of
28902906registers to break-up the combinational logic circuit, and thereby controlling
28912907the length of the longest combinational path.
28922908
2909+ In SYCL 1.2.1 mode, the ``intel::scheduler_target_fmax_mhz`` attribute is
2910+ propagated from the function it is applied to onto the kernel which calls the
2911+ function. In SYCL 2020 mode, the attribute is not propagated to the kernel.
2912+
28932913.. code-block:: c++
28942914
28952915 [[intel::scheduler_target_fmax_mhz(4)]] void foo() {}
@@ -2920,6 +2940,10 @@ function object). If 1, compiler doesn't use the global work offset values for
29202940the device function. Valid values are 0 and 1. If used without argument, value
29212941of 1 is set implicitly.
29222942
2943+ In SYCL 1.2.1 mode, the ``intel::no_global_work_offset`` attribute is
2944+ propagated from the function it is applied to onto the kernel which calls the
2945+ function. In SYCL 2020 mode, the attribute is not propagated to the kernel.
2946+
29232947.. code-block:: c++
29242948
29252949 [[intel::no_global_work_offset]]
@@ -4607,6 +4631,10 @@ the ``[[intel::named_sub_group_size(NAME)]]`` documentation for clarification.
46074631This attribute is mutually exclusive with ``[[intel::named_sub_group_size(NAME)]]``
46084632and ``[[intel::sycl_explicit_simd]]``.
46094633
4634+ In SYCL 1.2.1 mode, the ``intel::reqd_sub_group_size`` attribute is propagated
4635+ from the function it is applied to onto the kernel which calls the function.
4636+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
4637+
46104638In addition to device functions, the required sub-group size attribute may also
46114639be specified in the definition of a named functor object and lambda functions,
46124640as in the examples below:
@@ -5837,11 +5865,14 @@ provided it declares the right formal arguments.
58375865
58385866In most respects, this is similar to the ``swiftcall`` attribute, except for
58395867the following:
5868+
58405869- A parameter may be marked ``swift_async_context``, ``swift_context``
58415870 or ``swift_indirect_result`` (with the same restrictions on parameter
58425871 ordering as ``swiftcall``) but the parameter attribute
58435872 ``swift_error_result`` is not permitted.
5873+
58445874- A ``swiftasynccall`` function must have return type ``void``.
5875+
58455876- Within a ``swiftasynccall`` function, a call to a ``swiftasynccall``
58465877 function that is the immediate operand of a ``return`` statement is
58475878 guaranteed to be performed as a tail call. This syntax is allowed even
0 commit comments