This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.29.9000-162-g4997e8f


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  4997e8f31e7415652c3dedec672c0e9bf8caa9ca (commit)
      from  019638910ea1e66c374c8efda0dcb2511f26ae59 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=4997e8f31e7415652c3dedec672c0e9bf8caa9ca

commit 4997e8f31e7415652c3dedec672c0e9bf8caa9ca
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Fri Feb 1 10:39:57 2019 -0200

    math: Enable some math builtins for clang
    
    This patch enable the builtin usage for clang for the C99 functions
    fpclassify, isfinite, isnormal, isnan, isinf, and sigbit.  This allows
    clang optimize the calls on frontend instead of call the appropriate
    glibc symbols.
    
    Checked on aarch64-linux-gnu and x86_64-linux-gnu. I checked the supported
    version for each builtin based on released version from clang/llvm.
    
    	* math/math.h (fpclassify, isfinite, isnormal, isnan): Use builtin for
    	clang 2.8.
    	(signbit): Use builtin for clang 3.3.
    	(isinf): Use builtin for clang 3.7.

diff --git a/ChangeLog b/ChangeLog
index 82e03e8..bd76c1e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-02-26  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	* math/math.h (fpclassify, isfinite, isnormal, isnan): Use builtin for
+	clang 2.8.
+	(signbit): Use builtin for clang 3.3.
+	(isinf): Use builtin for clang 3.7.
+
 2019-03-25  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
 	* sysdeps/powerpc/fpu/s_float_bitwise.h: Remove file.
diff --git a/math/math.h b/math/math.h
index ffbc24a..d70ec38 100644
--- a/math/math.h
+++ b/math/math.h
@@ -874,7 +874,8 @@ enum
    the __SUPPORT_SNAN__ check may be skipped for those versions.  */
 
 /* Return number of classification appropriate for X.  */
-# if __GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__			      \
+# if ((__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__)		      \
+      || __glibc_clang_prereq (2,8))					      \
      && (!defined __OPTIMIZE_SIZE__ || defined __cplusplus)
      /* The check for __cplusplus allows the use of the builtin, even
 	when optimization for size is on.  This is provided for
@@ -889,7 +890,7 @@ enum
 # endif
 
 /* Return nonzero value if sign of X is negative.  */
-# if __GNUC_PREREQ (6,0)
+# if __GNUC_PREREQ (6,0) || __glibc_clang_prereq (3,3)
 #  define signbit(x) __builtin_signbit (x)
 # elif defined __cplusplus
   /* In C++ mode, __MATH_TG cannot be used, because it relies on
@@ -907,14 +908,16 @@ enum
 # endif
 
 /* Return nonzero value if X is not +-Inf or NaN.  */
-# if __GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__
+# if (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \
+     || __glibc_clang_prereq (2,8)
 #  define isfinite(x) __builtin_isfinite (x)
 # else
 #  define isfinite(x) __MATH_TG ((x), __finite, (x))
 # endif
 
 /* Return nonzero value if X is neither zero, subnormal, Inf, nor NaN.  */
-# if __GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__
+# if (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \
+     || __glibc_clang_prereq (2,8)
 #  define isnormal(x) __builtin_isnormal (x)
 # else
 #  define isnormal(x) (fpclassify (x) == FP_NORMAL)
@@ -922,7 +925,8 @@ enum
 
 /* Return nonzero value if X is a NaN.  We could use `fpclassify' but
    we already have this functions `__isnan' and it is faster.  */
-# if __GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__
+# if (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \
+     || __glibc_clang_prereq (2,8)
 #  define isnan(x) __builtin_isnan (x)
 # else
 #  define isnan(x) __MATH_TG ((x), __isnan, (x))
@@ -939,7 +943,8 @@ enum
 #  define isinf(x) \
     (__builtin_types_compatible_p (__typeof (x), _Float128) \
      ? __isinff128 (x) : __builtin_isinf_sign (x))
-# elif __GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__
+# elif (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \
+       || __glibc_clang_prereq (3,7)
 #  define isinf(x) __builtin_isinf_sign (x)
 # else
 #  define isinf(x) __MATH_TG ((x), __isinf, (x))

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog   |    7 +++++++
 math/math.h |   17 +++++++++++------
 2 files changed, 18 insertions(+), 6 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]