Skip to content

Commit c88bf9b

Browse files
committed
clc: disable 64bit atomic for 32bit spir and nvptx targets to fix warning 'large atomic operation may incur significant performance penalty'
Also rename clc/lib/generic/atomic/atomic_def.inc to clc_atomic_def.inc
1 parent d84d13d commit c88bf9b

16 files changed

+57
-33
lines changed

libclc/clc/lib/generic/atomic/clc_atomic_compare_exchange.inc

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,19 @@
77
//===----------------------------------------------------------------------===//
88

99
#ifdef __CLC_SCALAR
10+
11+
#if defined(__SPIR32__) || defined(CLC_NVPTX)
12+
#if (defined(__CLC_FPSIZE) && __CLC_FPSIZE <= 32) || \
13+
(defined(__CLC_GENSIZE) && (__CLC_GENSIZE == 32))
14+
#define __CLC_HAS_ATOMIC
15+
#endif
16+
#else // defined(__SPIR32__) || defined(CLC_NVPTX)
1017
#if defined(__CLC_FPSIZE) || (__CLC_GENSIZE >= 32)
18+
#define __CLC_HAS_ATOMIC
19+
#endif
20+
#endif // defined(__SPIR32__) || defined(CLC_NVPTX)
21+
22+
#ifdef __CLC_HAS_ATOMIC
1123

1224
#ifdef __CLC_FPSIZE
1325

@@ -46,5 +58,7 @@ __CLC_DEFINE_ATOMIC()
4658

4759
#undef __CLC_DEFINE_ATOMIC
4860

49-
#endif // defined(__CLC_FPSIZE) || (__CLC_GENSIZE >= 32)
61+
#endif // __CLC_HAS_ATOMIC
62+
#undef __CLC_HAS_ATOMIC
63+
5064
#endif // __CLC_SCALAR

libclc/clc/lib/generic/atomic/clc_atomic_dec.cl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
#define __IMPL_FUNCTION __scoped_atomic_fetch_add
1313
#define __CLC_INC_DEC
1414

15-
#define __CLC_BODY <atomic_def.inc>
15+
#define __CLC_BODY <clc_atomic_def.inc>
1616
#include <clc/integer/gentype.inc>

libclc/clc/lib/generic/atomic/atomic_def.inc renamed to libclc/clc/lib/generic/atomic/clc_atomic_def.inc

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,19 @@
77
//===----------------------------------------------------------------------===//
88

99
#ifdef __CLC_SCALAR
10+
11+
#if defined(__SPIR32__) || defined(CLC_NVPTX)
12+
#if (defined(__CLC_FPSIZE) && __CLC_FPSIZE <= 32) || \
13+
(defined(__CLC_GENSIZE) && (__CLC_GENSIZE == 32))
14+
#define __CLC_HAS_ATOMIC
15+
#endif
16+
#else // defined(__SPIR32__) || defined(CLC_NVPTX)
1017
#if defined(__CLC_FPSIZE) || (__CLC_GENSIZE >= 32)
18+
#define __CLC_HAS_ATOMIC
19+
#endif
20+
#endif // defined(__SPIR32__) || defined(CLC_NVPTX)
21+
22+
#ifdef __CLC_HAS_ATOMIC
1123

1224
#ifndef __CLC_PTR_CASTTYPE
1325
#define __CLC_PTR_CASTTYPE __CLC_GENTYPE
@@ -61,5 +73,7 @@ __CLC_DEFINE_ATOMIC()
6173

6274
#undef __CLC_DEFINE_ATOMIC
6375

64-
#endif // defined(__CLC_FPSIZE) || (__CLC_GENSIZE >= 32)
76+
#endif // __CLC_HAS_ATOMIC
77+
#undef __CLC_HAS_ATOMIC
78+
6579
#endif // __CLC_SCALAR

libclc/clc/lib/generic/atomic/clc_atomic_exchange.cl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@
1111
#define FUNCTION __clc_atomic_exchange
1212
#define __IMPL_FUNCTION __scoped_atomic_exchange_n
1313

14-
#define __CLC_BODY <atomic_def.inc>
14+
#define __CLC_BODY <clc_atomic_def.inc>
1515
#include <clc/integer/gentype.inc>
1616

1717
#undef __CLC_PTR_CASTTYPE
1818
#undef __CLC_AS_RETTYPE
1919
#define __CLC_PTR_CASTTYPE __CLC_BIT_INTN
2020
#define __CLC_AS_RETTYPE(x) __CLC_AS_GENTYPE(x)
2121

22-
#define __CLC_BODY <atomic_def.inc>
22+
#define __CLC_BODY <clc_atomic_def.inc>
2323
#include <clc/math/gentype.inc>

libclc/clc/lib/generic/atomic/clc_atomic_fetch_add.cl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
#define FUNCTION __clc_atomic_fetch_add
1212
#define __IMPL_FUNCTION __scoped_atomic_fetch_add
1313

14-
#define __CLC_BODY <atomic_def.inc>
14+
#define __CLC_BODY <clc_atomic_def.inc>
1515
#include <clc/integer/gentype.inc>
1616

17-
#define __CLC_BODY <atomic_def.inc>
17+
#define __CLC_BODY <clc_atomic_def.inc>
1818
#include <clc/math/gentype.inc>

libclc/clc/lib/generic/atomic/clc_atomic_fetch_and.cl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@
1111
#define FUNCTION __clc_atomic_fetch_and
1212
#define __IMPL_FUNCTION __scoped_atomic_fetch_and
1313

14-
#define __CLC_BODY <atomic_def.inc>
14+
#define __CLC_BODY <clc_atomic_def.inc>
1515
#include <clc/integer/gentype.inc>

libclc/clc/lib/generic/atomic/clc_atomic_fetch_max.cl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
#define FUNCTION __clc_atomic_fetch_max
1212
#define __IMPL_FUNCTION __scoped_atomic_fetch_max
1313

14-
#define __CLC_BODY <atomic_def.inc>
14+
#define __CLC_BODY <clc_atomic_def.inc>
1515
#include <clc/integer/gentype.inc>
1616

17-
#define __CLC_BODY <atomic_def.inc>
17+
#define __CLC_BODY <clc_atomic_def.inc>
1818
#include <clc/math/gentype.inc>

libclc/clc/lib/generic/atomic/clc_atomic_fetch_min.cl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
#define FUNCTION __clc_atomic_fetch_min
1212
#define __IMPL_FUNCTION __scoped_atomic_fetch_min
1313

14-
#define __CLC_BODY <atomic_def.inc>
14+
#define __CLC_BODY <clc_atomic_def.inc>
1515
#include <clc/integer/gentype.inc>
1616

17-
#define __CLC_BODY <atomic_def.inc>
17+
#define __CLC_BODY <clc_atomic_def.inc>
1818
#include <clc/math/gentype.inc>

libclc/clc/lib/generic/atomic/clc_atomic_fetch_or.cl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@
1111
#define FUNCTION __clc_atomic_fetch_or
1212
#define __IMPL_FUNCTION __scoped_atomic_fetch_or
1313

14-
#define __CLC_BODY <atomic_def.inc>
14+
#define __CLC_BODY <clc_atomic_def.inc>
1515
#include <clc/integer/gentype.inc>

libclc/clc/lib/generic/atomic/clc_atomic_fetch_sub.cl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
#define FUNCTION __clc_atomic_fetch_sub
1212
#define __IMPL_FUNCTION __scoped_atomic_fetch_sub
1313

14-
#define __CLC_BODY <atomic_def.inc>
14+
#define __CLC_BODY <clc_atomic_def.inc>
1515
#include <clc/integer/gentype.inc>
1616

17-
#define __CLC_BODY <atomic_def.inc>
17+
#define __CLC_BODY <clc_atomic_def.inc>
1818
#include <clc/math/gentype.inc>

0 commit comments

Comments
 (0)