From 4f23f9b1adaa1f5d2294b01fdc25377ebe02e3f4 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Tue, 3 Nov 2020 14:11:30 +0300 Subject: [PATCH 1/2] [SYCL][NFC] Extend ABI tests to cover device code --- sycl/test/abi/layout_accessors_device.cpp | 70 +++++++++++++++++++ ...ccessors.cpp => layout_accessors_host.cpp} | 0 sycl/test/abi/layout_array.cpp | 35 +++++++--- sycl/test/abi/layout_vec.cpp | 5 +- 4 files changed, 99 insertions(+), 11 deletions(-) create mode 100644 sycl/test/abi/layout_accessors_device.cpp rename sycl/test/abi/{layout_accessors.cpp => layout_accessors_host.cpp} (100%) diff --git a/sycl/test/abi/layout_accessors_device.cpp b/sycl/test/abi/layout_accessors_device.cpp new file mode 100644 index 0000000000000..2a64b41082299 --- /dev/null +++ b/sycl/test/abi/layout_accessors_device.cpp @@ -0,0 +1,70 @@ +// RUN: %clangxx -fsycl -fsycl-device-only -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s +// REQUIRES: linux + +// clang-format off + +#include + +using namespace cl::sycl; + +//----------------------------------------------------------------------------// +// Global buffer accessor. +//----------------------------------------------------------------------------// + +SYCL_EXTERNAL void hostAcc(accessor Acc) { + (void)Acc.get_size(); +} +// CHECK: 0 | class cl::sycl::accessor > +// CHECK-NEXT: 0 | class cl::sycl::detail::accessor_common > (base) (empty) +// CHECK-NEXT: 0 | class cl::sycl::detail::AccessorImplDevice<1> impl +// CHECK-NEXT: 0 | class cl::sycl::id<1> Offset +// CHECK-NEXT: 0 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 0 | size_t [1] common_array +// CHECK-NEXT: 8 | class cl::sycl::range<1> AccessRange +// CHECK-NEXT: 8 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 8 | size_t [1] common_array +// CHECK-NEXT: 16 | class cl::sycl::range<1> MemRange +// CHECK-NEXT: 16 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 16 | size_t [1] common_array +// CHECK-NEXT: 24 | union cl::sycl::accessor >::(anonymous at /localdisk2/abatashe/repos/llvm/build/bin/../include/sycl/CL/sycl/accessor.hpp:866:3) +// CHECK-NEXT: 24 | cl::sycl::accessor >::ConcreteASPtrType MData +// CHECK-NEXT: | [sizeof=32, dsize=32, align=8, +// CHECK-NEXT: | nvsize=32, nvalign=8] + +//----------------------------------------------------------------------------// +// Local accessor. +//----------------------------------------------------------------------------// + +SYCL_EXTERNAL void hostAcc(accessor Acc) { + (void)Acc.get_size(); +} +// CHECK: 0 | class cl::sycl::accessor > +// CHECK-NEXT: 0 | class cl::sycl::detail::accessor_common > (base) (empty) +// CHECK-NEXT: 0 | class cl::sycl::detail::LocalAccessorBaseDevice<1> impl +// CHECK-NEXT: 0 | class cl::sycl::range<1> AccessRange +// CHECK-NEXT: 0 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 0 | size_t [1] common_array +// CHECK-NEXT: 8 | class cl::sycl::range<1> MemRange +// CHECK-NEXT: 8 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 8 | size_t [1] common_array +// CHECK-NEXT: 16 | class cl::sycl::id<1> Offset +// CHECK-NEXT: 16 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 16 | size_t [1] common_array +// CHECK-NEXT: 24 | cl::sycl::accessor >::ConcreteASPtrType MData +// CHECK-NEXT: | [sizeof=32, dsize=32, align=8, +// CHECK-NEXT: | nvsize=32, nvalign=8] + +//----------------------------------------------------------------------------// +// Image accessor. +//----------------------------------------------------------------------------// + +SYCL_EXTERNAL void hostAcc(accessor Acc) { + (void)Acc.get_count(); +} + +// CHECK: 0 | class cl::sycl::accessor, 1, cl::sycl::access::mode::read, cl::sycl::access::target::image, cl::sycl::access::placeholder::false_t, class cl::sycl::ONEAPI::accessor_property_list<> > +// CHECK-NEXT: 0 | class cl::sycl::detail::image_accessor, 1, cl::sycl::access::mode::read, cl::sycl::access::target::image, cl::sycl::access::placeholder::false_t> (base) +// CHECK-NEXT: 0 | cl::sycl::detail::image_accessor, 1, cl::sycl::access::mode::read, cl::sycl::access::target::image, cl::sycl::access::placeholder::false_t>::OCLImageTy MImageObj +// CHECK-NEXT: 8 | char [24] MPadding +// CHECK-NEXT: | [sizeof=32, dsize=32, align=8, +// CHECK-NEXT: | nvsize=32, nvalign=8] diff --git a/sycl/test/abi/layout_accessors.cpp b/sycl/test/abi/layout_accessors_host.cpp similarity index 100% rename from sycl/test/abi/layout_accessors.cpp rename to sycl/test/abi/layout_accessors_host.cpp diff --git a/sycl/test/abi/layout_array.cpp b/sycl/test/abi/layout_array.cpp index 5e3c44d329a3f..9394b48e0a7e6 100644 --- a/sycl/test/abi/layout_array.cpp +++ b/sycl/test/abi/layout_array.cpp @@ -1,4 +1,5 @@ // RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s +// RUN: %clangxx -fsycl -fsycl-device-only -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s // REQUIRES: linux // clang-format off @@ -7,7 +8,7 @@ #include -void range(sycl::range<2>) {} +SYCL_EXTERNAL void range(sycl::range<2>) {} // CHECK: 0 | class cl::sycl::range<2> // CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base) @@ -17,17 +18,17 @@ void range(sycl::range<2>) {} //---------------------------- -void id(sycl::id<2>) {} +SYCL_EXTERNAL void id(sycl::id<2>) {} -// CHECK: 0 | class cl::sycl::id<3> -// CHECK-NEXT: 0 | class cl::sycl::detail::array<3> (base) -// CHECK-NEXT: 0 | size_t [3] common_array -// CHECK-NEXT: | [sizeof=24, dsize=24, align=8, -// CHECK-NEXT: | nvsize=24, nvalign=8] +// CHECK: 0 | class cl::sycl::id<2> +// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 0 | size_t [2] common_array +// CHECK-NEXT: | [sizeof=16, dsize=16, align=8, +// CHECK-NEXT: | nvsize=16, nvalign=8] //---------------------------- -void item(sycl::item<2>) {} +SYCL_EXTERNAL void item(sycl::item<2>) {} // CHECK: 0 | class cl::sycl::item<2, true> // CHECK-NEXT: 0 | struct cl::sycl::detail::ItemBase<2, true> MImpl @@ -45,7 +46,7 @@ void item(sycl::item<2>) {} //---------------------------- -void nd_item(sycl::nd_item<2>) {} +SYCL_EXTERNAL void nd_item(sycl::nd_item<2>) {} // CHECK: 0 | class cl::sycl::nd_item<2> // CHECK-NEXT: 0 | class cl::sycl::item<2, true> globalItem @@ -82,3 +83,19 @@ void nd_item(sycl::nd_item<2>) {} // CHECK-NEXT: 128 | size_t [2] common_array // CHECK-NEXT: | [sizeof=144, dsize=144, align=8, // CHECK-NEXT: | nvsize=144, nvalign=8] + +//---------------------------- + +SYCL_EXTERNAL void nd_range(sycl::nd_range<2>) {} +// CHECK: 0 | class cl::sycl::nd_range<2> +// CHECK-NEXT: 0 | class cl::sycl::range<2> globalSize +// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 0 | size_t [2] common_array +// CHECK-NEXT: 16 | class cl::sycl::range<2> localSize +// CHECK-NEXT: 16 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 16 | size_t [2] common_array +// CHECK-NEXT: 32 | class cl::sycl::id<2> offset +// CHECK-NEXT: 32 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 32 | size_t [2] common_array +// CHECK-NEXT: | [sizeof=48, dsize=48, align=8, +// CHECK-NEXT: | nvsize=48, nvalign=8] diff --git a/sycl/test/abi/layout_vec.cpp b/sycl/test/abi/layout_vec.cpp index 957f17054c971..f03eb4fe46e66 100644 --- a/sycl/test/abi/layout_vec.cpp +++ b/sycl/test/abi/layout_vec.cpp @@ -1,11 +1,12 @@ // RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s +// RUN: %clangxx -fsycl -fsycl-device-only -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s // REQUIRES: linux // clang-format off #include -void foo(sycl::vec) {} +SYCL_EXTERNAL void foo(sycl::vec) {} // CHECK: 0 | class cl::sycl::vec // CHECK-NEXT: 0 | cl::sycl::vec::DataType m_Data @@ -14,7 +15,7 @@ void foo(sycl::vec) {} //-------------------------------------- -void foo(sycl::vec) {} +SYCL_EXTERNAL void foo(sycl::vec) {} // CHECK: 0 | class cl::sycl::vec<_Bool, 16> // CHECK-NEXT: 0 | cl::sycl::vec<_Bool, 16>::DataType m_Data From e7d40b32ecaf95e697d38b462c68b24b75266fa6 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Tue, 3 Nov 2020 15:05:54 +0300 Subject: [PATCH 2/2] Test fix --- sycl/test/abi/layout_accessors_device.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/test/abi/layout_accessors_device.cpp b/sycl/test/abi/layout_accessors_device.cpp index 2a64b41082299..0f81d7e4c8f88 100644 --- a/sycl/test/abi/layout_accessors_device.cpp +++ b/sycl/test/abi/layout_accessors_device.cpp @@ -26,7 +26,7 @@ SYCL_EXTERNAL void hostAcc(accessor MemRange // CHECK-NEXT: 16 | class cl::sycl::detail::array<1> (base) // CHECK-NEXT: 16 | size_t [1] common_array -// CHECK-NEXT: 24 | union cl::sycl::accessor >::(anonymous at /localdisk2/abatashe/repos/llvm/build/bin/../include/sycl/CL/sycl/accessor.hpp:866:3) +// CHECK-NEXT: 24 | union cl::sycl::accessor > // CHECK-NEXT: 24 | cl::sycl::accessor >::ConcreteASPtrType MData // CHECK-NEXT: | [sizeof=32, dsize=32, align=8, // CHECK-NEXT: | nvsize=32, nvalign=8]