| //===----------------------------------------------------------------------===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #include <sycl/__impl/event.hpp> | |
| #include <sycl/__impl/exception.hpp> | |
| #include <detail/event_impl.hpp> | |
| _LIBSYCL_BEGIN_NAMESPACE_SYCL | |
| event::event() : impl(detail::EventImpl::createDefaultEvent()) {} | |
| backend event::get_backend() const noexcept { return impl->getBackend(); } | |
| void event::wait(const std::vector<event> &EventList) { | |
| for (auto Event : EventList) { | |
| Event.wait(); | |
| } | |
| } | |
| void event::wait() { impl->wait(); } | |
| void event::wait_and_throw() { impl->waitAndThrow(); } | |
| void event::wait_and_throw(const std::vector<event> &EventList) { | |
| for (auto E : EventList) { | |
| E.wait_and_throw(); | |
| } | |
| } | |
| std::vector<event> event::get_wait_list() { | |
| const auto &WaitList = impl->getWaitList(); | |
| std::vector<event> Result; | |
| Result.reserve(WaitList.size()); | |
| for (const auto &EventImpl : WaitList) | |
| Result.push_back(detail::createSyclObjFromImpl<event>(EventImpl)); | |
| return Result; | |
| } | |
| template <typename Param> | |
| typename detail::is_event_profiling_info_desc_t<Param> | |
| event::get_profiling_info() const { | |
| throw sycl::exception(make_error_code(errc::feature_not_supported), | |
| "Profiling features are not supported."); | |
| } | |
| #define _LIBSYCL_EXPORT_GET_PROFILING_INFO(Desc) \ | |
| template _LIBSYCL_EXPORT \ | |
| detail::is_event_profiling_info_desc_t<info::event_profiling::Desc> \ | |
| event::get_profiling_info<info::event_profiling::Desc>() const; | |
| _LIBSYCL_EXPORT_GET_PROFILING_INFO(command_submit) | |
| _LIBSYCL_EXPORT_GET_PROFILING_INFO(command_start) | |
| _LIBSYCL_EXPORT_GET_PROFILING_INFO(command_end) | |
| #undef _LIBSYCL_EXPORT_GET_PROFILING_INFO | |
| _LIBSYCL_END_NAMESPACE_SYCL |