Skip to content

Commit 02c4600

Browse files
[NFC][SYCL] Add sycl/detail/fwd/multi_ptr.hpp helper (#20049)
1 parent 584e3d9 commit 02c4600

File tree

9 files changed

+41
-45
lines changed

9 files changed

+41
-45
lines changed

sycl/include/sycl/atomic.hpp

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@
99
#pragma once
1010

1111
#include <sycl/__spirv/spirv_ops.hpp>
12-
#include <sycl/__spirv/spirv_types.hpp> // for Scope, MemorySemanticsMask
13-
#include <sycl/access/access.hpp> // for address_space, decorated
12+
#include <sycl/__spirv/spirv_types.hpp> // for Scope, MemorySemanticsMask
13+
#include <sycl/aliases.hpp>
14+
#include <sycl/bit_cast.hpp>
1415
#include <sycl/detail/defines_elementary.hpp> // for __SYCL2020_DEPRECATED
15-
#include <sycl/detail/helpers.hpp> // for getSPIRVMemorySemanticsMask
16-
#include <sycl/memory_enums.hpp> // for memory_order, getStdMemoryO...
17-
#include <sycl/multi_ptr.hpp> // for multi_ptr
16+
#include <sycl/detail/fwd/multi_ptr.hpp>
17+
#include <sycl/detail/helpers.hpp> // for getSPIRVMemorySemanticsMask
18+
#include <sycl/memory_enums.hpp> // for memory_order, getStdMemoryO...
1819

1920
#include <type_traits> // for is_same
2021

@@ -28,12 +29,6 @@
2829

2930
namespace sycl {
3031
inline namespace _V1 {
31-
32-
// Forward declaration
33-
template <typename pointerT, access::address_space addressSpace,
34-
access::decorated isDecorated>
35-
class multi_ptr;
36-
3732
namespace detail {
3833

3934
using memory_order = sycl::memory_order;
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//===----------------------------------------------------------------------===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
9+
#pragma once
10+
11+
#include <sycl/access/access.hpp>
12+
13+
namespace sycl {
14+
inline namespace _V1 {
15+
// Forward declaration
16+
template <typename ElementType, access::address_space Space,
17+
access::decorated DecorateAddress>
18+
class multi_ptr;
19+
} // namespace _V1
20+
} // namespace sycl

sycl/include/sycl/detail/type_traits.hpp

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010

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

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

15-
#include <array> // for array
16-
#include <cstddef> // for size_t
17-
#include <type_traits> // for true_type, false_type
15+
#include <array>
16+
#include <cstddef>
17+
#include <type_traits>
1818

1919
namespace sycl {
2020
inline namespace _V1 {
@@ -108,11 +108,6 @@ class half;
108108
} // namespace detail
109109
using half = detail::half_impl::half;
110110

111-
// Forward declaration
112-
template <typename ElementType, access::address_space Space,
113-
access::decorated DecorateAddress>
114-
class multi_ptr;
115-
116111
template <class T>
117112
struct is_group : std::bool_constant<detail::is_group<T>::value ||
118113
detail::is_sub_group<T>::value> {};

sycl/include/sycl/ext/intel/usm_pointers.hpp

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,11 @@
88

99
#pragma once
1010

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

1313
namespace sycl {
1414
inline namespace _V1 {
15-
16-
template <typename ElementType, access::address_space Space,
17-
access::decorated DecorateAddress>
18-
class multi_ptr;
19-
20-
namespace ext {
21-
namespace intel {
15+
namespace ext::intel {
2216

2317
template <typename ElementType,
2418
access::decorated IsDecorated = access::decorated::legacy>
@@ -59,7 +53,6 @@ using decorated_host_ptr =
5953
multi_ptr<ElementType, access::address_space::ext_intel_global_host_space,
6054
access::decorated::yes>;
6155

62-
} // namespace intel
63-
} // namespace ext
56+
} // namespace ext::intel
6457
} // namespace _V1
6558
} // namespace sycl

sycl/include/sycl/multi_ptr.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@
1212
#include <sycl/aliases.hpp> // for half
1313
#include <sycl/detail/address_space_cast.hpp>
1414
#include <sycl/detail/defines_elementary.hpp> // for __SYCL2020_DEPRECATED
15-
#include <sycl/detail/type_traits.hpp> // for const_if_const_AS
16-
#include <sycl/half_type.hpp> // for BIsRepresentationT
15+
#include <sycl/detail/fwd/multi_ptr.hpp>
16+
#include <sycl/detail/type_traits.hpp> // for const_if_const_AS
17+
#include <sycl/half_type.hpp> // for BIsRepresentationT
1718

1819
#include <cstddef> // for nullptr_t, ptrdiff_t, size_t
1920
#include <iterator> // for random_access_iterator_tag

sycl/include/sycl/pointers.hpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,10 @@
88

99
#pragma once
1010

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

1313
namespace sycl {
1414
inline namespace _V1 {
15-
16-
template <typename ElementType, access::address_space Space,
17-
access::decorated DecorateAddress>
18-
class multi_ptr;
1915
// Template specialization aliases for different pointer address spaces
2016

2117
template <typename ElementType,

sycl/include/sycl/sub_group.hpp

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,14 @@
99
#pragma once
1010

1111
#include <sycl/__spirv/spirv_ops.hpp>
12-
#include <sycl/access/access.hpp> // for address_space, decorated
1312
#include <sycl/detail/address_space_cast.hpp>
14-
#include <sycl/detail/defines_elementary.hpp> // for __SYCL_DEPRECATED
13+
#include <sycl/detail/defines_elementary.hpp> // for __SYCL_DEPRECATED
14+
#include <sycl/detail/fwd/multi_ptr.hpp>
1515
#include <sycl/detail/generic_type_traits.hpp> // for select_cl_scalar_inte...
1616
#include <sycl/detail/type_traits.hpp> // for is_scalar_arithmetic
1717
#include <sycl/exception.hpp> // for exception, make_error...
1818
#include <sycl/id.hpp> // for id
1919
#include <sycl/memory_enums.hpp> // for memory_scope
20-
#include <sycl/multi_ptr.hpp> // for multi_ptr
2120
#include <sycl/nd_item.hpp>
2221
#include <sycl/range.hpp> // for range
2322

@@ -27,12 +26,7 @@
2726

2827
namespace sycl {
2928
inline namespace _V1 {
30-
template <typename T, access::address_space Space,
31-
access::decorated DecorateAddress>
32-
class multi_ptr;
33-
template <typename Type, int NumElements> class __SYCL_EBO vec;
3429
namespace detail {
35-
3630
namespace sub_group {
3731

3832
// Selects 8, 16, 32, or 64-bit type depending on size of scalar type T.

sycl/test/include_deps/sycl_accessor.hpp.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
// CHECK-NEXT: aliases.hpp
4545
// CHECK-NEXT: detail/type_traits.hpp
4646
// CHECK-NEXT: detail/type_traits/vec_marray_traits.hpp
47+
// CHECK-NEXT: detail/fwd/multi_ptr.hpp
4748
// CHECK-NEXT: half_type.hpp
4849
// CHECK-NEXT: bit_cast.hpp
4950
// CHECK-NEXT: aspects.hpp

sycl/test/include_deps/sycl_detail_core.hpp.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
// CHECK-NEXT: aliases.hpp
4646
// CHECK-NEXT: detail/type_traits.hpp
4747
// CHECK-NEXT: detail/type_traits/vec_marray_traits.hpp
48+
// CHECK-NEXT: detail/fwd/multi_ptr.hpp
4849
// CHECK-NEXT: half_type.hpp
4950
// CHECK-NEXT: bit_cast.hpp
5051
// CHECK-NEXT: aspects.hpp

0 commit comments

Comments
 (0)