@@ -176,16 +176,6 @@ template <int dim> struct item {
176176 int Data;
177177};
178178
179- template <int dimensions = 1 > class nd_item {
180- public:
181- void barrier (access::fence_space accessSpace =
182- access::fence_space::global_and_local) const {
183- #ifdef __SYCL_DEVICE_ONLY__
184- __spirv_ControlBarrier (0 , 0 , 0 );
185- #endif
186- }
187- };
188-
189179namespace ext {
190180namespace oneapi {
191181template <typename ... properties>
@@ -421,30 +411,23 @@ kernel_parallel_for(const KernelType &KernelFunc) {
421411 KernelFunc (id<Dims>());
422412}
423413
424- template <typename KernelName, typename KernelType, int Dims>
425- ATTR_SYCL_KERNEL void
426- kernel_parallel_for_item (const KernelType &KernelFunc) {
427- KernelFunc (nd_item<Dims>());
414+ // Dummy parallel_for_work_item function to mimic calls from
415+ // parallel_for_work_group.
416+ void parallel_for_work_item () {
417+ #ifdef __SYCL_DEVICE_ONLY__
418+ __spirv_ControlBarrier (0 , 0 , 0 );
419+ #endif
428420}
429421
430422template <typename KernelName, typename KernelType, int Dims>
431423ATTR_SYCL_KERNEL void
432424kernel_parallel_for_work_group (const KernelType &KernelFunc) {
433425 KernelFunc (group<Dims>());
426+ parallel_for_work_item ();
434427}
435428
436429class handler {
437430public:
438- template <typename KernelName = auto_name, typename KernelType, int Dims>
439- void parallel_for (nd_range<Dims> numWorkItems, const KernelType &kernelFunc) {
440- using NameT = typename get_kernel_name_t <KernelName, KernelType>::name;
441- #ifdef __SYCL_DEVICE_ONLY__
442- kernel_parallel_for_item<NameT, KernelType, Dims>(kernelFunc);
443- #else
444- kernelFunc (nd_item<Dims>());
445- #endif
446- }
447-
448431 template <typename KernelName = auto_name, typename KernelType, int Dims>
449432 void parallel_for (range<Dims> numWorkItems, const KernelType &kernelFunc) {
450433 using NameT = typename get_kernel_name_t <KernelName, KernelType>::name;
0 commit comments