Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions libclc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -477,6 +477,7 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
)

list( APPEND build_flags
-Xclang -fdeclare-opencl-builtins -Xclang -finclude-default-header
-I${CMAKE_CURRENT_SOURCE_DIR}/opencl/include
)

Expand Down
13 changes: 6 additions & 7 deletions libclc/clc/include/clc/atomic/atomic_decl.inc
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,23 @@
#ifdef __CLC_NO_VALUE_ARG
#define __CLC_DECLARE_ATOMIC(ADDRSPACE) \
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION( \
volatile ADDRSPACE __CLC_GENTYPE *Ptr, int MemoryOrder, \
int MemoryScope);
ADDRSPACE __CLC_GENTYPE *Ptr, int MemoryOrder, int MemoryScope);
#elif defined(__CLC_RETURN_VOID)
#define __CLC_DECLARE_ATOMIC(ADDRSPACE) \
_CLC_OVERLOAD _CLC_DECL void __CLC_FUNCTION( \
volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, \
int MemoryOrder, int MemoryScope);
ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, int MemoryOrder, \
int MemoryScope);
#elif defined(__CLC_COMPARE_EXCHANGE)
#define __CLC_DECLARE_ATOMIC(ADDRSPACE) \
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION( \
volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Comparator, \
ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Comparator, \
__CLC_GENTYPE Value, int MemoryOrderEqual, int MemoryOrderUnequal, \
int MemoryScope);
#else
#define __CLC_DECLARE_ATOMIC(ADDRSPACE) \
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION( \
volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, \
int MemoryOrder, int MemoryScope);
ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, int MemoryOrder, \
int MemoryScope);
#endif

__CLC_DECLARE_ATOMIC(global)
Expand Down
48 changes: 48 additions & 0 deletions libclc/clc/include/clc/float/definitions.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,15 @@
//
//===----------------------------------------------------------------------===//

#ifndef MAXFLOAT
#define MAXFLOAT 0x1.fffffep127f
#endif
#ifndef HUGE_VALF
#define HUGE_VALF __builtin_huge_valf()
#endif
#ifndef INFINITY
#define INFINITY __builtin_inff()
#endif

#define FLT_DIG 6
#define FLT_MANT_DIG 24
Expand All @@ -17,33 +23,67 @@
#define FLT_MIN_10_EXP -37
#define FLT_MIN_EXP -125
#define FLT_RADIX 2
#ifndef FLT_MAX
#define FLT_MAX MAXFLOAT
#endif
#define FLT_MIN 0x1.0p-126f
#define FLT_EPSILON 0x1.0p-23f
#define FLT_NAN __builtin_nanf("")

#ifndef FP_ILOGB0
#define FP_ILOGB0 (-2147483647 - 1)
#endif
#ifndef FP_ILOGBNAN
#define FP_ILOGBNAN 2147483647
#endif

#ifndef M_E_F
#define M_E_F 0x1.5bf0a8p+1f
#endif
#ifndef M_LOG2E_F
#define M_LOG2E_F 0x1.715476p+0f
#endif
#ifndef M_LOG10E_F
#define M_LOG10E_F 0x1.bcb7b2p-2f
#endif
#ifndef M_LN2_F
#define M_LN2_F 0x1.62e430p-1f
#endif
#ifndef M_LN10_F
#define M_LN10_F 0x1.26bb1cp+1f
#endif
#ifndef M_PI_F
#define M_PI_F 0x1.921fb6p+1f
#endif
#ifndef M_PI_2_F
#define M_PI_2_F 0x1.921fb6p+0f
#endif
#ifndef M_PI_4_F
#define M_PI_4_F 0x1.921fb6p-1f
#endif
#ifndef M_1_PI_F
#define M_1_PI_F 0x1.45f306p-2f
#endif
#ifndef M_2_PI_F
#define M_2_PI_F 0x1.45f306p-1f
#endif
#ifndef M_2_SQRTPI_F
#define M_2_SQRTPI_F 0x1.20dd76p+0f
#endif
#ifndef M_SQRT2_F
#define M_SQRT2_F 0x1.6a09e6p+0f
#endif
#ifndef M_SQRT1_2_F
#define M_SQRT1_2_F 0x1.6a09e6p-1f
#endif

#define M_LOG210_F 0x1.a934f0p+1f

#ifdef cl_khr_fp64

#ifndef HUGE_VAL
#define HUGE_VAL __builtin_huge_val()
#endif

#define DBL_DIG 15
#define DBL_MANT_DIG 53
Expand Down Expand Up @@ -82,11 +122,19 @@
#define HALF_MIN_EXP -13

#define HALF_RADIX 2
#ifndef HALF_MAX
#define HALF_MAX 0x1.ffcp15h
#endif
#ifndef HALF_MIN
#define HALF_MIN 0x1.0p-14h
#endif
#ifndef HALF_EPSILON
#define HALF_EPSILON 0x1.0p-10h
#endif
#define HALF_NAN __builtin_nanf16("")

#ifndef M_LOG2E_H
#define M_LOG2E_H 0x1.714p+0h
#endif

#endif
8 changes: 8 additions & 0 deletions libclc/clc/include/clc/integer/definitions.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,23 @@

#define CHAR_BIT 8
#define INT_MAX 2147483647
#ifndef INT_MIN
#define INT_MIN (-2147483647 - 1)
#endif
#define LONG_MAX 0x7fffffffffffffffL
#ifndef LONG_MIN
#define LONG_MIN (-0x7fffffffffffffffL - 1)
#endif
#define CHAR_MAX SCHAR_MAX
#define CHAR_MIN SCHAR_MIN
#define SCHAR_MAX 127
#ifndef SCHAR_MIN
#define SCHAR_MIN (-127 - 1)
#endif
#define SHRT_MAX 32767
#ifndef SHRT_MIN
#define SHRT_MIN (-32767 - 1)
#endif
#define UCHAR_MAX 255
#define UCHAR_MIN 0
#define USHRT_MAX 65535
Expand Down
4 changes: 2 additions & 2 deletions libclc/clc/lib/generic/atomic/clc_atomic_compare_exchange.inc
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

#define __CLC_DEFINE_ATOMIC(ADDRSPACE) \
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_atomic_compare_exchange( \
volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Comparator, \
ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Comparator, \
__CLC_GENTYPE Value, int MemoryOrderEqual, int MemoryOrderUnequal, \
int MemoryScope) { \
__CLC_U_GENTYPE Comp = __CLC_AS_U_GENTYPE(Comparator); \
Expand All @@ -39,7 +39,7 @@

#define __CLC_DEFINE_ATOMIC(ADDRSPACE) \
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_atomic_compare_exchange( \
volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Comparator, \
ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Comparator, \
__CLC_GENTYPE Value, int MemoryOrderEqual, int MemoryOrderUnequal, \
int MemoryScope) { \
__scoped_atomic_compare_exchange_n(Ptr, &Comparator, Value, false, \
Expand Down
14 changes: 6 additions & 8 deletions libclc/clc/lib/generic/atomic/clc_atomic_def.inc
Original file line number Diff line number Diff line change
Expand Up @@ -36,32 +36,30 @@
#ifdef __CLC_NO_VALUE_ARG
#define __CLC_DEFINE_ATOMIC(ADDRSPACE) \
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( \
volatile ADDRSPACE __CLC_GENTYPE *Ptr, int MemoryOrder, \
int MemoryScope) { \
ADDRSPACE __CLC_GENTYPE *Ptr, int MemoryOrder, int MemoryScope) { \
return __CLC_AS_RETTYPE(__CLC_IMPL_FUNCTION( \
(ADDRSPACE __CLC_CASTTYPE *)Ptr, MemoryOrder, MemoryScope)); \
}
#elif defined(__CLC_INC_DEC)
#define __CLC_DEFINE_ATOMIC(ADDRSPACE) \
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( \
volatile ADDRSPACE __CLC_GENTYPE *Ptr, int MemoryOrder, \
int MemoryScope) { \
ADDRSPACE __CLC_GENTYPE *Ptr, int MemoryOrder, int MemoryScope) { \
return __CLC_IMPL_FUNCTION(Ptr, (__CLC_U_GENTYPE)(-1), MemoryOrder, \
MemoryScope); \
}
#elif defined(__CLC_RETURN_VOID)
#define __CLC_DEFINE_ATOMIC(ADDRSPACE) \
_CLC_OVERLOAD _CLC_DEF void __CLC_FUNCTION( \
volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, \
int MemoryOrder, int MemoryScope) { \
ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, int MemoryOrder, \
int MemoryScope) { \
__CLC_IMPL_FUNCTION((ADDRSPACE __CLC_CASTTYPE *)Ptr, \
__CLC_AS_CASTTYPE(Value), MemoryOrder, MemoryScope); \
}
#else
#define __CLC_DEFINE_ATOMIC(ADDRSPACE) \
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( \
volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, \
int MemoryOrder, int MemoryScope) { \
ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, int MemoryOrder, \
int MemoryScope) { \
return __CLC_AS_RETTYPE(__CLC_IMPL_FUNCTION( \
(ADDRSPACE __CLC_CASTTYPE *)Ptr, __CLC_AS_CASTTYPE(Value), \
MemoryOrder, MemoryScope)); \
Expand Down
6 changes: 5 additions & 1 deletion libclc/cmake/modules/AddLibclc.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,13 @@ function(compile_to_bc)
if( NOT ${FILE_EXT} STREQUAL ".ll" )
# Pass '-c' when not running the preprocessor
set( PP_OPTS -c )
set( EXTRA_OPTS ${ARG_EXTRA_OPTS} )
else()
set( PP_OPTS -E;-P )
set( TMP_SUFFIX .tmp )
string( REPLACE "-Xclang;-fdeclare-opencl-builtins;-Xclang;-finclude-default-header"
"" EXTRA_OPTS "${ARG_EXTRA_OPTS}"
)
endif()

set( TARGET_ARG )
Expand All @@ -48,7 +52,7 @@ function(compile_to_bc)
COMMAND ${clang_exe}
${TARGET_ARG}
${PP_OPTS}
${ARG_EXTRA_OPTS}
${EXTRA_OPTS}
-MD -MF ${ARG_OUTPUT}.d -MT ${ARG_OUTPUT}${TMP_SUFFIX}
# LLVM 13 enables standard includes by default - we don't want
# those when pre-processing IR. We disable it unconditionally.
Expand Down
92 changes: 0 additions & 92 deletions libclc/opencl/include/clc/opencl/as_type.h

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
#ifndef __CLC_OPENCL_ATOMIC_ATOMIC_COMPARE_EXCHANGE_STRONG_H__
#define __CLC_OPENCL_ATOMIC_ATOMIC_COMPARE_EXCHANGE_STRONG_H__

#include <clc/opencl/opencl-base.h>

#define __CLC_FUNCTION atomic_compare_exchange_strong
#define __CLC_COMPARE_EXCHANGE

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
#ifndef __CLC_OPENCL_ATOMIC_ATOMIC_COMPARE_EXCHANGE_WEAK_H__
#define __CLC_OPENCL_ATOMIC_ATOMIC_COMPARE_EXCHANGE_WEAK_H__

#include <clc/opencl/opencl-base.h>

#define __CLC_FUNCTION atomic_compare_exchange_weak
#define __CLC_COMPARE_EXCHANGE

Expand Down
Loading
Loading