From 8382e5bc488fba642213d4f2900b5b84ff76ca04 Mon Sep 17 00:00:00 2001 From: Jan Vesely Date: Thu, 21 Jun 2018 19:27:39 +0000 Subject: [PATCH] atom: Use volatile pointers for cl_khr_{global,local}_int32_{base,extended}_atomics int64 versions were switched to volatile pointers in cl1.1 cl1.1 also renamed atom_ functions to atomic_ that use volatile pointers. CTS and applications use volatile pointers. Passes CTS on carrizo no return piglit tests still pass on turks. Reviewed-By: Aaron Watry Tested-By: Aaron Watry Signed-off-by: Jan Vesely llvm-svn: 335280 --- libclc/generic/include/clc/atom_decl_int32.inc | 2 +- .../clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h | 4 ++-- .../include/clc/cl_khr_global_int32_base_atomics/atom_dec.h | 4 ++-- .../include/clc/cl_khr_global_int32_base_atomics/atom_inc.h | 4 ++-- .../clc/cl_khr_local_int32_base_atomics/atom_cmpxchg.h | 4 ++-- .../include/clc/cl_khr_local_int32_base_atomics/atom_dec.h | 4 ++-- .../include/clc/cl_khr_local_int32_base_atomics/atom_inc.h | 4 ++-- libclc/generic/lib/atom_int32_binary.inc | 2 +- .../lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl | 2 +- .../generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl | 2 +- .../generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl | 2 +- .../lib/cl_khr_local_int32_base_atomics/atom_cmpxchg.cl | 2 +- .../generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl | 2 +- .../generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl | 2 +- 14 files changed, 20 insertions(+), 20 deletions(-) diff --git a/libclc/generic/include/clc/atom_decl_int32.inc b/libclc/generic/include/clc/atom_decl_int32.inc index dc763569c02b2..989ecfb2e2f19 100644 --- a/libclc/generic/include/clc/atom_decl_int32.inc +++ b/libclc/generic/include/clc/atom_decl_int32.inc @@ -1,5 +1,5 @@ #define __CLC_DECLARE_ATOM(ADDRSPACE, TYPE) \ - _CLC_OVERLOAD _CLC_DECL TYPE __CLC_FUNCTION (ADDRSPACE TYPE *, TYPE); + _CLC_OVERLOAD _CLC_DECL TYPE __CLC_FUNCTION (volatile ADDRSPACE TYPE *, TYPE); __CLC_DECLARE_ATOM(__CLC_ADDRESS_SPACE, int) __CLC_DECLARE_ATOM(__CLC_ADDRESS_SPACE, uint) diff --git a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h b/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h index 168f423396a67..d84a9eb58db39 100644 --- a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h +++ b/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h @@ -1,2 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL int atom_cmpxchg(global int *p, int cmp, int val); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_cmpxchg(global unsigned int *p, unsigned int cmp, unsigned int val); +_CLC_OVERLOAD _CLC_DECL int atom_cmpxchg(volatile global int *p, int cmp, int val); +_CLC_OVERLOAD _CLC_DECL unsigned int atom_cmpxchg(volatile global unsigned int *p, unsigned int cmp, unsigned int val); diff --git a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h b/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h index bbc872ce0527e..d3c1c45105cfd 100644 --- a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h +++ b/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h @@ -1,2 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL int atom_dec(global int *p); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_dec(global unsigned int *p); +_CLC_OVERLOAD _CLC_DECL int atom_dec(volatile global int *p); +_CLC_OVERLOAD _CLC_DECL unsigned int atom_dec(volatile global unsigned int *p); diff --git a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h b/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h index 050747c794034..712374d5e49da 100644 --- a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h +++ b/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h @@ -1,2 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL int atom_inc(global int *p); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_inc(global unsigned int *p); +_CLC_OVERLOAD _CLC_DECL int atom_inc(volatile global int *p); +_CLC_OVERLOAD _CLC_DECL unsigned int atom_inc(volatile global unsigned int *p); diff --git a/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_cmpxchg.h b/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_cmpxchg.h index e10a84f2cb47e..c967d365c4644 100644 --- a/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_cmpxchg.h +++ b/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_cmpxchg.h @@ -1,2 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL int atom_cmpxchg(local int *p, int cmp, int val); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_cmpxchg(local unsigned int *p, unsigned int cmp, unsigned int val); +_CLC_OVERLOAD _CLC_DECL int atom_cmpxchg(volatile local int *p, int cmp, int val); +_CLC_OVERLOAD _CLC_DECL unsigned int atom_cmpxchg(volatile local unsigned int *p, unsigned int cmp, unsigned int val); diff --git a/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_dec.h b/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_dec.h index e74d8fc12b92a..7bb33c9073ad6 100644 --- a/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_dec.h +++ b/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_dec.h @@ -1,2 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL int atom_dec(local int *p); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_dec(local unsigned int *p); +_CLC_OVERLOAD _CLC_DECL int atom_dec(volatile local int *p); +_CLC_OVERLOAD _CLC_DECL unsigned int atom_dec(volatile local unsigned int *p); diff --git a/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_inc.h b/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_inc.h index 718f1f2b80412..96e6f30a31147 100644 --- a/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_inc.h +++ b/libclc/generic/include/clc/cl_khr_local_int32_base_atomics/atom_inc.h @@ -1,2 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL int atom_inc(local int *p); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_inc(local unsigned int *p); +_CLC_OVERLOAD _CLC_DECL int atom_inc(volatile local int *p); +_CLC_OVERLOAD _CLC_DECL unsigned int atom_inc(volatile local unsigned int *p); diff --git a/libclc/generic/lib/atom_int32_binary.inc b/libclc/generic/lib/atom_int32_binary.inc index 185144c71c107..3af4c4bb0ae80 100644 --- a/libclc/generic/lib/atom_int32_binary.inc +++ b/libclc/generic/lib/atom_int32_binary.inc @@ -2,7 +2,7 @@ #include "utils.h" #define __CLC_ATOM_IMPL(AS, TYPE) \ -_CLC_OVERLOAD _CLC_DEF TYPE __CLC_XCONCAT(atom_, __CLC_ATOMIC_OP) (AS TYPE *p, TYPE val) { \ +_CLC_OVERLOAD _CLC_DEF TYPE __CLC_XCONCAT(atom_, __CLC_ATOMIC_OP) (volatile AS TYPE *p, TYPE val) { \ return __CLC_XCONCAT(atomic_, __CLC_ATOMIC_OP) (p, val); \ } diff --git a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl b/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl index 76477406c7f1d..becf76742eb95 100644 --- a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl +++ b/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl @@ -1,7 +1,7 @@ #include #define IMPL(TYPE) \ -_CLC_OVERLOAD _CLC_DEF TYPE atom_cmpxchg(global TYPE *p, TYPE cmp, TYPE val) { \ +_CLC_OVERLOAD _CLC_DEF TYPE atom_cmpxchg(volatile global TYPE *p, TYPE cmp, TYPE val) { \ return atomic_cmpxchg(p, cmp, val); \ } diff --git a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl b/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl index 290bec20e477a..22aeaf986c56f 100644 --- a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl +++ b/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl @@ -1,7 +1,7 @@ #include #define IMPL(TYPE) \ -_CLC_OVERLOAD _CLC_DEF TYPE atom_dec(global TYPE *p) { \ +_CLC_OVERLOAD _CLC_DEF TYPE atom_dec(volatile global TYPE *p) { \ return atomic_dec(p); \ } diff --git a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl b/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl index 422bb785291dd..2fd7102c485df 100644 --- a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl +++ b/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl @@ -1,7 +1,7 @@ #include #define IMPL(TYPE) \ -_CLC_OVERLOAD _CLC_DEF TYPE atom_inc(global TYPE *p) { \ +_CLC_OVERLOAD _CLC_DEF TYPE atom_inc(volatile global TYPE *p) { \ return atomic_inc(p); \ } diff --git a/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_cmpxchg.cl b/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_cmpxchg.cl index 16e957964dbb9..ea648f08bcb78 100644 --- a/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_cmpxchg.cl +++ b/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_cmpxchg.cl @@ -1,7 +1,7 @@ #include #define IMPL(TYPE) \ -_CLC_OVERLOAD _CLC_DEF TYPE atom_cmpxchg(local TYPE *p, TYPE cmp, TYPE val) { \ +_CLC_OVERLOAD _CLC_DEF TYPE atom_cmpxchg(volatile local TYPE *p, TYPE cmp, TYPE val) { \ return atomic_cmpxchg(p, cmp, val); \ } diff --git a/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl b/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl index d708a6d39427a..33772a02712ba 100644 --- a/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl +++ b/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl @@ -1,7 +1,7 @@ #include #define IMPL(TYPE) \ -_CLC_OVERLOAD _CLC_DEF TYPE atom_dec(local TYPE *p) { \ +_CLC_OVERLOAD _CLC_DEF TYPE atom_dec(volatile local TYPE *p) { \ return atomic_dec(p); \ } diff --git a/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl b/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl index 8878673d65d58..d91ff6573df5e 100644 --- a/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl +++ b/libclc/generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl @@ -1,7 +1,7 @@ #include #define IMPL(TYPE) \ -_CLC_OVERLOAD _CLC_DEF TYPE atom_inc(local TYPE *p) { \ +_CLC_OVERLOAD _CLC_DEF TYPE atom_inc(volatile local TYPE *p) { \ return atomic_inc(p); \ }