forked from OSchip/llvm-project
				
			Revert "[libomptarget] Move resource id functions into target specific code, implement for amdgcn"
This reverts commit dbb3fec8ad since it
breaks the NVPTX tests.
			
			
This commit is contained in:
		
							parent
							
								
									a0a670614a
								
							
						
					
					
						commit
						dd8a7fcdd7
					
				| 
						 | 
					@ -136,14 +136,6 @@ EXTERN void __kmpc_impl_threadfence(void);
 | 
				
			||||||
EXTERN void __kmpc_impl_threadfence_block(void);
 | 
					EXTERN void __kmpc_impl_threadfence_block(void);
 | 
				
			||||||
EXTERN void __kmpc_impl_threadfence_system(void);
 | 
					EXTERN void __kmpc_impl_threadfence_system(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Calls to the AMDGCN layer (assuming 1D layout)
 | 
					 | 
				
			||||||
EXTERN uint64_t __ockl_get_local_size(uint32_t);
 | 
					 | 
				
			||||||
EXTERN uint64_t __ockl_get_num_groups(uint32_t);
 | 
					 | 
				
			||||||
INLINE int GetThreadIdInBlock() { return __builtin_amdgcn_workitem_id_x(); }
 | 
					 | 
				
			||||||
INLINE int GetBlockIdInKernel() { return __builtin_amdgcn_workgroup_id_x(); }
 | 
					 | 
				
			||||||
INLINE int GetNumberOfBlocksInKernel() { return __ockl_get_num_groups(0); }
 | 
					 | 
				
			||||||
INLINE int GetNumberOfThreadsInBlock() { return __ockl_get_local_size(0); }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DEVICE versions of part of libc
 | 
					// DEVICE versions of part of libc
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
DEVICE __attribute__((noreturn)) void
 | 
					DEVICE __attribute__((noreturn)) void
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -98,6 +98,14 @@ DEVICE bool checkRuntimeInitialized(kmp_Ident *loc) {
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
////////////////////////////////////////////////////////////////////////////////
 | 
					////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEVICE int GetThreadIdInBlock() { return threadIdx.x; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEVICE int GetBlockIdInKernel() { return blockIdx.x; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEVICE int GetNumberOfBlocksInKernel() { return gridDim.x; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEVICE int GetNumberOfThreadsInBlock() { return blockDim.x; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DEVICE unsigned GetWarpId() { return GetThreadIdInBlock() / WARPSIZE; }
 | 
					DEVICE unsigned GetWarpId() { return GetThreadIdInBlock() / WARPSIZE; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DEVICE unsigned GetLaneId() { return GetThreadIdInBlock() & (WARPSIZE - 1); }
 | 
					DEVICE unsigned GetLaneId() { return GetThreadIdInBlock() & (WARPSIZE - 1); }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
//===--------- support.h - OpenMP GPU support functions ---------- CUDA -*-===//
 | 
					//===--------- support.h - NVPTX OpenMP support functions -------- CUDA -*-===//
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 | 
					// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 | 
				
			||||||
// See https://llvm.org/LICENSE.txt for license information.
 | 
					// See https://llvm.org/LICENSE.txt for license information.
 | 
				
			||||||
| 
						 | 
					@ -51,6 +51,10 @@ DEVICE bool checkRuntimeInitialized(kmp_Ident *loc);
 | 
				
			||||||
////////////////////////////////////////////////////////////////////////////////
 | 
					////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// get low level ids of resources
 | 
					// get low level ids of resources
 | 
				
			||||||
 | 
					DEVICE int GetThreadIdInBlock();
 | 
				
			||||||
 | 
					DEVICE int GetBlockIdInKernel();
 | 
				
			||||||
 | 
					DEVICE int GetNumberOfBlocksInKernel();
 | 
				
			||||||
 | 
					DEVICE int GetNumberOfThreadsInBlock();
 | 
				
			||||||
DEVICE unsigned GetWarpId();
 | 
					DEVICE unsigned GetWarpId();
 | 
				
			||||||
DEVICE unsigned GetLaneId();
 | 
					DEVICE unsigned GetLaneId();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -167,10 +167,4 @@ INLINE void __kmpc_impl_threadfence(void) { __threadfence(); }
 | 
				
			||||||
INLINE void __kmpc_impl_threadfence_block(void) { __threadfence_block(); }
 | 
					INLINE void __kmpc_impl_threadfence_block(void) { __threadfence_block(); }
 | 
				
			||||||
INLINE void __kmpc_impl_threadfence_system(void) { __threadfence_system(); }
 | 
					INLINE void __kmpc_impl_threadfence_system(void) { __threadfence_system(); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Calls to the NVPTX layer (assuming 1D layout)
 | 
					 | 
				
			||||||
INLINE int GetThreadIdInBlock() { return threadIdx.x; }
 | 
					 | 
				
			||||||
INLINE int GetBlockIdInKernel() { return blockIdx.x; }
 | 
					 | 
				
			||||||
INLINE int GetNumberOfBlocksInKernel() { return gridDim.x; }
 | 
					 | 
				
			||||||
INLINE int GetNumberOfThreadsInBlock() { return blockDim.x; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue