15 #ifdef __SYCL_DEVICE_ONLY__
19 #include <type_traits>
21 #ifdef __SYCL_DEVICE_ONLY__
31 const char *SymbolicID,
const void *DefaultValue,
const void *RTBuffer);
35 const char *SymbolicID,
const void *DefaultValue,
const void *RTBuffer);
39 inline namespace _V1 {
43 class __SYCL_TYPE(kernel_handler) kernel_handler {
47 get_specialization_constant() {
48 #ifdef __SYCL_DEVICE_ONLY__
49 return getSpecializationConstantOnDevice<S>();
52 "kernel_handler::get_specialization_constant() is "
53 "not supported on host.");
58 void __init_specialization_constants_buffer(
59 char *SpecializationConstantsBuffer =
nullptr) {
60 MSpecializationConstantsBuffer = SpecializationConstantsBuffer;
63 #ifdef __SYCL_DEVICE_ONLY__
66 typename T =
typename std::remove_reference_t<decltype(S)>
::value_type,
67 std::enable_if_t<std::is_scalar_v<T>> * =
nullptr>
69 const char *SymbolicID = __builtin_sycl_unique_stable_id(S);
70 return __sycl_getScalar2020SpecConstantValue<T>(
71 SymbolicID, &S, MSpecializationConstantsBuffer);
75 typename T =
typename std::remove_reference_t<decltype(S)>
::value_type,
76 std::enable_if_t<!std::is_scalar_v<T>> * =
nullptr>
78 const char *SymbolicID = __builtin_sycl_unique_stable_id(S);
79 return __sycl_getComposite2020SpecConstantValue<T>(
80 SymbolicID, &S, MSpecializationConstantsBuffer);
84 char *MSpecializationConstantsBuffer =
nullptr;
#define __SYCL_ALWAYS_INLINE
#define __DPCPP_SYCL_EXTERNAL
std::error_code make_error_code(sycl::errc E) noexcept
Constructs an error code using e and sycl_category()