https://github.com/wenju-he updated https://github.com/llvm/llvm-project/pull/158791
>From 12d6bed3abb8bcb0f6be1703d652f26dad993a7f Mon Sep 17 00:00:00 2001 From: Wenju He <wenju...@intel.com> Date: Tue, 16 Sep 2025 08:16:27 +0200 Subject: [PATCH 1/2] [libclc] Replace typo _CLC_DECL with _CLC_DEF for function definition Some built-ins miss alwaysinline attribute due to the typo. --- libclc/clc/include/clc/misc/shuffle2_def.inc | 8 ++++---- libclc/clc/include/clc/misc/shuffle_def.inc | 8 ++++---- .../lib/generic/atomic/clc_atomic_compare_exchange.inc | 4 ++-- libclc/clc/lib/generic/atomic/clc_atomic_def.inc | 8 ++++---- libclc/clc/lib/generic/math/clc_sincos_helpers.inc | 4 ++-- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/libclc/clc/include/clc/misc/shuffle2_def.inc b/libclc/clc/include/clc/misc/shuffle2_def.inc index f25d281af1169..c319f57f880fe 100644 --- a/libclc/clc/include/clc/misc/shuffle2_def.inc +++ b/libclc/clc/include/clc/misc/shuffle2_def.inc @@ -18,22 +18,22 @@ // The return type is same base type as the input type, with the same vector // size as the mask. Elements in the mask must be the same size (number of bits) // as the input value., e.g. char8 ret = shuffle(char2 x, uchar8 mask); -_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION(__CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 2) x, __CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 2) y, __CLC_U_GENTYPE mask) { return __CLC_IMPL_FUNCTION(__CLC_FUNCTION)(x, y, mask); } -_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION(__CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 4) x, __CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 4) y, __CLC_U_GENTYPE mask) { return __CLC_IMPL_FUNCTION(__CLC_FUNCTION)(x, y, mask); } -_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION(__CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 8) x, __CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 8) y, __CLC_U_GENTYPE mask) { return __CLC_IMPL_FUNCTION(__CLC_FUNCTION)(x, y, mask); } -_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION( +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( __CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 16) x, __CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 16) y, __CLC_U_GENTYPE mask) { return __CLC_IMPL_FUNCTION(__CLC_FUNCTION)(x, y, mask); diff --git a/libclc/clc/include/clc/misc/shuffle_def.inc b/libclc/clc/include/clc/misc/shuffle_def.inc index 49a47daf821fe..0f0340979c557 100644 --- a/libclc/clc/include/clc/misc/shuffle_def.inc +++ b/libclc/clc/include/clc/misc/shuffle_def.inc @@ -18,19 +18,19 @@ // The return type is same base type as the input type, with the same vector // size as the mask. Elements in the mask must be the same size (number of bits) // as the input value., e.g. char8 ret = shuffle(char2 x, uchar8 mask); -_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION(__CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 2) x, __CLC_U_GENTYPE mask) { return __CLC_IMPL_FUNCTION(__CLC_FUNCTION)(x, mask); } -_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION(__CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 4) x, __CLC_U_GENTYPE mask) { return __CLC_IMPL_FUNCTION(__CLC_FUNCTION)(x, mask); } -_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION(__CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 8) x, __CLC_U_GENTYPE mask) { return __CLC_IMPL_FUNCTION(__CLC_FUNCTION)(x, mask); } -_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION( +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( __CLC_XCONCAT(__CLC_SCALAR_GENTYPE, 16) x, __CLC_U_GENTYPE mask) { return __CLC_IMPL_FUNCTION(__CLC_FUNCTION)(x, mask); } diff --git a/libclc/clc/lib/generic/atomic/clc_atomic_compare_exchange.inc b/libclc/clc/lib/generic/atomic/clc_atomic_compare_exchange.inc index 32ff9b45b769e..74284fd61024c 100644 --- a/libclc/clc/lib/generic/atomic/clc_atomic_compare_exchange.inc +++ b/libclc/clc/lib/generic/atomic/clc_atomic_compare_exchange.inc @@ -24,7 +24,7 @@ #ifdef __CLC_FPSIZE #define __CLC_DEFINE_ATOMIC(ADDRSPACE) \ - _CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __clc_atomic_compare_exchange( \ + _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_atomic_compare_exchange( \ volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Comparator, \ __CLC_GENTYPE Value, int MemoryOrderEqual, int MemoryOrderUnequal, \ int MemoryScope) { \ @@ -38,7 +38,7 @@ #else #define __CLC_DEFINE_ATOMIC(ADDRSPACE) \ - _CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __clc_atomic_compare_exchange( \ + _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_atomic_compare_exchange( \ volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Comparator, \ __CLC_GENTYPE Value, int MemoryOrderEqual, int MemoryOrderUnequal, \ int MemoryScope) { \ diff --git a/libclc/clc/lib/generic/atomic/clc_atomic_def.inc b/libclc/clc/lib/generic/atomic/clc_atomic_def.inc index c1a0731eb8439..14a09b1f09f5c 100644 --- a/libclc/clc/lib/generic/atomic/clc_atomic_def.inc +++ b/libclc/clc/lib/generic/atomic/clc_atomic_def.inc @@ -31,7 +31,7 @@ #ifdef __CLC_NO_VALUE_ARG #define __CLC_DEFINE_ATOMIC(ADDRSPACE) \ - _CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION( \ + _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( \ volatile ADDRSPACE __CLC_GENTYPE *Ptr, int MemoryOrder, \ int MemoryScope) { \ return __CLC_AS_RETTYPE(__CLC_IMPL_FUNCTION( \ @@ -39,7 +39,7 @@ } #elif defined(__CLC_INC_DEC) #define __CLC_DEFINE_ATOMIC(ADDRSPACE) \ - _CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION( \ + _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( \ volatile ADDRSPACE __CLC_GENTYPE *Ptr, int MemoryOrder, \ int MemoryScope) { \ return __CLC_AS_RETTYPE( \ @@ -48,7 +48,7 @@ } #elif defined(__CLC_RETURN_VOID) #define __CLC_DEFINE_ATOMIC(ADDRSPACE) \ - _CLC_OVERLOAD _CLC_DECL void __CLC_FUNCTION( \ + _CLC_OVERLOAD _CLC_DEF void __CLC_FUNCTION( \ volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, \ int MemoryOrder, int MemoryScope) { \ __CLC_IMPL_FUNCTION((ADDRSPACE __CLC_PTR_CASTTYPE *)Ptr, Value, \ @@ -56,7 +56,7 @@ } #else #define __CLC_DEFINE_ATOMIC(ADDRSPACE) \ - _CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION( \ + _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( \ volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, \ int MemoryOrder, int MemoryScope) { \ return __CLC_AS_RETTYPE( \ diff --git a/libclc/clc/lib/generic/math/clc_sincos_helpers.inc b/libclc/clc/lib/generic/math/clc_sincos_helpers.inc index bddc0998cf950..9a46170a3db38 100644 --- a/libclc/clc/lib/generic/math/clc_sincos_helpers.inc +++ b/libclc/clc/lib/generic/math/clc_sincos_helpers.inc @@ -74,8 +74,8 @@ _CLC_DEF _CLC_OVERLOAD __CLC_FLOATN __clc_cosf_piby4(__CLC_FLOATN x, return ret; } -_CLC_DECL _CLC_OVERLOAD __CLC_FLOATN __clc_tanf_piby4(__CLC_FLOATN x, - __CLC_INTN regn) { +_CLC_DEF _CLC_OVERLOAD __CLC_FLOATN __clc_tanf_piby4(__CLC_FLOATN x, + __CLC_INTN regn) { // Core Remez [1,2] approximation to tan(x) on the interval [0,pi/4]. __CLC_FLOATN r = x * x; >From f31ef5f86e2a5f8dd4887e670bc9a6005eb91922 Mon Sep 17 00:00:00 2001 From: Wenju He <wenju...@intel.com> Date: Tue, 16 Sep 2025 09:43:55 +0200 Subject: [PATCH 2/2] remove __attribute__((always_inline)) from _CLC_DEF and _CLC_INLINE --- libclc/clc/include/clc/clcfunc.h | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/libclc/clc/include/clc/clcfunc.h b/libclc/clc/include/clc/clcfunc.h index 30feaf99a4d31..5457a1892ac87 100644 --- a/libclc/clc/include/clc/clcfunc.h +++ b/libclc/clc/include/clc/clcfunc.h @@ -11,17 +11,13 @@ #define _CLC_OVERLOAD __attribute__((overloadable)) #define _CLC_DECL -#define _CLC_INLINE __attribute__((always_inline)) inline +#define _CLC_INLINE inline #define _CLC_CONST __attribute__((const)) -// avoid inlines for SPIR-V related targets since we'll optimise later in the -// chain -#if defined(CLC_SPIRV) -#define _CLC_DEF -#elif defined(CLC_CLSPV) +#if defined(CLC_CLSPV) #define _CLC_DEF __attribute__((noinline)) __attribute__((clspv_libclc_builtin)) #else -#define _CLC_DEF __attribute__((always_inline)) +#define _CLC_DEF #endif #if __OPENCL_C_VERSION__ == CL_VERSION_2_0 || \ _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits