Skip to content

Commit de11ad9

Browse files
committed
Conditionally disable std::byte APIs
Signed-off-by: Michael Aziz <[email protected]>
1 parent efcdc0a commit de11ad9

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

sycl/include/sycl/kernel_bundle.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,15 +887,18 @@ __SYCL_EXPORT bool is_source_kernel_bundle_supported(backend BE,
887887
/////////////////////////
888888
// syclex::create_kernel_bundle_from_source
889889
/////////////////////////
890+
890891
__SYCL_EXPORT kernel_bundle<bundle_state::ext_oneapi_source>
891892
create_kernel_bundle_from_source(const context &SyclContext,
892893
source_language Language,
893894
const std::string &Source);
894895

896+
#if (!defined(_HAS_STD_BYTE) || _HAS_STD_BYTE != 0)
895897
__SYCL_EXPORT kernel_bundle<bundle_state::ext_oneapi_source>
896898
create_kernel_bundle_from_source(const context &SyclContext,
897899
source_language Language,
898900
const std::vector<std::byte> &Bytes);
901+
#endif
899902

900903
/////////////////////////
901904
// syclex::build(source_kb) => exe_kb

sycl/source/detail/kernel_bundle_impl.hpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,12 +372,17 @@ class kernel_bundle_impl {
372372
LogPtr);
373373
}
374374
if (Language == syclex::source_language::spirv) {
375+
#if (!defined(_HAS_STD_BYTE) || _HAS_STD_BYTE != 0)
375376
const auto &SourceBytes =
376377
std::get<std::vector<std::byte>>(this->Source);
377378
std::vector<uint8_t> Result(SourceBytes.size());
378379
std::transform(SourceBytes.cbegin(), SourceBytes.cend(), Result.begin(),
379380
[](std::byte B) { return static_cast<uint8_t>(B); });
380381
return Result;
382+
#else
383+
throw sycl::exception(make_error_code(errc::invalid),
384+
"SPIR-V language support requires std::byte");
385+
#endif
381386
}
382387
throw sycl::exception(
383388
make_error_code(errc::invalid),
@@ -704,7 +709,11 @@ class kernel_bundle_impl {
704709
bundle_state MState;
705710
// ext_oneapi_kernel_compiler : Source, Languauge, KernelNames
706711
const syclex::source_language Language = syclex::source_language::opencl;
712+
#if (!defined(_HAS_STD_BYTE) || _HAS_STD_BYTE != 0)
707713
const std::variant<std::string, std::vector<std::byte>> Source;
714+
#else
715+
const std::variant<std::string> Source;
716+
#endif
708717
// only kernel_bundles created from source have KernelNames member.
709718
std::vector<std::string> KernelNames;
710719
};

sycl/source/kernel_bundle.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,7 @@ bool is_source_kernel_bundle_supported(backend BE, source_language Language) {
387387
/////////////////////////
388388
// syclex::create_kernel_bundle_from_source
389389
/////////////////////////
390+
390391
source_kb create_kernel_bundle_from_source(const context &SyclContext,
391392
source_language Language,
392393
const std::string &Source) {
@@ -403,6 +404,7 @@ source_kb create_kernel_bundle_from_source(const context &SyclContext,
403404
return sycl::detail::createSyclObjFromImpl<source_kb>(KBImpl);
404405
}
405406

407+
#if (!defined(_HAS_STD_BYTE) || _HAS_STD_BYTE != 0)
406408
source_kb
407409
create_kernel_bundle_from_source(const context &SyclContext,
408410
source_language Language,
@@ -416,6 +418,7 @@ create_kernel_bundle_from_source(const context &SyclContext,
416418
std::make_shared<kernel_bundle_impl>(SyclContext, Language, Bytes);
417419
return sycl::detail::createSyclObjFromImpl<source_kb>(KBImpl);
418420
}
421+
#endif
419422

420423
/////////////////////////
421424
// syclex::detail::build_from_source(source_kb) => exe_kb

0 commit comments

Comments
 (0)