Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 5 additions & 10 deletions sycl/include/sycl/accessor.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -221,13 +221,6 @@ namespace ext::intel::esimd::detail {
class AccessorPrivateProxy;
} // namespace ext::intel::esimd::detail

template <typename DataT, int Dimensions = 1,
access::mode AccessMode = access::mode::read_write,
access::target AccessTarget = access::target::device,
access::placeholder IsPlaceholder = access::placeholder::false_t,
typename PropertyListT = ext::oneapi::accessor_property_list<>>
class accessor;

namespace ext::oneapi::experimental {
template <typename, int> class dynamic_local_accessor;
}
Expand Down Expand Up @@ -616,9 +609,11 @@ class __SYCL_EXPORT LocalAccessorBaseHost {
/// \sa buffer
///
/// \ingroup sycl_api_acc
template <typename DataT, int Dimensions, access::mode AccessMode,
access::target AccessTarget, access::placeholder IsPlaceholder,
typename PropertyListT>
template <typename DataT, int Dimensions = 1,
access::mode AccessMode = access::mode::read_write,
access::target AccessTarget = access::target::device,
access::placeholder IsPlaceholder = access::placeholder::false_t,
typename PropertyListT = ext::oneapi::accessor_property_list<>>
class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
#ifndef __SYCL_DEVICE_ONLY__
public detail::AccessorBaseHost,
Expand Down
4 changes: 1 addition & 3 deletions sycl/include/sycl/buffer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include <sycl/detail/common.hpp>
#include <sycl/detail/defines_elementary.hpp>
#include <sycl/detail/export.hpp>
#include <sycl/detail/fwd/accessor.hpp>
#include <sycl/detail/helpers.hpp>
#include <sycl/detail/iostream_proxy.hpp>
#include <sycl/detail/is_device_copyable.hpp>
Expand Down Expand Up @@ -51,9 +52,6 @@ template <int dimensions> class range;
template <typename DataT>
using buffer_allocator = detail::sycl_memory_object_allocator<DataT>;

template <typename DataT, int Dimensions, access::mode AccessMode>
class host_accessor;

template <typename T, int Dimensions, typename AllocatorT, typename Enable>
class buffer;

Expand Down
10 changes: 2 additions & 8 deletions sycl/include/sycl/detail/accessor_iterator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@

#include <sycl/access/access.hpp> // for mode, placeholder, target
#include <sycl/buffer.hpp> // for range
#include <sycl/id.hpp> // for id
#include <sycl/detail/fwd/accessor.hpp>
#include <sycl/id.hpp>

#include <cstddef> // for size_t
#include <iterator> // for random_access_iterator_tag
Expand All @@ -37,14 +38,7 @@

namespace sycl {
inline namespace _V1 {

template <typename AccessorDataT, int AccessorDimensions,
access::mode AccessMode, access::target AccessTarget,
access::placeholder IsPlaceholder, typename PropertyListT>
class accessor;

namespace detail {

template <typename DataT, int Dimensions> class accessor_iterator {
public:
using difference_type = std::ptrdiff_t;
Expand Down
42 changes: 42 additions & 0 deletions sycl/include/sycl/detail/fwd/accessor.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
//===----------------------------------------------------------------------===//
//
// 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
//
//===----------------------------------------------------------------------===//

#pragma once

#include <sycl/access/access.hpp>
#include <sycl/detail/defines.hpp>

namespace sycl {
inline namespace _V1 {

template <typename DataT, int Dimensions, access::mode AccessMode,
access::target AccessTarget, access::placeholder IsPlaceholder,
typename PropertyListT>
class accessor;
template <typename DataT, int Dimensions, access::mode AccessMode>
class host_accessor;
template <typename DataT, int Dimensions>
class __SYCL_EBO
__SYCL_SPECIAL_CLASS __SYCL_TYPE(local_accessor) local_accessor;

namespace detail {
template <typename DataT, int Dimensions, access::mode AccessMode,
access::target AccessTarget, access::placeholder IsPlaceholder>
class image_accessor;
}

template <typename DataT, int Dimensions, access_mode AccessMode,
image_target AccessTarget>
class unsampled_image_accessor;
template <typename DataT, int Dimensions, image_target AccessTarget>
class sampled_image_accessor;
template <typename DataT, int Dimensions, access_mode AccessMode>
class host_unsampled_image_accessor;
template <typename DataT, int Dimensions> class host_sampled_image_accessor;
} // namespace _V1
} // namespace sycl
12 changes: 4 additions & 8 deletions sycl/include/sycl/ext/oneapi/accessor_property_list.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@

#pragma once

#include <sycl/access/access.hpp> // for mode, placeholder, target
#include <sycl/detail/defines.hpp> // for __SYCL_TYPE
#include <sycl/access/access.hpp> // for mode, placeholder, target
#include <sycl/detail/defines.hpp> // for __SYCL_TYPE
#include <sycl/detail/fwd/accessor.hpp>
#include <sycl/detail/property_helper.hpp> // for DataLessPropKind, Prop...
#include <sycl/detail/property_list_base.hpp> // for PropertyListBase
#include <sycl/exception.hpp>
#include <sycl/property_list.hpp> // for property_list
#include <sycl/property_list.hpp> // for property_list

#include <bitset> // for bitset
#include <memory> // for shared_ptr
Expand All @@ -22,11 +23,6 @@

namespace sycl {
inline namespace _V1 {
// Forward declaration
template <typename DataT, int Dimensions, access::mode AccessMode,
access::target AccessTarget, access::placeholder IsPlaceholder,
typename PropertyListT>
class accessor;
namespace detail {
// This helper template must be specialized for nested instance template
// of each compile-time-constant property.
Expand Down
3 changes: 0 additions & 3 deletions sycl/include/sycl/handler.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -208,9 +208,6 @@ class queue_impl;
class stream_impl;
class event_impl;
class context_impl;
template <typename DataT, int Dimensions, access::mode AccessMode,
access::target AccessTarget, access::placeholder IsPlaceholder>
class image_accessor;
class HandlerAccess;
class HostTask;

Expand Down
17 changes: 0 additions & 17 deletions sycl/include/sycl/image.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -413,25 +413,8 @@ class unsampled_image_common : public image_common<Dimensions, AllocatorT> {
});
}
};

template <typename DataT, int Dims, access::mode AccMode,
access::target AccTarget, access::placeholder IsPlaceholder>
class image_accessor;

} // namespace detail

template <typename DataT, int Dimensions, access_mode AccessMode,
image_target AccessTarget>
class unsampled_image_accessor;

template <typename DataT, int Dimensions, access_mode AccessMode>
class host_unsampled_image_accessor;

template <typename DataT, int Dimensions, image_target AccessTarget>
class sampled_image_accessor;

template <typename DataT, int Dimensions> class host_sampled_image_accessor;

/// Defines a shared image data.
///
/// Images can be 1-, 2-, and 3-dimensional. They have to be accessed using the
Expand Down
8 changes: 1 addition & 7 deletions sycl/include/sycl/multi_ptr.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <sycl/aliases.hpp> // for half
#include <sycl/detail/address_space_cast.hpp>
#include <sycl/detail/defines_elementary.hpp> // for __SYCL2020_DEPRECATED
#include <sycl/detail/fwd/accessor.hpp>
#include <sycl/detail/fwd/multi_ptr.hpp>
#include <sycl/detail/type_traits.hpp> // for const_if_const_AS
#include <sycl/half_type.hpp> // for BIsRepresentationT
Expand Down Expand Up @@ -66,13 +67,6 @@ struct LegacyReferenceTypes<ElementType,
};
} // namespace detail

// Forward declarations
template <typename dataT, int dimensions, access::mode accessMode,
access::target accessTarget, access::placeholder isPlaceholder,
typename PropertyListT>
class accessor;
template <typename dataT, int dimensions> class local_accessor;

/// Provides constructors for address space qualified and non address space
/// qualified pointers to allow interoperability between plain C++ and OpenCL C.
///
Expand Down
23 changes: 1 addition & 22 deletions sycl/include/sycl/properties/accessor_properties.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <sycl/detail/common.hpp>
#include <sycl/detail/defines.hpp>
#include <sycl/detail/defines_elementary.hpp>
#include <sycl/detail/fwd/accessor.hpp>
#include <sycl/detail/property_helper.hpp>
#include <sycl/ext/oneapi/accessor_property_list.hpp>
#include <sycl/properties/property_traits.hpp>
Expand Down Expand Up @@ -91,28 +92,6 @@ struct is_compile_time_property<sycl::ext::intel::property::buffer_location>
: std::true_type {};
} // namespace ext::oneapi

// Forward declaration
template <typename DataT, int Dimensions, access::mode AccessMode,
access::target AccessTarget, access::placeholder IsPlaceholder,
typename PropertyListT>
class accessor;
template <typename DataT, int Dimensions, access::mode AccessMode>
class host_accessor;
template <typename DataT, int Dimensions>
class __SYCL_EBO
__SYCL_SPECIAL_CLASS __SYCL_TYPE(local_accessor) local_accessor;
template <typename DataT, int Dimensions, access::mode AccessMode,
access::target AccessTarget, access::placeholder IsPlaceholder>
class image_accessor;
template <typename DataT, int Dimensions, access_mode AccessMode,
image_target AccessTarget>
class unsampled_image_accessor;
template <typename DataT, int Dimensions, image_target AccessTarget>
class sampled_image_accessor;
template <typename DataT, int Dimensions, access_mode AccessMode>
class host_unsampled_image_accessor;
template <typename DataT, int Dimensions> class host_sampled_image_accessor;

namespace detail::acc_properties {
template <typename T> struct is_accessor : std::false_type {};
template <typename DataT, int Dimensions, access::mode AccessMode,
Expand Down
13 changes: 4 additions & 9 deletions sycl/include/sycl/sampler.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@

#pragma once

#include <sycl/access/access.hpp> // for mode, placeholder, target
#include <sycl/detail/defines.hpp> // for __SYCL_SPECIAL_CLASS, __SYCL_TYPE
#include <sycl/detail/export.hpp> // for __SYCL_EXPORT
#include <sycl/access/access.hpp> // for mode, placeholder, target
#include <sycl/detail/defines.hpp> // for __SYCL_SPECIAL_CLASS, __SYCL_TYPE
#include <sycl/detail/export.hpp> // for __SYCL_EXPORT
#include <sycl/detail/fwd/accessor.hpp>
#include <sycl/detail/impl_utils.hpp> // for getSyclObjImpl
#include <sycl/property_list.hpp> // for property_list

Expand Down Expand Up @@ -39,12 +40,6 @@ enum class coordinate_normalization_mode : unsigned int {
unnormalized = 0
};

namespace detail {
template <typename DataT, int Dimensions, access::mode AccessMode,
access::target AccessTarget, access::placeholder IsPlaceholder>
class image_accessor;
}

namespace detail {
#ifdef __SYCL_DEVICE_ONLY__
class __SYCL_EXPORT sampler_impl {
Expand Down
3 changes: 2 additions & 1 deletion sycl/test/include_deps/sycl_accessor.hpp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@
// CHECK-NEXT: stl_wrappers/cassert
// CHECK-NEXT: stl_wrappers/assert.h
// CHECK-NEXT: __spirv/spirv_vars.hpp
// CHECK-NEXT: detail/fwd/accessor.hpp
// CHECK-NEXT: detail/defines.hpp
// CHECK-NEXT: detail/helpers.hpp
// CHECK-NEXT: __spirv/spirv_types.hpp
// CHECK-NEXT: detail/defines.hpp
// CHECK-NEXT: memory_enums.hpp
// CHECK-NEXT: detail/iostream_proxy.hpp
// CHECK-NEXT: detail/is_device_copyable.hpp
Expand Down
3 changes: 2 additions & 1 deletion sycl/test/include_deps/sycl_buffer.hpp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@
// CHECK-NEXT: stl_wrappers/cassert
// CHECK-NEXT: stl_wrappers/assert.h
// CHECK-NEXT: __spirv/spirv_vars.hpp
// CHECK-NEXT: detail/fwd/accessor.hpp
// CHECK-NEXT: detail/defines.hpp
// CHECK-NEXT: detail/helpers.hpp
// CHECK-NEXT: __spirv/spirv_types.hpp
// CHECK-NEXT: detail/defines.hpp
// CHECK-NEXT: memory_enums.hpp
// CHECK-NEXT: detail/iostream_proxy.hpp
// CHECK-NEXT: detail/is_device_copyable.hpp
Expand Down
3 changes: 2 additions & 1 deletion sycl/test/include_deps/sycl_detail_core.hpp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@
// CHECK-NEXT: stl_wrappers/cassert
// CHECK-NEXT: stl_wrappers/assert.h
// CHECK-NEXT: __spirv/spirv_vars.hpp
// CHECK-NEXT: detail/fwd/accessor.hpp
// CHECK-NEXT: detail/defines.hpp
// CHECK-NEXT: detail/helpers.hpp
// CHECK-NEXT: __spirv/spirv_types.hpp
// CHECK-NEXT: detail/defines.hpp
// CHECK-NEXT: memory_enums.hpp
// CHECK-NEXT: detail/iostream_proxy.hpp
// CHECK-NEXT: detail/is_device_copyable.hpp
Expand Down