Skip to content

Commit

Permalink
Replace a note by normative waiver on optional feature
Browse files Browse the repository at this point in the history
Take into account Greg Lueck comment
#388 (comment)

Also reformat some text to pass the CI.
  • Loading branch information
keryell committed Oct 2, 2024
1 parent 58be7af commit f0c3a8f
Showing 1 changed file with 11 additions and 13 deletions.
24 changes: 11 additions & 13 deletions adoc/chapters/device_compiler.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -205,9 +205,9 @@ Amongst other things, this restriction makes it illegal for a
implementation defines the [code]#SYCL_EXTERNAL# macro as described in
<<subsec:syclexternal>>.

In the case of a manifestly constant-evaluated expression or
conversion, any code accepted by the C++ standard in this case is also
accepted in a SYCL <<device-function>>.
In the case of a manifestly constant-evaluated expression or conversion, any
code accepted by the C++ standard in this case is also accepted in a SYCL
<<device-function>>.

[NOTE]
====
Expand Down Expand Up @@ -386,6 +386,14 @@ in <<sec:backends>> must be defined by all conformant implementations.

A number of kernel features defined by this SYCL specification are optional;
they may be supported on some devices but not on other devices.

As stated in <<sec:language.restrictions.kernels>>, the restrictions for
optional kernel features do not apply to manifestly constant-evaluated
expressions or conversions in device code.
Device code may use optional features in manifestly constant-evaluated
expressions or conversions even if the device does not support the optional
feature.

As described in <<sec:device-aspects>>, an application can test whether a device
supports these features by testing whether the device has an associated aspect.
The following aspects are those that correspond to optional kernel features:
Expand Down Expand Up @@ -446,16 +454,6 @@ the entire device image when [code]#KernelA# is submitted to device
[code]#dev1#.
====

[NOTE]
====
As stated in <<sec:language.restrictions.kernels>>, the restrictions
for optional kernel features do not apply to manifestly
constant-evaluated expressions or conversions in device code. Device
code may use optional features in manifestly constant-evaluated
expressions or conversions even if the device does not support the
optional feature.
====


[[sec:device.attributes]]
== Attributes for device code
Expand Down

0 comments on commit f0c3a8f

Please sign in to comment.