Skip to content

Commit 1bcc9f0

Browse files
[NFC][SYCL] Switch to std:: equivalents for utilities in stl_type_traits.hpp (#9162)
Re-commits #7628 and #7668 that were previously reverted due to build issues on RHEL systems. The issues were fixed by introducing `SYCL_LIBDEVICE_GCC_TOOLCHAIN` cmake configuration option in #7771.
1 parent 48ea0a1 commit 1bcc9f0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+1466
-1553
lines changed

sycl/include/CL/__spirv/spirv_ops.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -358,23 +358,23 @@ __spirv_ImageSampleExplicitLod(SampledType, TempArgT, int, float);
358358
// of atomic min/max based on the type
359359
#define __SPIRV_ATOMIC_MINMAX(AS, Op) \
360360
template <typename T> \
361-
typename sycl::detail::enable_if_t< \
361+
typename std::enable_if_t< \
362362
std::is_integral<T>::value && std::is_signed<T>::value, T> \
363363
__spirv_Atomic##Op(AS T *Ptr, __spv::Scope::Flag Memory, \
364364
__spv::MemorySemanticsMask::Flag Semantics, \
365365
T Value) { \
366366
return __spirv_AtomicS##Op(Ptr, Memory, Semantics, Value); \
367367
} \
368368
template <typename T> \
369-
typename sycl::detail::enable_if_t< \
369+
typename std::enable_if_t< \
370370
std::is_integral<T>::value && !std::is_signed<T>::value, T> \
371371
__spirv_Atomic##Op(AS T *Ptr, __spv::Scope::Flag Memory, \
372372
__spv::MemorySemanticsMask::Flag Semantics, \
373373
T Value) { \
374374
return __spirv_AtomicU##Op(Ptr, Memory, Semantics, Value); \
375375
} \
376376
template <typename T> \
377-
typename sycl::detail::enable_if_t<std::is_floating_point<T>::value, T> \
377+
typename std::enable_if_t<std::is_floating_point<T>::value, T> \
378378
__spirv_Atomic##Op(AS T *Ptr, __spv::Scope::Flag Memory, \
379379
__spv::MemorySemanticsMask::Flag Semantics, \
380380
T Value) { \

sycl/include/sycl/accessor.hpp

Lines changed: 123 additions & 127 deletions
Large diffs are not rendered by default.

sycl/include/sycl/atomic.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ class __SYCL2020_DEPRECATED(
210210
#ifdef __ENABLE_USM_ADDR_SPACE__
211211
// Create atomic in global_space with one from ext_intel_global_device_space
212212
template <access::address_space _Space = addressSpace,
213-
typename = typename detail::enable_if_t<
213+
typename = typename std::enable_if_t<
214214
_Space == addressSpace &&
215215
addressSpace == access::address_space::global_space>>
216216
atomic(const atomic<T, access::address_space::ext_intel_global_device_space>
@@ -219,7 +219,7 @@ class __SYCL2020_DEPRECATED(
219219
}
220220

221221
template <access::address_space _Space = addressSpace,
222-
typename = typename detail::enable_if_t<
222+
typename = typename std::enable_if_t<
223223
_Space == addressSpace &&
224224
addressSpace == access::address_space::global_space>>
225225
atomic(
@@ -235,13 +235,13 @@ class __SYCL2020_DEPRECATED(
235235

236236
#ifdef __SYCL_DEVICE_ONLY__
237237
template <typename T2 = T>
238-
detail::enable_if_t<!std::is_same<cl_float, T2>::value, T>
238+
std::enable_if_t<!std::is_same<cl_float, T2>::value, T>
239239
load(memory_order Order = memory_order::relaxed) const {
240240
return __spirv_AtomicLoad(Ptr, SpirvScope,
241241
detail::getSPIRVMemorySemanticsMask(Order));
242242
}
243243
template <typename T2 = T>
244-
detail::enable_if_t<std::is_same<cl_float, T2>::value, T>
244+
std::enable_if_t<std::is_same<cl_float, T2>::value, T>
245245
load(memory_order Order = memory_order::relaxed) const {
246246
auto *TmpPtr = reinterpret_cast<typename multi_ptr<
247247
cl_int, addressSpace, access::decorated::yes>::pointer>(Ptr);

sycl/include/sycl/atomic_ref.hpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ template <sycl::access::address_space AS> struct IsValidAtomicRefAddressSpace {
5050

5151
// DefaultOrder parameter is limited to read-modify-write orders
5252
template <memory_order Order>
53-
using IsValidDefaultOrder = bool_constant<Order == memory_order::relaxed ||
54-
Order == memory_order::acq_rel ||
55-
Order == memory_order::seq_cst>;
53+
using IsValidDefaultOrder = std::bool_constant<Order == memory_order::relaxed ||
54+
Order == memory_order::acq_rel ||
55+
Order == memory_order::seq_cst>;
5656

5757
template <memory_order ReadModifyWriteOrder> struct memory_order_traits;
5858

@@ -90,7 +90,7 @@ inline constexpr memory_order getLoadOrder(memory_order order) {
9090
template <typename T, typename = void> struct bit_equal;
9191

9292
template <typename T>
93-
struct bit_equal<T, typename detail::enable_if_t<std::is_integral<T>::value>> {
93+
struct bit_equal<T, typename std::enable_if_t<std::is_integral<T>::value>> {
9494
bool operator()(const T &lhs, const T &rhs) { return lhs == rhs; }
9595
};
9696

@@ -275,7 +275,7 @@ template <typename T, bool IsAspectAtomic64AttrUsed, memory_order DefaultOrder,
275275
memory_scope DefaultScope, access::address_space AddressSpace>
276276
class atomic_ref_impl<T, IsAspectAtomic64AttrUsed, DefaultOrder, DefaultScope,
277277
AddressSpace,
278-
typename detail::enable_if_t<std::is_integral<T>::value>>
278+
typename std::enable_if_t<std::is_integral<T>::value>>
279279
: public atomic_ref_base<T, DefaultOrder, DefaultScope, AddressSpace> {
280280

281281
public:
@@ -423,7 +423,7 @@ template <typename T, bool IsAspectAtomic64AttrUsed, memory_order DefaultOrder,
423423
memory_scope DefaultScope, access::address_space AddressSpace>
424424
class atomic_ref_impl<
425425
T, IsAspectAtomic64AttrUsed, DefaultOrder, DefaultScope, AddressSpace,
426-
typename detail::enable_if_t<std::is_floating_point<T>::value>>
426+
typename std::enable_if_t<std::is_floating_point<T>::value>>
427427
: public atomic_ref_base<T, DefaultOrder, DefaultScope, AddressSpace> {
428428

429429
public:
@@ -536,7 +536,7 @@ class atomic_ref_impl<
536536
class [[__sycl_detail__::__uses_aspects__(aspect::atomic64)]] atomic_ref_impl<
537537
#endif
538538
T, /*IsAspectAtomic64AttrUsed = */ true, DefaultOrder, DefaultScope,
539-
AddressSpace, typename detail::enable_if_t<std::is_integral<T>::value>>
539+
AddressSpace, typename std::enable_if_t<std::is_integral<T>::value>>
540540
: public atomic_ref_impl<T, /*IsAspectAtomic64AttrUsed = */ false,
541541
DefaultOrder, DefaultScope, AddressSpace> {
542542
public:
@@ -556,8 +556,7 @@ class atomic_ref_impl<
556556
class [[__sycl_detail__::__uses_aspects__(aspect::atomic64)]] atomic_ref_impl<
557557
#endif
558558
T, /*IsAspectAtomic64AttrUsed = */ true, DefaultOrder, DefaultScope,
559-
AddressSpace,
560-
typename detail::enable_if_t<std::is_floating_point<T>::value>>
559+
AddressSpace, typename std::enable_if_t<std::is_floating_point<T>::value>>
561560
: public atomic_ref_impl<T, /*IsAspectAtomic64AttrUsed = */ false,
562561
DefaultOrder, DefaultScope, AddressSpace> {
563562
public:

sycl/include/sycl/backend/opencl.hpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,32 +33,32 @@ __SYCL_EXPORT bool has_extension(const sycl::device &SyclDevice,
3333
const std::string &Extension);
3434

3535
// Construction of SYCL platform.
36-
template <typename T, typename detail::enable_if_t<
36+
template <typename T, typename std::enable_if_t<
3737
std::is_same<T, platform>::value> * = nullptr>
3838
__SYCL_DEPRECATED("Use SYCL 2020 sycl::make_platform free function")
3939
T make(typename detail::interop<backend::opencl, T>::type Interop) {
4040
return make_platform(detail::pi::cast<pi_native_handle>(Interop));
4141
}
4242

4343
// Construction of SYCL device.
44-
template <typename T, typename detail::enable_if_t<
45-
std::is_same<T, device>::value> * = nullptr>
44+
template <typename T,
45+
typename std::enable_if_t<std::is_same<T, device>::value> * = nullptr>
4646
__SYCL_DEPRECATED("Use SYCL 2020 sycl::make_device free function")
4747
T make(typename detail::interop<backend::opencl, T>::type Interop) {
4848
return make_device(detail::pi::cast<pi_native_handle>(Interop));
4949
}
5050

5151
// Construction of SYCL context.
52-
template <typename T, typename detail::enable_if_t<
53-
std::is_same<T, context>::value> * = nullptr>
52+
template <typename T, typename std::enable_if_t<std::is_same<T, context>::value>
53+
* = nullptr>
5454
__SYCL_DEPRECATED("Use SYCL 2020 sycl::make_context free function")
5555
T make(typename detail::interop<backend::opencl, T>::type Interop) {
5656
return make_context(detail::pi::cast<pi_native_handle>(Interop));
5757
}
5858

5959
// Construction of SYCL queue.
60-
template <typename T, typename detail::enable_if_t<
61-
std::is_same<T, queue>::value> * = nullptr>
60+
template <typename T,
61+
typename std::enable_if_t<std::is_same<T, queue>::value> * = nullptr>
6262
__SYCL_DEPRECATED("Use SYCL 2020 sycl::make_queue free function")
6363
T make(const context &Context,
6464
typename detail::interop<backend::opencl, T>::type Interop) {

sycl/include/sycl/buffer.hpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ class __SYCL_EXPORT buffer_plain {
140140
/// \ingroup sycl_api
141141
template <typename T, int dimensions = 1,
142142
typename AllocatorT = buffer_allocator<std::remove_const_t<T>>,
143-
typename __Enabled = typename detail::enable_if_t<(dimensions > 0) &&
144-
(dimensions <= 3)>>
143+
typename __Enabled =
144+
typename std::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
145145
class buffer : public detail::buffer_plain,
146146
public detail::OwnerLessBase<buffer<T, dimensions, AllocatorT>> {
147147
// TODO check is_device_copyable<T>::value after converting sycl::vec into a
@@ -155,21 +155,21 @@ class buffer : public detail::buffer_plain,
155155
using const_reference = const value_type &;
156156
using allocator_type = AllocatorT;
157157
template <int dims>
158-
using EnableIfOneDimension = typename detail::enable_if_t<1 == dims>;
158+
using EnableIfOneDimension = typename std::enable_if_t<1 == dims>;
159159
// using same requirement for contiguous container as std::span
160160
template <class Container>
161161
using EnableIfContiguous =
162-
detail::void_t<detail::enable_if_t<std::is_convertible<
163-
detail::remove_pointer_t<
164-
decltype(std::declval<Container>().data())> (*)[],
165-
const T (*)[]>::value>,
166-
decltype(std::declval<Container>().size())>;
162+
std::void_t<std::enable_if_t<std::is_convertible<
163+
detail::remove_pointer_t<
164+
decltype(std::declval<Container>().data())> (*)[],
165+
const T (*)[]>::value>,
166+
decltype(std::declval<Container>().size())>;
167167
template <class It>
168-
using EnableIfItInputIterator = detail::enable_if_t<
168+
using EnableIfItInputIterator = std::enable_if_t<
169169
std::is_convertible<typename std::iterator_traits<It>::iterator_category,
170170
std::input_iterator_tag>::value>;
171171
template <typename ItA, typename ItB>
172-
using EnableIfSameNonConstIterators = typename detail::enable_if_t<
172+
using EnableIfSameNonConstIterators = typename std::enable_if_t<
173173
std::is_same<ItA, ItB>::value && !std::is_const<ItA>::value, ItA>;
174174

175175
std::array<size_t, 3> rangeToArray(range<3> &r) { return {r[0], r[1], r[2]}; }
@@ -344,9 +344,9 @@ class buffer : public detail::buffer_plain,
344344
using IteratorValueType =
345345
detail::iterator_value_type_t<InputIterator>;
346346
using IteratorNonConstValueType =
347-
detail::remove_const_t<IteratorValueType>;
347+
std::remove_const_t<IteratorValueType>;
348348
using IteratorPointerToNonConstValueType =
349-
detail::add_pointer_t<IteratorNonConstValueType>;
349+
std::add_pointer_t<IteratorNonConstValueType>;
350350
std::copy(first, last,
351351
static_cast<IteratorPointerToNonConstValueType>(ToPtr));
352352
},
@@ -377,9 +377,9 @@ class buffer : public detail::buffer_plain,
377377
using IteratorValueType =
378378
detail::iterator_value_type_t<InputIterator>;
379379
using IteratorNonConstValueType =
380-
detail::remove_const_t<IteratorValueType>;
380+
std::remove_const_t<IteratorValueType>;
381381
using IteratorPointerToNonConstValueType =
382-
detail::add_pointer_t<IteratorNonConstValueType>;
382+
std::add_pointer_t<IteratorNonConstValueType>;
383383
std::copy(first, last,
384384
static_cast<IteratorPointerToNonConstValueType>(ToPtr));
385385
},
@@ -588,7 +588,7 @@ class buffer : public detail::buffer_plain,
588588
}
589589

590590
template <template <typename WeakT> class WeakPtrT, typename WeakT>
591-
detail::enable_if_t<
591+
std::enable_if_t<
592592
std::is_convertible<WeakPtrT<WeakT>, std::weak_ptr<WeakT>>::value>
593593
set_final_data_internal(WeakPtrT<WeakT> FinalData) {
594594
std::weak_ptr<WeakT> TempFinalData(FinalData);

0 commit comments

Comments
 (0)