This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Do not provide inlines for GCC build-in functions
- From: Andreas Jaeger <aj at suse dot de>
- To: libc-alpha at sources dot redhat dot com
- Date: Tue, 15 May 2012 21:36:34 +0200
- Subject: [PATCH] Do not provide inlines for GCC build-in functions
As mentioned previously
(http://sourceware.org/ml/libc-alpha/2012-05/msg00106.html), GCC 3.4
introduced builtin functions and thus the inlines are not needed at all.
Patch was tested on Linux/x86-64 and I compared libc.so and libm.so and
found no difference in the assembly.
Looking at math/test-idouble I found a couple of places where GCC used
now the builtins - instead of a function call like previously. So, GCC
does a better job than the inlines.
Ok to commit?
Andreas
2012-05-15 Andreas Jaeger <aj@suse.de>
* sysdeps/x86_64/fpu/bits/mathinline.h (lrintf): Make inline
function only available for GCCs before 3.4 since GCC 3.4
introduced a builtin.
(lrint): Likewise.
(llrintf): Likewise.
(llrint): Likewise.
(fmaxf): Likewise.
(fmax): Likewise.
(fminf): Likewise.
(fmin): Likewise.
(rint): Likewise.
(rintf): Likewise.
(nearbyint): Likewise.
(nearbyintf): Likewise.
(ceil): Likewise.
(ceilf): Likewise.
(floor): Likewise.
(floorf): Likewise.
diff --git a/sysdeps/x86_64/fpu/bits/mathinline.h b/sysdeps/x86_64/fpu/bits/mathinline.h
index 49a199b..310fcad 100644
--- a/sysdeps/x86_64/fpu/bits/mathinline.h
+++ b/sysdeps/x86_64/fpu/bits/mathinline.h
@@ -68,7 +68,10 @@ __END_NAMESPACE_C99
#endif
-#if __GNUC_PREREQ (2, 8) && !defined __NO_MATH_INLINES && defined __OPTIMIZE__
+#if __GNUC_PREREQ (2, 8) && !__GNUC_PREREQ (3, 4) \
+ && !defined __NO_MATH_INLINES && defined __OPTIMIZE__
+/* GCC 3.4 introduced builtins for all functions below, so
+ there's no need to define any of these inline functions. */
# ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
--
Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 NÃrnberg, Germany
GF: Jeff Hawn,Jennifer Guild,Felix ImendÃrffer,HRB16746 (AG NÃrnberg)
GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126