Skip to content

Commit 77a6de1

Browse files
committed
Move implementation details away from handler to handler_impl
1 parent b2a97a2 commit 77a6de1

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

sycl/include/sycl/handler.hpp

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1871,16 +1871,7 @@ class __SYCL_EXPORT handler {
18711871
setArgHelper(ArgIndex, std::move(Arg));
18721872
}
18731873

1874-
template <typename DataT, typename PropertyListT =
1875-
ext::oneapi::experimental::empty_properties_t>
1876-
void set_arg(
1877-
int ArgIndex,
1878-
detail::work_group_memory_impl &Arg) {
1879-
MWorkGroupMemoryObjects.push_back(
1880-
std::make_shared<detail::work_group_memory_impl>(Arg));
1881-
addArg(detail::kernel_param_kind_t::kind_work_group_memory,
1882-
MWorkGroupMemoryObjects.back().get(), 0, ArgIndex);
1883-
}
1874+
void set_arg(int ArgIndex, detail::work_group_memory_impl &Arg);
18841875

18851876
// set_arg for graph dynamic_parameters
18861877
template <typename T>
@@ -3246,7 +3237,6 @@ class __SYCL_EXPORT handler {
32463237

32473238
std::vector<detail::LocalAccessorImplPtr> MLocalAccStorage;
32483239
std::vector<std::shared_ptr<detail::stream_impl>> MStreamStorage;
3249-
std::vector<std::shared_ptr<detail::work_group_memory_impl>> MWorkGroupMemoryObjects;
32503240
detail::string MKernelName;
32513241
/// Storage for a sycl::kernel object.
32523242
std::shared_ptr<detail::kernel_impl> MKernel;

sycl/source/detail/handler_impl.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <detail/kernel_bundle_impl.hpp>
1414
#include <memory>
1515
#include <sycl/ext/oneapi/experimental/graph.hpp>
16+
#include <sycl/ext/oneapi/experimental/work_group_memory.hpp>
1617

1718
namespace sycl {
1819
inline namespace _V1 {
@@ -197,6 +198,9 @@ class handler_impl {
197198

198199
/// True if MCodeLoc is sycl entry point code location
199200
bool MIsTopCodeLoc = true;
201+
202+
/// List of work group memory objects associated with this handler
203+
std::vector<std::shared_ptr<detail::work_group_memory_impl>> MWorkGroupMemoryObjects;
200204
};
201205

202206
} // namespace detail

sycl/source/handler.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
#include <sycl/stream.hpp>
3535

3636
#include <sycl/ext/oneapi/bindless_images_memory.hpp>
37-
#include <sycl/ext/oneapi/experimental/work_group_memory.hpp>
3837
#include <sycl/ext/oneapi/memcpy2d.hpp>
3938

4039
namespace sycl {
@@ -819,6 +818,13 @@ void handler::processArg(void *Ptr, const detail::kernel_param_kind_t &Kind,
819818
}
820819
}
821820

821+
void handler::set_arg(int ArgIndex, detail::work_group_memory_impl &Arg) {
822+
impl->MWorkGroupMemoryObjects.push_back(
823+
std::make_shared<detail::work_group_memory_impl>(Arg));
824+
addArg(detail::kernel_param_kind_t::kind_work_group_memory,
825+
impl->MWorkGroupMemoryObjects.back().get(), 0, ArgIndex);
826+
}
827+
822828
// The argument can take up more space to store additional information about
823829
// MAccessRange, MMemoryRange, and MOffset added with addArgsForGlobalAccessor.
824830
// We use the worst-case estimate because the lifetime of the vector is short.

0 commit comments

Comments
 (0)