Author: Jon Chesterfield Date: 2020-12-11T02:13:34Z New Revision: ce93de3bb284c944676c7b81890156d9d80b1db9
URL: https://github.com/llvm/llvm-project/commit/ce93de3bb284c944676c7b81890156d9d80b1db9 DIFF: https://github.com/llvm/llvm-project/commit/ce93de3bb284c944676c7b81890156d9d80b1db9.diff LOG: [libomptarget][nfc] Remove data_sharing type aliasing [libomptarget][nfc] Remove data_sharing type aliasing Libomptarget previous used __kmpc_data_sharing_slot to access values of type __kmpc_data_sharing_{worker,master}_slot_static. This aliasing violation was benign in practice. The master type has since been removed, so a single type can be used instead. This is particularly helpful for the transition to an openmp deviceRTL, as the c++/openmp compiler for amdgcn currently rejects the flexible array member for being an incomplete type. Serves the same purpose as abandoned D86324. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D93075 Added: Modified: openmp/libomptarget/deviceRTLs/common/omptarget.h openmp/libomptarget/deviceRTLs/interface.h Removed: ################################################################################ diff --git a/openmp/libomptarget/deviceRTLs/common/omptarget.h b/openmp/libomptarget/deviceRTLs/common/omptarget.h index 0ccd71c3b55f..fc4eb6bfbcfa 100644 --- a/openmp/libomptarget/deviceRTLs/common/omptarget.h +++ b/openmp/libomptarget/deviceRTLs/common/omptarget.h @@ -74,6 +74,16 @@ class omptarget_nvptx_SharedArgs { extern DEVICE SHARED omptarget_nvptx_SharedArgs omptarget_nvptx_globalArgs; +// Worker slot type which is initialized with the default worker slot +// size of 4*32 bytes. +struct __kmpc_data_sharing_slot { + __kmpc_data_sharing_slot *Next; + __kmpc_data_sharing_slot *Prev; + void *PrevSlotStackPtr; + void *DataEnd; + char Data[DS_Worker_Warp_Slot_Size]; +}; + // Data structure to keep in shared memory that traces the current slot, stack, // and frame pointer as well as the active threads that didn't exit the current // environment. @@ -83,15 +93,6 @@ struct DataSharingStateTy { void * volatile FramePtr[DS_Max_Warp_Number]; __kmpc_impl_lanemask_t ActiveThreads[DS_Max_Warp_Number]; }; -// Additional worker slot type which is initialized with the default worker slot -// size of 4*32 bytes. -struct __kmpc_data_sharing_worker_slot_static { - __kmpc_data_sharing_slot *Next; - __kmpc_data_sharing_slot *Prev; - void *PrevSlotStackPtr; - void *DataEnd; - char Data[DS_Worker_Warp_Slot_Size]; -}; extern DEVICE SHARED DataSharingStateTy DataSharingState; @@ -213,7 +214,7 @@ class omptarget_nvptx_TeamDescr { workDescrForActiveParallel; // one, ONLY for the active par ALIGN(16) - __kmpc_data_sharing_worker_slot_static worker_rootS[DS_Max_Warp_Number]; + __kmpc_data_sharing_slot worker_rootS[DS_Max_Warp_Number]; }; //////////////////////////////////////////////////////////////////////////////// diff --git a/openmp/libomptarget/deviceRTLs/interface.h b/openmp/libomptarget/deviceRTLs/interface.h index 330880556293..5f539bc3fd66 100644 --- a/openmp/libomptarget/deviceRTLs/interface.h +++ b/openmp/libomptarget/deviceRTLs/interface.h @@ -438,17 +438,6 @@ EXTERN void __kmpc_begin_sharing_variables(void ***GlobalArgs, size_t nArgs); EXTERN void __kmpc_end_sharing_variables(); EXTERN void __kmpc_get_shared_variables(void ***GlobalArgs); -// The slot used for data sharing by the master and worker threads. We use a -// complete (default size version and an incomplete one so that we allow sizes -// greater than the default). -struct __kmpc_data_sharing_slot { - __kmpc_data_sharing_slot *Next; - __kmpc_data_sharing_slot *Prev; - void *PrevSlotStackPtr; - void *DataEnd; - char Data[]; -}; - // SPMD execution mode interrogation function. EXTERN int8_t __kmpc_is_spmd_exec_mode(); _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits