Skip to content

Commit 1d0d860

Browse files
committed
Change to one property and deprecate entire class not constructors
Signed-off-by: James Brodman <[email protected]>
1 parent 4582336 commit 1d0d860

File tree

6 files changed

+29
-140
lines changed

6 files changed

+29
-140
lines changed

sycl/include/CL/sycl/detail/queue_impl.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ class queue_impl {
150150
RT::PiQueue createQueue(QueueOrder Order) {
151151
RT::PiQueueProperties CreationFlags = 0;
152152

153+
m_QueueOrder = Order;
153154
if (Order == QueueOrder::OOO) {
154155
CreationFlags = PI_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE;
155156
}
@@ -234,6 +235,8 @@ class queue_impl {
234235
m_Exceptions.PushBack(E);
235236
}
236237

238+
/// Returns whether the queue is in-order or OoO
239+
bool is_in_order() { return m_QueueOrder == Ordered; }
237240
private:
238241
template <typename T>
239242
event submit_impl(T cgf, std::shared_ptr<queue_impl> self) {
@@ -268,6 +271,7 @@ class queue_impl {
268271
const bool m_OpenCLInterop = false;
269272
// Assume OOO support by default.
270273
bool m_SupportOOO = true;
274+
QueueOrder m_QueueOrder = OOO;
271275
};
272276

273277
} // namespace detail

sycl/include/CL/sycl/ordered_queue.hpp

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,64 +18,63 @@
1818
#include <memory>
1919
#include <utility>
2020

21+
#ifdef __has_cpp_attribute
22+
#if __has_cpp_attribute(deprecated)
23+
#define __SYCL_DEPRECATED__ [[deprecated("Replaced by in_order queue property")]]
24+
#endif
25+
#endif
26+
#ifndef __SYCL_DEPRECATED__
27+
#define __SYCL_DEPRECATED__
28+
#endif
29+
2130
__SYCL_INLINE namespace cl {
2231
namespace sycl {
2332

2433
// Forward declaration
2534
class context;
2635
class device;
27-
class ordered_queue {
36+
37+
class __SYCL_DEPRECATED__ ordered_queue {
2838
public:
29-
[[deprecated("Replaced by the in_order property in queue")]]
3039
explicit ordered_queue(const property_list &propList = {})
3140
: ordered_queue(default_selector(), async_handler{}, propList) {}
3241

33-
[[deprecated("Replaced by the in_order property in queue")]]
3442
ordered_queue(const async_handler &asyncHandler,
3543
const property_list &propList = {})
3644
: ordered_queue(default_selector(), asyncHandler, propList) {}
3745

38-
[[deprecated("Replaced by the in_order property in queue")]]
3946
ordered_queue(const device_selector &deviceSelector,
4047
const property_list &propList = {})
4148
: ordered_queue(deviceSelector.select_device(), async_handler{},
4249
propList) {}
43-
[[deprecated("Replaced by the in_order property in queue")]]
4450
ordered_queue(const device_selector &deviceSelector,
4551
const async_handler &asyncHandler,
4652
const property_list &propList = {})
4753
: ordered_queue(deviceSelector.select_device(), asyncHandler, propList) {}
4854

49-
[[deprecated("Replaced by the in_order property in queue")]]
5055
ordered_queue(const device &syclDevice, const property_list &propList = {})
5156
: ordered_queue(syclDevice, async_handler{}, propList) {}
5257

53-
[[deprecated("Replaced by the in_order property in queue")]]
5458
ordered_queue(const device &syclDevice, const async_handler &asyncHandler,
5559
const property_list &propList = {});
5660

57-
[[deprecated("Replaced by the in_order property in queue")]]
5861
ordered_queue(const context &syclContext,
5962
const device_selector &deviceSelector,
6063
const property_list &propList = {})
6164
: ordered_queue(syclContext, deviceSelector,
6265
detail::getSyclObjImpl(syclContext)->get_async_handler(),
6366
propList) {}
6467

65-
[[deprecated("Replaced by the in_order property in queue")]]
6668
ordered_queue(const context &syclContext,
6769
const device_selector &deviceSelector,
6870
const async_handler &asyncHandler,
6971
const property_list &propList = {});
7072

71-
[[deprecated("Replaced by the in_order property in queue")]]
7273
ordered_queue(cl_command_queue cl_Queue, const context &syclContext,
7374
const async_handler &asyncHandler = {});
7475

75-
[[deprecated("Replaced by the in_order property in queue")]]
7676
ordered_queue(const ordered_queue &rhs) = default;
7777

78-
[[deprecated("Replaced by the in_order property in queue")]]
7978
ordered_queue(ordered_queue &&rhs) = default;
8079

8180
ordered_queue &operator=(const ordered_queue &rhs) = default;
@@ -181,6 +180,8 @@ class ordered_queue {
181180
friend decltype(Obj::impl) detail::getSyclObjImpl(const Obj &SyclObject);
182181
};
183182

183+
#undef __SYCL_DEPRECATED__
184+
184185
} // namespace sycl
185186
} // namespace cl
186187

sycl/include/CL/sycl/property_list.hpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ enum PropKind {
6060
// Queue properties
6161
QueueEnableProfiling,
6262
InOrder,
63-
OutOfOrder,
6463

6564
PropKindSize
6665
};
@@ -115,7 +114,6 @@ RegisterProp(PropKind::BufferContextBound, buffer::context_bound);
115114
// Queue
116115
RegisterProp(PropKind::QueueEnableProfiling, queue::enable_profiling);
117116
RegisterProp(PropKind::InOrder, queue::in_order);
118-
RegisterProp(PropKind::OutOfOrder, queue::out_of_order);
119117

120118
// Sentinel, needed for automatic build of tuple in property_list.
121119
RegisterProp(PropKind::PropKindSize, PropBase);
@@ -180,8 +178,6 @@ class enable_profiling
180178
: public detail::Prop<detail::PropKind::QueueEnableProfiling> {};
181179

182180
class in_order : public detail::Prop<detail::PropKind::InOrder> {};
183-
184-
class out_of_order : public detail::Prop<detail::PropKind::OutOfOrder> {};
185181
} // namespace queue
186182

187183
} // namespace property

sycl/include/CL/sycl/queue.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,10 @@ class queue {
308308
});
309309
}
310310

311+
/// Returns whether the queue is in order or OoO
312+
///
313+
/// Equivalent to has_property<property::queue::in_order>()
314+
bool is_in_order() { return impl->is_in_order(); }
311315
private:
312316
std::shared_ptr<detail::queue_impl> impl;
313317
template <class Obj>

sycl/test/ordered_queue/ordered_prop_dmemll.cpp

Lines changed: 0 additions & 116 deletions
This file was deleted.

sycl/test/ordered_queue/prop.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,22 @@ bool getQueueOrder(cl_command_queue cq) {
2323
cl_int iRet = clGetCommandQueueInfo(
2424
cq, CL_QUEUE_PROPERTIES, sizeof(reportedProps), &reportedProps, nullptr);
2525
assert(CL_SUCCESS == iRet && "Failed to obtain queue info from ocl device");
26-
return (reportedProps & CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE) ? true
27-
: false;
26+
return (reportedProps & CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE) ? false
27+
: true;
2828
}
2929

3030
int main() {
31-
queue q{property::queue::out_of_order()};
31+
queue q{property::queue::in_order()};
3232
auto dev = q.get_device();
3333

3434
cl_command_queue cq = q.get();
3535
bool expected_result = dev.is_host() ? true : getQueueOrder(cq);
36-
if (!expected_result) {
37-
std::cout << "Resulting queue order is in order but expected order is OOO"
38-
<< std::endl;
39-
36+
if (!expected_result)
4037
return -1;
41-
}
38+
39+
expected_result = dev.is_host() ? true : q.is_in_order();
40+
if (!expected_result)
41+
return -2;
4242

4343
return 0;
4444
}

0 commit comments

Comments
 (0)