Skip to content

Commit 91fef67

Browse files
author
Alexander Batashev
authored
[SYCL] Make kernel_bundle interop more conformant (#4672)
Mark kernel bundle's get_native as const to fix sycl::get_native compilation issues, fix incorrect kernel bundle trait. Tests: intel/llvm-test-suite#489
1 parent 0b97344 commit 91fef67

File tree

2 files changed

+5
-17
lines changed

2 files changed

+5
-17
lines changed

sycl/include/CL/sycl/backend/opencl.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
#include <CL/sycl/detail/cl.h>
1717
#include <CL/sycl/kernel_bundle.hpp>
1818

19+
#include <vector>
20+
1921
__SYCL_INLINE_NAMESPACE(cl) {
2022
namespace sycl {
2123

@@ -75,8 +77,7 @@ struct BackendInput<backend::opencl, kernel_bundle<State>> {
7577

7678
template <bundle_state State>
7779
struct BackendReturn<backend::opencl, kernel_bundle<State>> {
78-
// TODO: Per SYCL 2020 this should be std::vector<cl_program>
79-
using type = cl_program;
80+
using type = std::vector<cl_program>;
8081
};
8182

8283
template <> struct BackendInput<backend::opencl, kernel> {

sycl/include/CL/sycl/kernel_bundle.hpp

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -311,21 +311,8 @@ class kernel_bundle : public detail::kernel_bundle_plain {
311311

312312
template <backend Backend>
313313
__SYCL_DEPRECATED("Use SYCL 2020 sycl::get_native free function")
314-
std::vector<typename backend_traits<Backend>::template return_type<
315-
kernel_bundle<State>>> get_native() {
316-
std::vector<typename backend_traits<Backend>::template return_type<
317-
kernel_bundle<State>>>
318-
ReturnValue;
319-
ReturnValue.reserve(std::distance(begin(), end()));
320-
321-
for (const device_image<State> &DevImg : *this) {
322-
ReturnValue.push_back(
323-
detail::pi::cast<typename backend_traits<
324-
Backend>::template return_type<kernel_bundle<State>>>(
325-
DevImg.getNative()));
326-
}
327-
328-
return ReturnValue;
314+
auto get_native() const -> backend_return_t<Backend, kernel_bundle<State>> {
315+
return getNative<Backend>();
329316
}
330317

331318
private:

0 commit comments

Comments
 (0)