Skip to content

Commit 84693b6

Browse files
authored
Revert "[NFC][SYCL] Switch to std::enable_if (#7628)" (#7779)
This reverts commit 74833b2. We found issues when trying to build the project on RHEL7 systems that we need in our OS support matrix.
1 parent 890aa07 commit 84693b6

Some content is hidden

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

57 files changed

+1185
-1133
lines changed

libdevice/cmake/modules/SYCLLibdevice.cmake

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,6 @@ set(compile_opts
3232
-sycl-std=2020
3333
)
3434

35-
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
36-
# If we use non-system GCC, need to pass its location when using
37-
# freshly built clang. The system one might be very old.
38-
get_filename_component(gcc_bin_dir ${CMAKE_CXX_COMPILER} DIRECTORY)
39-
get_filename_component(gcc_install_dir ${gcc_bin_dir} DIRECTORY)
40-
# /bin/g++ doesn't need any fixup. We also need to check that ccache is
41-
# not being used.
42-
if (NOT gcc_install_dir STREQUAL "/" AND NOT gcc_bin_dir MATCHES "ccache")
43-
list(APPEND compile_opts "--gcc-toolchain=${gcc_install_dir}")
44-
endif()
45-
endif()
46-
4735
if ("NVPTX" IN_LIST LLVM_TARGETS_TO_BUILD)
4836
string(APPEND sycl_targets_opt ",nvptx64-nvidia-cuda")
4937
list(APPEND compile_opts

sycl/include/CL/__spirv/spirv_ops.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -338,23 +338,23 @@ extern SYCL_EXTERNAL TempRetT __spirv_ImageSampleExplicitLod(SampledType,
338338
// of atomic min/max based on the type
339339
#define __SPIRV_ATOMIC_MINMAX(AS, Op) \
340340
template <typename T> \
341-
typename std::enable_if_t< \
341+
typename sycl::detail::enable_if_t< \
342342
std::is_integral<T>::value && std::is_signed<T>::value, T> \
343343
__spirv_Atomic##Op(AS T *Ptr, __spv::Scope::Flag Memory, \
344344
__spv::MemorySemanticsMask::Flag Semantics, \
345345
T Value) { \
346346
return __spirv_AtomicS##Op(Ptr, Memory, Semantics, Value); \
347347
} \
348348
template <typename T> \
349-
typename std::enable_if_t< \
349+
typename sycl::detail::enable_if_t< \
350350
std::is_integral<T>::value && !std::is_signed<T>::value, T> \
351351
__spirv_Atomic##Op(AS T *Ptr, __spv::Scope::Flag Memory, \
352352
__spv::MemorySemanticsMask::Flag Semantics, \
353353
T Value) { \
354354
return __spirv_AtomicU##Op(Ptr, Memory, Semantics, Value); \
355355
} \
356356
template <typename T> \
357-
typename std::enable_if_t<std::is_floating_point<T>::value, T> \
357+
typename sycl::detail::enable_if_t<std::is_floating_point<T>::value, T> \
358358
__spirv_Atomic##Op(AS T *Ptr, __spv::Scope::Flag Memory, \
359359
__spv::MemorySemanticsMask::Flag Semantics, \
360360
T Value) { \

sycl/include/sycl/accessor.hpp

Lines changed: 106 additions & 103 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 std::enable_if_t<
213+
typename = typename detail::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 std::enable_if_t<
222+
typename = typename detail::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-
std::enable_if_t<!std::is_same<cl_float, T2>::value, T>
238+
detail::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-
std::enable_if_t<std::is_same<cl_float, T2>::value, T>
244+
detail::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: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ inline constexpr memory_order getLoadOrder(memory_order order) {
8989
template <typename T, typename = void> struct bit_equal;
9090

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

@@ -266,7 +266,7 @@ class atomic_ref_impl
266266
template <typename T, memory_order DefaultOrder, memory_scope DefaultScope,
267267
access::address_space AddressSpace>
268268
class atomic_ref_impl<T, DefaultOrder, DefaultScope, AddressSpace,
269-
typename std::enable_if_t<std::is_integral<T>::value>>
269+
typename detail::enable_if_t<std::is_integral<T>::value>>
270270
: public atomic_ref_base<T, DefaultOrder, DefaultScope, AddressSpace> {
271271

272272
public:
@@ -414,7 +414,7 @@ template <typename T, memory_order DefaultOrder, memory_scope DefaultScope,
414414
access::address_space AddressSpace>
415415
class atomic_ref_impl<
416416
T, DefaultOrder, DefaultScope, AddressSpace,
417-
typename std::enable_if_t<std::is_floating_point<T>::value>>
417+
typename detail::enable_if_t<std::is_floating_point<T>::value>>
418418
: public atomic_ref_base<T, DefaultOrder, DefaultScope, AddressSpace> {
419419

420420
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 std::enable_if_t<
36+
template <typename T, typename detail::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,
45-
typename std::enable_if_t<std::is_same<T, device>::value> * = nullptr>
44+
template <typename T, typename detail::enable_if_t<
45+
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 std::enable_if_t<std::is_same<T, context>::value>
53-
* = nullptr>
52+
template <typename T, typename detail::enable_if_t<
53+
std::is_same<T, context>::value> * = 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,
61-
typename std::enable_if_t<std::is_same<T, queue>::value> * = nullptr>
60+
template <typename T, typename detail::enable_if_t<
61+
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: 7 additions & 7 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 =
144-
typename std::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
143+
typename __Enabled = typename detail::enable_if_t<(dimensions > 0) &&
144+
(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 std::enable_if_t<1 == dims>;
158+
using EnableIfOneDimension = typename detail::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<std::enable_if_t<std::is_convertible<
162+
detail::void_t<detail::enable_if_t<std::is_convertible<
163163
detail::remove_pointer_t<
164164
decltype(std::declval<Container>().data())> (*)[],
165165
const T (*)[]>::value>,
166166
decltype(std::declval<Container>().size())>;
167167
template <class It>
168-
using EnableIfItInputIterator = std::enable_if_t<
168+
using EnableIfItInputIterator = detail::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 std::enable_if_t<
172+
using EnableIfSameNonConstIterators = typename detail::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]}; }
@@ -575,7 +575,7 @@ class buffer : public detail::buffer_plain,
575575
}
576576

577577
template <template <typename WeakT> class WeakPtrT, typename WeakT>
578-
std::enable_if_t<
578+
detail::enable_if_t<
579579
std::is_convertible<WeakPtrT<WeakT>, std::weak_ptr<WeakT>>::value>
580580
set_final_data_internal(WeakPtrT<WeakT> FinalData) {
581581
std::weak_ptr<WeakT> TempFinalData(FinalData);

0 commit comments

Comments
 (0)