From 163d1e4591c487743638bc45211586860589af81 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Tue, 29 Sep 2020 10:45:17 +0300 Subject: [PATCH 1/3] [SYCL][NFC] Add class layout ABI tests for memory objcets --- sycl/test/abi/layout_buffer.cpp | 96 ++++++++++++++++++++++++++++++ sycl/test/abi/layout_image.cpp | 102 ++++++++++++++++++++++++++++++++ 2 files changed, 198 insertions(+) create mode 100644 sycl/test/abi/layout_buffer.cpp create mode 100644 sycl/test/abi/layout_image.cpp diff --git a/sycl/test/abi/layout_buffer.cpp b/sycl/test/abi/layout_buffer.cpp new file mode 100644 index 0000000000000..d008974e18ba5 --- /dev/null +++ b/sycl/test/abi/layout_buffer.cpp @@ -0,0 +1,96 @@ +// RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s +// REQUIRES: linux + +// clang-format off + +#include + +void foo(sycl::buffer) {} +// CHECK: 0 | class cl::sycl::detail::buffer_impl +// CHEK-NEXT: 0 | class cl::sycl::detail::SYCLMemObjT (primary base) +// CHEK-NEXT: 0 | class cl::sycl::detail::SYCLMemObjI (primary base) +// CHEK-NEXT: 0 | (SYCLMemObjI vtable pointer) +// CHEK-NEXT: 8 | class std::shared_ptr MRecord +// CHEK-NEXT: 8 | class std::__shared_ptr (base) +// CHEK-NEXT: 8 | class std::__shared_ptr_access (base) (empty) +// CHEK-NEXT: 8 | std::__shared_ptr::element_type * _M_ptr +// CHEK-NEXT: 16 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHEK-NEXT: 16 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHEK-NEXT: 24 | class std::unique_ptr > MAllocator +// CHEK-NEXT: 24 | struct std::__uniq_ptr_data, true, true> _M_t +// CHEK-NEXT: 24 | class std::__uniq_ptr_impl > (base) +// CHEK-NEXT: 24 | class std::tuple > _M_t +// CHEK-NEXT: 24 | struct std::_Tuple_impl<0, class cl::sycl::detail::SYCLMemObjAllocator *, struct std::default_delete > (base) +// CHEK-NEXT: 24 | struct std::_Tuple_impl<1, struct std::default_delete > (base) (empty) +// CHEK-NEXT: 24 | struct std::_Head_base<1, struct std::default_delete, true> (base) (empty) +// CHEK-NEXT: 24 | struct std::default_delete (base) (empty) +// CHEK-NEXT: 24 | struct std::_Head_base<0, class cl::sycl::detail::SYCLMemObjAllocator *, false> (base) +// CHEK-NEXT: 24 | class cl::sycl::detail::SYCLMemObjAllocator * _M_head_impl +// CHEK-NEXT: 32 | class cl::sycl::property_list MProps +// CHEK-NEXT: 32 | class cl::sycl::detail::PropertyListBase (base) +// CHEK-NEXT: 32 | class std::bitset<7> MDataLessProps +// CHEK-NEXT: 32 | struct std::_Base_bitset<1> (base) +// CHEK-NEXT: 32 | std::_Base_bitset<1>::_WordT _M_w +// CHEK-NEXT: 40 | class std::vector, class std::allocator > > MPropsWithData +// CHEK-NEXT: 40 | struct std::_Vector_base, class std::allocator > > (base) +// CHEK-NEXT: 40 | struct std::_Vector_base, class std::allocator > >::_Vector_impl _M_impl +// CHEK-NEXT: 40 | class std::allocator > (base) (empty) +// CHEK-NEXT: 40 | class __gnu_cxx::new_allocator > (base) (empty) +// CHEK-NEXT: 40 | struct std::_Vector_base, class std::allocator > >::_Vector_impl_data (base) +// CHEK-NEXT: 40 | std::_Vector_base, class std::allocator > >::pointer _M_start +// CHEK-NEXT: 48 | std::_Vector_base, class std::allocator > >::pointer _M_finish +// CHEK-NEXT: 56 | std::_Vector_base, class std::allocator > >::pointer _M_end_of_storage +// CHEK-NEXT: 64 | class std::shared_ptr MInteropEvent +// CHEK-NEXT: 64 | class std::__shared_ptr (base) +// CHEK-NEXT: 64 | class std::__shared_ptr_access (base) (empty) +// CHEK-NEXT: 64 | std::__shared_ptr::element_type * _M_ptr +// CHEK-NEXT: 72 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHEK-NEXT: 72 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHEK-NEXT: 80 | class std::shared_ptr MInteropContext +// CHEK-NEXT: 80 | class std::__shared_ptr (base) +// CHEK-NEXT: 80 | class std::__shared_ptr_access (base) (empty) +// CHEK-NEXT: 80 | std::__shared_ptr::element_type * _M_ptr +// CHEK-NEXT: 88 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHEK-NEXT: 88 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHEK-NEXT: 96 | cl_mem MInteropMemObject +// CHEK-NEXT: 104 | _Bool MOpenCLInterop +// CHEK-NEXT: 105 | _Bool MHostPtrReadOnly +// CHEK-NEXT: 106 | _Bool MNeedWriteBack +// CHEK-NEXT: 112 | size_t MSizeInBytes +// CHEK-NEXT: 120 | void * MUserPtr +// CHEK-NEXT: 128 | void * MShadowCopy +// CHEK-NEXT: 136 | class std::function MUploadDataFunctor +// CHEK-NEXT: 136 | struct std::_Maybe_unary_or_binary_function (base) (empty) +// CHEK-NEXT: 136 | class std::_Function_base (base) +// CHEK-NEXT: 136 | union std::_Any_data _M_functor +// CHEK-NEXT: 136 | union std::_Nocopy_types _M_unused +// CHEK-NEXT: 136 | void * _M_object +// CHEK-NEXT: 136 | const void * _M_const_object +// CHEK-NEXT: 136 | void (*)(void) _M_function_pointer +// CHEK-NEXT: 136 | void (class std::_Undefined_class::*)(void) _M_member_pointer +// CHEK-NEXT: 136 | char [16] _M_pod_data +// CHEK-NEXT: 152 | std::_Function_base::_Manager_type _M_manager +// CHEK-NEXT: 160 | std::function::_Invoker_type _M_invoker +// CHEK-NEXT: 168 | class std::shared_ptr MSharedPtrStorage +// CHEK-NEXT: 168 | class std::__shared_ptr (base) +// CHEK-NEXT: 168 | class std::__shared_ptr_access (base) (empty) +// CHEK-NEXT: 168 | std::__shared_ptr::element_type * _M_ptr +// CHEK-NEXT: 176 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHEK-NEXT: 176 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHEK-NEXT: | [sizeof=184, dsize=184, align=8, +// CHEK-NEXT: | nvsize=184, nvalign=8] + +// CHEK: 0 | class cl::sycl::buffer, void> +// CHEK-NEXT: 0 | class std::shared_ptr impl +// CHEK-NEXT: 0 | class std::__shared_ptr (base) +// CHEK-NEXT: 0 | class std::__shared_ptr_access (base) (empty) +// CHEK-NEXT: 0 | std::__shared_ptr::element_type * _M_ptr +// CHEK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHEK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHEK-NEXT: 16 | class cl::sycl::range<2> Range +// CHEK-NEXT: 16 | class cl::sycl::detail::array<2> (base) +// CHEK-NEXT: 16 | size_t [2] common_array +// CHEK-NEXT: 32 | size_t OffsetInBytes +// CHEK-NEXT: 40 | _Bool IsSubBuffer +// CHEK-NEXT: | [sizeof=48, dsize=41, align=8, +// CHEK-NEXT: | nvsize=41, nvalign=8] diff --git a/sycl/test/abi/layout_image.cpp b/sycl/test/abi/layout_image.cpp new file mode 100644 index 0000000000000..34162f74658e6 --- /dev/null +++ b/sycl/test/abi/layout_image.cpp @@ -0,0 +1,102 @@ +// RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s +// REQUIRES: linux + +// clang-format off + +#include + +sycl::image<2> Img{sycl::image_channel_order::rgba, sycl::image_channel_type::fp16, sycl::range<2>{10, 10}}; + +// CHECK: 0 | class cl::sycl::detail::image_impl<2> +// CHECK-NEXT: 0 | class cl::sycl::detail::SYCLMemObjT (primary base) +// CHECK-NEXT: 0 | class cl::sycl::detail::SYCLMemObjI (primary base) +// CHECK-NEXT: 0 | (SYCLMemObjI vtable pointer) +// CHECK-NEXT: 8 | class std::shared_ptr MRecord +// CHECK-NEXT: 8 | class std::__shared_ptr (base) +// CHECK-NEXT: 8 | class std::__shared_ptr_access (base) (empty) +// CHECK-NEXT: 8 | std::__shared_ptr::element_type * _M_ptr +// CHECK-NEXT: 16 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHECK-NEXT: 16 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHECK-NEXT: 24 | class std::unique_ptr > MAllocator +// CHECK-NEXT: 24 | struct std::__uniq_ptr_data, true, true> _M_t +// CHECK-NEXT: 24 | class std::__uniq_ptr_impl > (base) +// CHECK-NEXT: 24 | class std::tuple > _M_t +// CHECK-NEXT: 24 | struct std::_Tuple_impl<0, class cl::sycl::detail::SYCLMemObjAllocator *, struct std::default_delete > (base) +// CHECK-NEXT: 24 | struct std::_Tuple_impl<1, struct std::default_delete > (base) (empty) +// CHECK-NEXT: 24 | struct std::_Head_base<1, struct std::default_delete, true> (base) (empty) +// CHECK-NEXT: 24 | struct std::default_delete (base) (empty) +// CHECK-NEXT: 24 | struct std::_Head_base<0, class cl::sycl::detail::SYCLMemObjAllocator *, false> (base) +// CHECK-NEXT: 24 | class cl::sycl::detail::SYCLMemObjAllocator * _M_head_impl +// CHECK-NEXT: 32 | class cl::sycl::property_list MProps +// CHECK-NEXT: 32 | class cl::sycl::detail::PropertyListBase (base) +// CHECK-NEXT: 32 | class std::bitset<7> MDataLessProps +// CHECK-NEXT: 32 | struct std::_Base_bitset<1> (base) +// CHECK-NEXT: 32 | std::_Base_bitset<1>::_WordT _M_w +// CHECK-NEXT: 40 | class std::vector, class std::allocator > > MPropsWithData +// CHECK-NEXT: 40 | struct std::_Vector_base, class std::allocator > > (base) +// CHECK-NEXT: 40 | struct std::_Vector_base, class std::allocator > >::_Vector_impl _M_impl +// CHECK-NEXT: 40 | class std::allocator > (base) (empty) +// CHECK-NEXT: 40 | class __gnu_cxx::new_allocator > (base) (empty) +// CHECK-NEXT: 40 | struct std::_Vector_base, class std::allocator > >::_Vector_impl_data (base) +// CHECK-NEXT: 40 | std::_Vector_base, class std::allocator > >::pointer _M_start +// CHECK-NEXT: 48 | std::_Vector_base, class std::allocator > >::pointer _M_finish +// CHECK-NEXT: 56 | std::_Vector_base, class std::allocator > >::pointer _M_end_of_storage +// CHECK-NEXT: 64 | class std::shared_ptr MInteropEvent +// CHECK-NEXT: 64 | class std::__shared_ptr (base) +// CHECK-NEXT: 64 | class std::__shared_ptr_access (base) (empty) +// CHECK-NEXT: 64 | std::__shared_ptr::element_type * _M_ptr +// CHECK-NEXT: 72 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHECK-NEXT: 72 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHECK-NEXT: 80 | class std::shared_ptr MInteropContext +// CHECK-NEXT: 80 | class std::__shared_ptr (base) +// CHECK-NEXT: 80 | class std::__shared_ptr_access (base) (empty) +// CHECK-NEXT: 80 | std::__shared_ptr::element_type * _M_ptr +// CHECK-NEXT: 88 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHECK-NEXT: 88 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHECK-NEXT: 96 | cl_mem MInteropMemObject +// CHECK-NEXT: 104 | _Bool MOpenCLInterop +// CHECK-NEXT: 105 | _Bool MHostPtrReadOnly +// CHECK-NEXT: 106 | _Bool MNeedWriteBack +// CHECK-NEXT: 112 | size_t MSizeInBytes +// CHECK-NEXT: 120 | void * MUserPtr +// CHECK-NEXT: 128 | void * MShadowCopy +// CHECK-NEXT: 136 | class std::function MUploadDataFunctor +// CHECK-NEXT: 136 | struct std::_Maybe_unary_or_binary_function (base) (empty) +// CHECK-NEXT: 136 | class std::_Function_base (base) +// CHECK-NEXT: 136 | union std::_Any_data _M_functor +// CHECK-NEXT: 136 | union std::_Nocopy_types _M_unused +// CHECK-NEXT: 136 | void * _M_object +// CHECK-NEXT: 136 | const void * _M_const_object +// CHECK-NEXT: 136 | void (*)(void) _M_function_pointer +// CHECK-NEXT: 136 | void (class std::_Undefined_class::*)(void) _M_member_pointer +// CHECK-NEXT: 136 | char [16] _M_pod_data +// CHECK-NEXT: 152 | std::_Function_base::_Manager_type _M_manager +// CHECK-NEXT: 160 | std::function::_Invoker_type _M_invoker +// CHECK-NEXT: 168 | class std::shared_ptr MSharedPtrStorage +// CHECK-NEXT: 168 | class std::__shared_ptr (base) +// CHECK-NEXT: 168 | class std::__shared_ptr_access (base) (empty) +// CHECK-NEXT: 168 | std::__shared_ptr::element_type * _M_ptr +// CHECK-NEXT: 176 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHECK-NEXT: 176 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHECK-NEXT: 184 | _Bool MIsArrayImage +// CHECK-NEXT: 192 | class cl::sycl::range<2> MRange +// CHECK-NEXT: 192 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 192 | size_t [2] common_array +// CHECK-NEXT: 208 | enum cl::sycl::image_channel_order MOrder +// CHECK-NEXT: 212 | enum cl::sycl::image_channel_type MType +// CHECK-NEXT: 216 | uint8_t MNumChannels +// CHECK-NEXT: 224 | size_t MElementSize +// CHECK-NEXT: 232 | size_t MRowPitch +// CHECK-NEXT: 240 | size_t MSlicePitch +// CHECK-NEXT: | [sizeof=248, dsize=248, align=8, +// CHECK-NEXT: | nvsize=248, nvalign=8] + +// CHECK: 0 | class cl::sycl::image<2, class cl::sycl::detail::aligned_allocator > +// CHECK-NEXT: 0 | class std::shared_ptr > impl +// CHECK-NEXT: 0 | class std::__shared_ptr, __gnu_cxx::_S_atomic> (base) +// CHECK-NEXT: 0 | class std::__shared_ptr_access, __gnu_cxx::_S_atomic, false, false> (base) (empty) +// CHECK-NEXT: 0 | std::__shared_ptr, __gnu_cxx::_S_atomic>::element_type * _M_ptr +// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHECK-NEXT: | [sizeof=16, dsize=16, align=8, +// CHECK-NEXT: | nvsize=16, nvalign=8] From fe6ea054edeae5678c2793f100c254925ace706b Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Tue, 29 Sep 2020 14:08:04 +0300 Subject: [PATCH 2/3] Adjust checks --- sycl/test/abi/layout_buffer.cpp | 170 ++++++++++++++++---------------- sycl/test/abi/layout_image.cpp | 6 +- 2 files changed, 86 insertions(+), 90 deletions(-) diff --git a/sycl/test/abi/layout_buffer.cpp b/sycl/test/abi/layout_buffer.cpp index d008974e18ba5..5bba745fa9e5d 100644 --- a/sycl/test/abi/layout_buffer.cpp +++ b/sycl/test/abi/layout_buffer.cpp @@ -7,90 +7,88 @@ void foo(sycl::buffer) {} // CHECK: 0 | class cl::sycl::detail::buffer_impl -// CHEK-NEXT: 0 | class cl::sycl::detail::SYCLMemObjT (primary base) -// CHEK-NEXT: 0 | class cl::sycl::detail::SYCLMemObjI (primary base) -// CHEK-NEXT: 0 | (SYCLMemObjI vtable pointer) -// CHEK-NEXT: 8 | class std::shared_ptr MRecord -// CHEK-NEXT: 8 | class std::__shared_ptr (base) -// CHEK-NEXT: 8 | class std::__shared_ptr_access (base) (empty) -// CHEK-NEXT: 8 | std::__shared_ptr::element_type * _M_ptr -// CHEK-NEXT: 16 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount -// CHEK-NEXT: 16 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi -// CHEK-NEXT: 24 | class std::unique_ptr > MAllocator -// CHEK-NEXT: 24 | struct std::__uniq_ptr_data, true, true> _M_t -// CHEK-NEXT: 24 | class std::__uniq_ptr_impl > (base) -// CHEK-NEXT: 24 | class std::tuple > _M_t -// CHEK-NEXT: 24 | struct std::_Tuple_impl<0, class cl::sycl::detail::SYCLMemObjAllocator *, struct std::default_delete > (base) -// CHEK-NEXT: 24 | struct std::_Tuple_impl<1, struct std::default_delete > (base) (empty) -// CHEK-NEXT: 24 | struct std::_Head_base<1, struct std::default_delete, true> (base) (empty) -// CHEK-NEXT: 24 | struct std::default_delete (base) (empty) -// CHEK-NEXT: 24 | struct std::_Head_base<0, class cl::sycl::detail::SYCLMemObjAllocator *, false> (base) -// CHEK-NEXT: 24 | class cl::sycl::detail::SYCLMemObjAllocator * _M_head_impl -// CHEK-NEXT: 32 | class cl::sycl::property_list MProps -// CHEK-NEXT: 32 | class cl::sycl::detail::PropertyListBase (base) -// CHEK-NEXT: 32 | class std::bitset<7> MDataLessProps -// CHEK-NEXT: 32 | struct std::_Base_bitset<1> (base) -// CHEK-NEXT: 32 | std::_Base_bitset<1>::_WordT _M_w -// CHEK-NEXT: 40 | class std::vector, class std::allocator > > MPropsWithData -// CHEK-NEXT: 40 | struct std::_Vector_base, class std::allocator > > (base) -// CHEK-NEXT: 40 | struct std::_Vector_base, class std::allocator > >::_Vector_impl _M_impl -// CHEK-NEXT: 40 | class std::allocator > (base) (empty) -// CHEK-NEXT: 40 | class __gnu_cxx::new_allocator > (base) (empty) -// CHEK-NEXT: 40 | struct std::_Vector_base, class std::allocator > >::_Vector_impl_data (base) -// CHEK-NEXT: 40 | std::_Vector_base, class std::allocator > >::pointer _M_start -// CHEK-NEXT: 48 | std::_Vector_base, class std::allocator > >::pointer _M_finish -// CHEK-NEXT: 56 | std::_Vector_base, class std::allocator > >::pointer _M_end_of_storage -// CHEK-NEXT: 64 | class std::shared_ptr MInteropEvent -// CHEK-NEXT: 64 | class std::__shared_ptr (base) -// CHEK-NEXT: 64 | class std::__shared_ptr_access (base) (empty) -// CHEK-NEXT: 64 | std::__shared_ptr::element_type * _M_ptr -// CHEK-NEXT: 72 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount -// CHEK-NEXT: 72 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi -// CHEK-NEXT: 80 | class std::shared_ptr MInteropContext -// CHEK-NEXT: 80 | class std::__shared_ptr (base) -// CHEK-NEXT: 80 | class std::__shared_ptr_access (base) (empty) -// CHEK-NEXT: 80 | std::__shared_ptr::element_type * _M_ptr -// CHEK-NEXT: 88 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount -// CHEK-NEXT: 88 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi -// CHEK-NEXT: 96 | cl_mem MInteropMemObject -// CHEK-NEXT: 104 | _Bool MOpenCLInterop -// CHEK-NEXT: 105 | _Bool MHostPtrReadOnly -// CHEK-NEXT: 106 | _Bool MNeedWriteBack -// CHEK-NEXT: 112 | size_t MSizeInBytes -// CHEK-NEXT: 120 | void * MUserPtr -// CHEK-NEXT: 128 | void * MShadowCopy -// CHEK-NEXT: 136 | class std::function MUploadDataFunctor -// CHEK-NEXT: 136 | struct std::_Maybe_unary_or_binary_function (base) (empty) -// CHEK-NEXT: 136 | class std::_Function_base (base) -// CHEK-NEXT: 136 | union std::_Any_data _M_functor -// CHEK-NEXT: 136 | union std::_Nocopy_types _M_unused -// CHEK-NEXT: 136 | void * _M_object -// CHEK-NEXT: 136 | const void * _M_const_object -// CHEK-NEXT: 136 | void (*)(void) _M_function_pointer -// CHEK-NEXT: 136 | void (class std::_Undefined_class::*)(void) _M_member_pointer -// CHEK-NEXT: 136 | char [16] _M_pod_data -// CHEK-NEXT: 152 | std::_Function_base::_Manager_type _M_manager -// CHEK-NEXT: 160 | std::function::_Invoker_type _M_invoker -// CHEK-NEXT: 168 | class std::shared_ptr MSharedPtrStorage -// CHEK-NEXT: 168 | class std::__shared_ptr (base) -// CHEK-NEXT: 168 | class std::__shared_ptr_access (base) (empty) -// CHEK-NEXT: 168 | std::__shared_ptr::element_type * _M_ptr -// CHEK-NEXT: 176 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount -// CHEK-NEXT: 176 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi -// CHEK-NEXT: | [sizeof=184, dsize=184, align=8, -// CHEK-NEXT: | nvsize=184, nvalign=8] +// CHECK-NEXT: 0 | class cl::sycl::detail::SYCLMemObjT (primary base) +// CHECK-NEXT: 0 | class cl::sycl::detail::SYCLMemObjI (primary base) +// CHECK-NEXT: 0 | (SYCLMemObjI vtable pointer) +// CHECK-NEXT: 8 | class std::shared_ptr MRecord +// CHECK-NEXT: 8 | class std::__shared_ptr (base) +// CHECK-NEXT: 8 | class std::__shared_ptr_access (base) (empty) +// CHECK-NEXT: 8 | std::__shared_ptr::element_type * _M_ptr +// CHECK-NEXT: 16 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHECK-NEXT: 16 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHECK-NEXT: 24 | class std::unique_ptr > MAllocator +// CHECK: 24 | class std::__uniq_ptr_impl > (base) +// CHECK-NEXT: 24 | class std::tuple > _M_t +// CHECK-NEXT: 24 | struct std::_Tuple_impl<0, class cl::sycl::detail::SYCLMemObjAllocator *, struct std::default_delete > (base) +// CHECK-NEXT: 24 | struct std::_Tuple_impl<1, struct std::default_delete > (base) (empty) +// CHECK-NEXT: 24 | struct std::_Head_base<1, struct std::default_delete, true> (base) (empty) +// CHECK-NEXT: 24 | struct std::default_delete (base) (empty) +// CHECK-NEXT: 24 | struct std::_Head_base<0, class cl::sycl::detail::SYCLMemObjAllocator *, false> (base) +// CHECK-NEXT: 24 | class cl::sycl::detail::SYCLMemObjAllocator * _M_head_impl +// CHECK-NEXT: 32 | class cl::sycl::property_list MProps +// CHECK-NEXT: 32 | class cl::sycl::detail::PropertyListBase (base) +// CHECK-NEXT: 32 | class std::bitset<7> MDataLessProps +// CHECK-NEXT: 32 | struct std::_Base_bitset<1> (base) +// CHECK-NEXT: 32 | std::_Base_bitset<1>::_WordT _M_w +// CHECK-NEXT: 40 | class std::vector, class std::allocator > > MPropsWithData +// CHECK-NEXT: 40 | struct std::_Vector_base, class std::allocator > > (base) +// CHECK-NEXT: 40 | struct std::_Vector_base, class std::allocator > >::_Vector_impl _M_impl +// CHECK-NEXT: 40 | class std::allocator > (base) (empty) +// CHECK-NEXT: 40 | class __gnu_cxx::new_allocator > (base) (empty) +// CHECK: 40 | std::_Vector_base, class std::allocator > >::pointer _M_start +// CHECK-NEXT: 48 | std::_Vector_base, class std::allocator > >::pointer _M_finish +// CHECK-NEXT: 56 | std::_Vector_base, class std::allocator > >::pointer _M_end_of_storage +// CHECK-NEXT: 64 | class std::shared_ptr MInteropEvent +// CHECK-NEXT: 64 | class std::__shared_ptr (base) +// CHECK-NEXT: 64 | class std::__shared_ptr_access (base) (empty) +// CHECK-NEXT: 64 | std::__shared_ptr::element_type * _M_ptr +// CHECK-NEXT: 72 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHECK-NEXT: 72 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHECK-NEXT: 80 | class std::shared_ptr MInteropContext +// CHECK-NEXT: 80 | class std::__shared_ptr (base) +// CHECK-NEXT: 80 | class std::__shared_ptr_access (base) (empty) +// CHECK-NEXT: 80 | std::__shared_ptr::element_type * _M_ptr +// CHECK-NEXT: 88 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHECK-NEXT: 88 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHECK-NEXT: 96 | cl_mem MInteropMemObject +// CHECK-NEXT: 104 | _Bool MOpenCLInterop +// CHECK-NEXT: 105 | _Bool MHostPtrReadOnly +// CHECK-NEXT: 106 | _Bool MNeedWriteBack +// CHECK-NEXT: 112 | size_t MSizeInBytes +// CHECK-NEXT: 120 | void * MUserPtr +// CHECK-NEXT: 128 | void * MShadowCopy +// CHECK-NEXT: 136 | class std::function MUploadDataFunctor +// CHECK-NEXT: 136 | struct std::_Maybe_unary_or_binary_function (base) (empty) +// CHECK-NEXT: 136 | class std::_Function_base (base) +// CHECK-NEXT: 136 | union std::_Any_data _M_functor +// CHECK-NEXT: 136 | union std::_Nocopy_types _M_unused +// CHECK-NEXT: 136 | void * _M_object +// CHECK-NEXT: 136 | const void * _M_const_object +// CHECK-NEXT: 136 | void (*)(void) _M_function_pointer +// CHECK-NEXT: 136 | void (class std::_Undefined_class::*)(void) _M_member_pointer +// CHECK-NEXT: 136 | char [16] _M_pod_data +// CHECK-NEXT: 152 | std::_Function_base::_Manager_type _M_manager +// CHECK-NEXT: 160 | std::function::_Invoker_type _M_invoker +// CHECK-NEXT: 168 | class std::shared_ptr MSharedPtrStorage +// CHECK-NEXT: 168 | class std::__shared_ptr (base) +// CHECK-NEXT: 168 | class std::__shared_ptr_access (base) (empty) +// CHECK-NEXT: 168 | std::__shared_ptr::element_type * _M_ptr +// CHECK-NEXT: 176 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHECK-NEXT: 176 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHECK-NEXT: | [sizeof=184, dsize=184, align=8, +// CHECK-NEXT: | nvsize=184, nvalign=8] -// CHEK: 0 | class cl::sycl::buffer, void> -// CHEK-NEXT: 0 | class std::shared_ptr impl -// CHEK-NEXT: 0 | class std::__shared_ptr (base) -// CHEK-NEXT: 0 | class std::__shared_ptr_access (base) (empty) -// CHEK-NEXT: 0 | std::__shared_ptr::element_type * _M_ptr -// CHEK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount -// CHEK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi -// CHEK-NEXT: 16 | class cl::sycl::range<2> Range -// CHEK-NEXT: 16 | class cl::sycl::detail::array<2> (base) -// CHEK-NEXT: 16 | size_t [2] common_array -// CHEK-NEXT: 32 | size_t OffsetInBytes -// CHEK-NEXT: 40 | _Bool IsSubBuffer -// CHEK-NEXT: | [sizeof=48, dsize=41, align=8, -// CHEK-NEXT: | nvsize=41, nvalign=8] +// CHECK: 0 | class cl::sycl::buffer, void> +// CHECK-NEXT: 0 | class std::shared_ptr impl +// CHECK-NEXT: 0 | class std::__shared_ptr (base) +// CHECK-NEXT: 0 | class std::__shared_ptr_access (base) (empty) +// CHECK-NEXT: 0 | std::__shared_ptr::element_type * _M_ptr +// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount +// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi +// CHECK-NEXT: 16 | class cl::sycl::range<2> Range +// CHECK-NEXT: 16 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 16 | size_t [2] common_array +// CHECK-NEXT: 32 | size_t OffsetInBytes +// CHECK-NEXT: 40 | _Bool IsSubBuffer +// CHECK-NEXT: | [sizeof=48, dsize=41, align=8, +// CHECK-NEXT: | nvsize=41, nvalign=8] diff --git a/sycl/test/abi/layout_image.cpp b/sycl/test/abi/layout_image.cpp index 34162f74658e6..8abe0e7110b6f 100644 --- a/sycl/test/abi/layout_image.cpp +++ b/sycl/test/abi/layout_image.cpp @@ -18,8 +18,7 @@ sycl::image<2> Img{sycl::image_channel_order::rgba, sycl::image_channel_type::fp // CHECK-NEXT: 16 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount // CHECK-NEXT: 16 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi // CHECK-NEXT: 24 | class std::unique_ptr > MAllocator -// CHECK-NEXT: 24 | struct std::__uniq_ptr_data, true, true> _M_t -// CHECK-NEXT: 24 | class std::__uniq_ptr_impl > (base) +// CHECK: 24 | class std::__uniq_ptr_impl > (base) // CHECK-NEXT: 24 | class std::tuple > _M_t // CHECK-NEXT: 24 | struct std::_Tuple_impl<0, class cl::sycl::detail::SYCLMemObjAllocator *, struct std::default_delete > (base) // CHECK-NEXT: 24 | struct std::_Tuple_impl<1, struct std::default_delete > (base) (empty) @@ -37,8 +36,7 @@ sycl::image<2> Img{sycl::image_channel_order::rgba, sycl::image_channel_type::fp // CHECK-NEXT: 40 | struct std::_Vector_base, class std::allocator > >::_Vector_impl _M_impl // CHECK-NEXT: 40 | class std::allocator > (base) (empty) // CHECK-NEXT: 40 | class __gnu_cxx::new_allocator > (base) (empty) -// CHECK-NEXT: 40 | struct std::_Vector_base, class std::allocator > >::_Vector_impl_data (base) -// CHECK-NEXT: 40 | std::_Vector_base, class std::allocator > >::pointer _M_start +// CHECK: 40 | std::_Vector_base, class std::allocator > >::pointer _M_start // CHECK-NEXT: 48 | std::_Vector_base, class std::allocator > >::pointer _M_finish // CHECK-NEXT: 56 | std::_Vector_base, class std::allocator > >::pointer _M_end_of_storage // CHECK-NEXT: 64 | class std::shared_ptr MInteropEvent From 1217c00add9bd28c2bab86e6a717513cf6f04a5e Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Wed, 30 Sep 2020 13:17:56 +0300 Subject: [PATCH 3/3] More fixes --- sycl/test/abi/layout_buffer.cpp | 2 +- sycl/test/abi/layout_image.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sycl/test/abi/layout_buffer.cpp b/sycl/test/abi/layout_buffer.cpp index 5bba745fa9e5d..f4de00d90ccc6 100644 --- a/sycl/test/abi/layout_buffer.cpp +++ b/sycl/test/abi/layout_buffer.cpp @@ -17,7 +17,7 @@ void foo(sycl::buffer) {} // CHECK-NEXT: 16 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount // CHECK-NEXT: 16 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi // CHECK-NEXT: 24 | class std::unique_ptr > MAllocator -// CHECK: 24 | class std::__uniq_ptr_impl > (base) +// CHECK: 24 | class std::__uniq_ptr_impl > // CHECK-NEXT: 24 | class std::tuple > _M_t // CHECK-NEXT: 24 | struct std::_Tuple_impl<0, class cl::sycl::detail::SYCLMemObjAllocator *, struct std::default_delete > (base) // CHECK-NEXT: 24 | struct std::_Tuple_impl<1, struct std::default_delete > (base) (empty) diff --git a/sycl/test/abi/layout_image.cpp b/sycl/test/abi/layout_image.cpp index 8abe0e7110b6f..0e514d22c939c 100644 --- a/sycl/test/abi/layout_image.cpp +++ b/sycl/test/abi/layout_image.cpp @@ -18,7 +18,7 @@ sycl::image<2> Img{sycl::image_channel_order::rgba, sycl::image_channel_type::fp // CHECK-NEXT: 16 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount // CHECK-NEXT: 16 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi // CHECK-NEXT: 24 | class std::unique_ptr > MAllocator -// CHECK: 24 | class std::__uniq_ptr_impl > (base) +// CHECK: 24 | class std::__uniq_ptr_impl > // CHECK-NEXT: 24 | class std::tuple > _M_t // CHECK-NEXT: 24 | struct std::_Tuple_impl<0, class cl::sycl::detail::SYCLMemObjAllocator *, struct std::default_delete > (base) // CHECK-NEXT: 24 | struct std::_Tuple_impl<1, struct std::default_delete > (base) (empty)