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
17 changes: 6 additions & 11 deletions sycl/include/sycl/atomic.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,13 @@
#pragma once

#include <sycl/__spirv/spirv_ops.hpp>
#include <sycl/__spirv/spirv_types.hpp> // for Scope, MemorySemanticsMask
#include <sycl/access/access.hpp> // for address_space, decorated
#include <sycl/__spirv/spirv_types.hpp> // for Scope, MemorySemanticsMask
#include <sycl/aliases.hpp>
#include <sycl/bit_cast.hpp>
#include <sycl/detail/defines_elementary.hpp> // for __SYCL2020_DEPRECATED
#include <sycl/detail/helpers.hpp> // for getSPIRVMemorySemanticsMask
#include <sycl/memory_enums.hpp> // for memory_order, getStdMemoryO...
#include <sycl/multi_ptr.hpp> // for multi_ptr
#include <sycl/detail/fwd/multi_ptr.hpp>
#include <sycl/detail/helpers.hpp> // for getSPIRVMemorySemanticsMask
#include <sycl/memory_enums.hpp> // for memory_order, getStdMemoryO...

#include <type_traits> // for is_same

Expand All @@ -28,12 +29,6 @@

namespace sycl {
inline namespace _V1 {

// Forward declaration
template <typename pointerT, access::address_space addressSpace,
access::decorated isDecorated>
class multi_ptr;

namespace detail {

using memory_order = sycl::memory_order;
Expand Down
20 changes: 20 additions & 0 deletions sycl/include/sycl/detail/fwd/multi_ptr.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//===----------------------------------------------------------------------===//
//
// 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>

namespace sycl {
inline namespace _V1 {
// Forward declaration
template <typename ElementType, access::address_space Space,
access::decorated DecorateAddress>
class multi_ptr;
} // namespace _V1
} // namespace sycl
13 changes: 4 additions & 9 deletions sycl/include/sycl/detail/type_traits.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@

#include <sycl/detail/type_traits/vec_marray_traits.hpp>

#include <sycl/access/access.hpp> // for decorated, address_space
#include <sycl/detail/fwd/multi_ptr.hpp>

#include <array> // for array
#include <cstddef> // for size_t
#include <type_traits> // for true_type, false_type
#include <array>
#include <cstddef>
#include <type_traits>

namespace sycl {
inline namespace _V1 {
Expand Down Expand Up @@ -108,11 +108,6 @@ class half;
} // namespace detail
using half = detail::half_impl::half;

// Forward declaration
template <typename ElementType, access::address_space Space,
access::decorated DecorateAddress>
class multi_ptr;

template <class T>
struct is_group : std::bool_constant<detail::is_group<T>::value ||
detail::is_sub_group<T>::value> {};
Expand Down
13 changes: 3 additions & 10 deletions sycl/include/sycl/ext/intel/usm_pointers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,11 @@

#pragma once

#include <sycl/access/access.hpp> // for decorated, address_space
#include <sycl/detail/fwd/multi_ptr.hpp>

namespace sycl {
inline namespace _V1 {

template <typename ElementType, access::address_space Space,
access::decorated DecorateAddress>
class multi_ptr;

namespace ext {
namespace intel {
namespace ext::intel {

template <typename ElementType,
access::decorated IsDecorated = access::decorated::legacy>
Expand Down Expand Up @@ -59,7 +53,6 @@ using decorated_host_ptr =
multi_ptr<ElementType, access::address_space::ext_intel_global_host_space,
access::decorated::yes>;

} // namespace intel
} // namespace ext
} // namespace ext::intel
} // namespace _V1
} // namespace sycl
5 changes: 3 additions & 2 deletions sycl/include/sycl/multi_ptr.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
#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/type_traits.hpp> // for const_if_const_AS
#include <sycl/half_type.hpp> // for BIsRepresentationT
#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

#include <cstddef> // for nullptr_t, ptrdiff_t, size_t
#include <iterator> // for random_access_iterator_tag
Expand Down
6 changes: 1 addition & 5 deletions sycl/include/sycl/pointers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,10 @@

#pragma once

#include <sycl/access/access.hpp> // for decorated, address_space
#include <sycl/detail/fwd/multi_ptr.hpp>

namespace sycl {
inline namespace _V1 {

template <typename ElementType, access::address_space Space,
access::decorated DecorateAddress>
class multi_ptr;
// Template specialization aliases for different pointer address spaces

template <typename ElementType,
Expand Down
10 changes: 2 additions & 8 deletions sycl/include/sycl/sub_group.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,14 @@
#pragma once

#include <sycl/__spirv/spirv_ops.hpp>
#include <sycl/access/access.hpp> // for address_space, decorated
#include <sycl/detail/address_space_cast.hpp>
#include <sycl/detail/defines_elementary.hpp> // for __SYCL_DEPRECATED
#include <sycl/detail/defines_elementary.hpp> // for __SYCL_DEPRECATED
#include <sycl/detail/fwd/multi_ptr.hpp>
#include <sycl/detail/generic_type_traits.hpp> // for select_cl_scalar_inte...
#include <sycl/detail/type_traits.hpp> // for is_scalar_arithmetic
#include <sycl/exception.hpp> // for exception, make_error...
#include <sycl/id.hpp> // for id
#include <sycl/memory_enums.hpp> // for memory_scope
#include <sycl/multi_ptr.hpp> // for multi_ptr
#include <sycl/nd_item.hpp>
#include <sycl/range.hpp> // for range

Expand All @@ -27,12 +26,7 @@

namespace sycl {
inline namespace _V1 {
template <typename T, access::address_space Space,
access::decorated DecorateAddress>
class multi_ptr;
template <typename Type, int NumElements> class __SYCL_EBO vec;
namespace detail {

namespace sub_group {

// Selects 8, 16, 32, or 64-bit type depending on size of scalar type T.
Expand Down
1 change: 1 addition & 0 deletions sycl/test/include_deps/sycl_accessor.hpp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
// CHECK-NEXT: aliases.hpp
// CHECK-NEXT: detail/type_traits.hpp
// CHECK-NEXT: detail/type_traits/vec_marray_traits.hpp
// CHECK-NEXT: detail/fwd/multi_ptr.hpp
// CHECK-NEXT: half_type.hpp
// CHECK-NEXT: bit_cast.hpp
// CHECK-NEXT: aspects.hpp
Expand Down
1 change: 1 addition & 0 deletions sycl/test/include_deps/sycl_detail_core.hpp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
// CHECK-NEXT: aliases.hpp
// CHECK-NEXT: detail/type_traits.hpp
// CHECK-NEXT: detail/type_traits/vec_marray_traits.hpp
// CHECK-NEXT: detail/fwd/multi_ptr.hpp
// CHECK-NEXT: half_type.hpp
// CHECK-NEXT: bit_cast.hpp
// CHECK-NEXT: aspects.hpp
Expand Down