brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 1972157 Raw
28 lines · plain
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include <clc/mem_fence/clc_mem_fence.h>10#include <clc/opencl/explicit_fence/explicit_memory_fence.h>11#include <clc/opencl/synchronization/utils.h>12 13_CLC_DEF _CLC_OVERLOAD void mem_fence(cl_mem_fence_flags flags) {14  int memory_scope = __opencl_get_memory_scope(flags);15  int memory_order = __ATOMIC_SEQ_CST;16  __CLC_MemorySemantics memory_semantics = __opencl_get_memory_semantics(flags);17  __clc_mem_fence(memory_scope, memory_order, memory_semantics);18}19 20// We do not have separate mechanism for read and write fences.21_CLC_DEF _CLC_OVERLOAD void read_mem_fence(cl_mem_fence_flags flags) {22  mem_fence(flags);23}24 25_CLC_DEF _CLC_OVERLOAD void write_mem_fence(cl_mem_fence_flags flags) {26  mem_fence(flags);27}28