Add prefix __ to memory scope and order
This commit is contained in:
@@ -658,21 +658,21 @@ void __assertfail(const char * __assertion,
|
|||||||
typedef unsigned __cl_mem_fence_flags;
|
typedef unsigned __cl_mem_fence_flags;
|
||||||
|
|
||||||
typedef enum __memory_scope {
|
typedef enum __memory_scope {
|
||||||
memory_scope_work_item = __OPENCL_MEMORY_SCOPE_WORK_ITEM,
|
__memory_scope_work_item = __OPENCL_MEMORY_SCOPE_WORK_ITEM,
|
||||||
memory_scope_work_group = __OPENCL_MEMORY_SCOPE_WORK_GROUP,
|
__memory_scope_work_group = __OPENCL_MEMORY_SCOPE_WORK_GROUP,
|
||||||
memory_scope_device = __OPENCL_MEMORY_SCOPE_DEVICE,
|
__memory_scope_device = __OPENCL_MEMORY_SCOPE_DEVICE,
|
||||||
memory_scope_all_svm_devices = __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES,
|
__memory_scope_all_svm_devices = __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES,
|
||||||
memory_scope_sub_group = __OPENCL_MEMORY_SCOPE_SUB_GROUP
|
__memory_scope_sub_group = __OPENCL_MEMORY_SCOPE_SUB_GROUP
|
||||||
} __memory_scope;
|
} __memory_scope;
|
||||||
|
|
||||||
// enum values aligned with what clang uses in EmitAtomicExpr()
|
// enum values aligned with what clang uses in EmitAtomicExpr()
|
||||||
typedef enum __memory_order
|
typedef enum __memory_order
|
||||||
{
|
{
|
||||||
memory_order_relaxed = __ATOMIC_RELAXED,
|
__memory_order_relaxed = __ATOMIC_RELAXED,
|
||||||
memory_order_acquire = __ATOMIC_ACQUIRE,
|
__memory_order_acquire = __ATOMIC_ACQUIRE,
|
||||||
memory_order_release = __ATOMIC_RELEASE,
|
__memory_order_release = __ATOMIC_RELEASE,
|
||||||
memory_order_acq_rel = __ATOMIC_ACQ_REL,
|
__memory_order_acq_rel = __ATOMIC_ACQ_REL,
|
||||||
memory_order_seq_cst = __ATOMIC_SEQ_CST
|
__memory_order_seq_cst = __ATOMIC_SEQ_CST
|
||||||
} __memory_order;
|
} __memory_order;
|
||||||
|
|
||||||
// __llvm_fence* functions from device-libs/irif/src/fence.ll
|
// __llvm_fence* functions from device-libs/irif/src/fence.ll
|
||||||
@@ -692,21 +692,21 @@ static void hc_work_group_barrier(__cl_mem_fence_flags flags, __memory_scope sco
|
|||||||
{
|
{
|
||||||
if (flags) {
|
if (flags) {
|
||||||
switch(scope) {
|
switch(scope) {
|
||||||
case memory_scope_work_item: break;
|
case __memory_scope_work_item: break;
|
||||||
case memory_scope_sub_group: __llvm_fence_rel_sg(); break;
|
case __memory_scope_sub_group: __llvm_fence_rel_sg(); break;
|
||||||
case memory_scope_work_group: __llvm_fence_rel_wg(); break;
|
case __memory_scope_work_group: __llvm_fence_rel_wg(); break;
|
||||||
case memory_scope_device: __llvm_fence_rel_dev(); break;
|
case __memory_scope_device: __llvm_fence_rel_dev(); break;
|
||||||
case memory_scope_all_svm_devices: __llvm_fence_rel_sys(); break;
|
case __memory_scope_all_svm_devices: __llvm_fence_rel_sys(); break;
|
||||||
}
|
}
|
||||||
//atomic_work_item_fence(flags, memory_order_release, scope);
|
//atomic_work_item_fence(flags, memory_order_release, scope);
|
||||||
__builtin_amdgcn_s_barrier();
|
__builtin_amdgcn_s_barrier();
|
||||||
//atomic_work_item_fence(flags, memory_order_acquire, scope);
|
//atomic_work_item_fence(flags, memory_order_acquire, scope);
|
||||||
switch(scope) {
|
switch(scope) {
|
||||||
case memory_scope_work_item: break;
|
case __memory_scope_work_item: break;
|
||||||
case memory_scope_sub_group: __llvm_fence_acq_sg(); break;
|
case __memory_scope_sub_group: __llvm_fence_acq_sg(); break;
|
||||||
case memory_scope_work_group: __llvm_fence_acq_wg(); break;
|
case __memory_scope_work_group: __llvm_fence_acq_wg(); break;
|
||||||
case memory_scope_device: __llvm_fence_acq_dev(); break;
|
case __memory_scope_device: __llvm_fence_acq_dev(); break;
|
||||||
case memory_scope_all_svm_devices: __llvm_fence_acq_sys(); break;
|
case __memory_scope_all_svm_devices: __llvm_fence_acq_sys(); break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
__builtin_amdgcn_s_barrier();
|
__builtin_amdgcn_s_barrier();
|
||||||
@@ -717,7 +717,7 @@ __device__
|
|||||||
inline
|
inline
|
||||||
static void hc_barrier(int n)
|
static void hc_barrier(int n)
|
||||||
{
|
{
|
||||||
hc_work_group_barrier((__cl_mem_fence_flags)n, memory_scope_work_group);
|
hc_work_group_barrier((__cl_mem_fence_flags)n, __memory_scope_work_group);
|
||||||
}
|
}
|
||||||
|
|
||||||
__device__
|
__device__
|
||||||
|
|||||||
Reference in New Issue
Block a user