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.28.9000-204-g2dd8e58


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  2dd8e58cc533ee840d37725b11bc0dc0308a5dc0 (commit)
      from  d0a74159792477e5922f53fa2aa6d58eb8265a14 (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=2dd8e58cc533ee840d37725b11bc0dc0308a5dc0

commit 2dd8e58cc533ee840d37725b11bc0dc0308a5dc0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 21 00:37:11 2018 -0700

    x86: Don't include <x86intrin.h>
    
    Use __builtin_ia32_rdtsc directly since including <x86intrin.h> makes
    building glibc very slow.  On Intel Core i5-6260U, this patch reduces
    x86-64 build time from 8 minutes 33 seconds to 3 minutes 48 seconds
    with "make -j4" and GCC 8.2.1.
    
    	* sysdeps/x86/hp-timing.h: Don't include <x86intrin.h>.
    	(HP_TIMING_NOW): Replace _rdtsc with __builtin_ia32_rdtsc.

diff --git a/ChangeLog b/ChangeLog
index eb1b0db..c3fbad1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-10-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86/hp-timing.h: Don't include <x86intrin.h>.
+	(HP_TIMING_NOW): Replace _rdtsc with __builtin_ia32_rdtsc.
+
 2018-10-19  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #23794]
diff --git a/sysdeps/x86/hp-timing.h b/sysdeps/x86/hp-timing.h
index 1c20e9d..77a1360 100644
--- a/sysdeps/x86/hp-timing.h
+++ b/sysdeps/x86/hp-timing.h
@@ -22,8 +22,6 @@
 #include <isa.h>
 
 #if MINIMUM_ISA == 686 || MINIMUM_ISA == 8664
-# include <x86intrin.h>
-
 /* We always assume having the timestamp register.  */
 # define HP_TIMING_AVAIL	(1)
 # define HP_SMALL_TIMING_AVAIL	(1)
@@ -38,8 +36,11 @@ typedef unsigned long long int hp_timing_t;
    might not be 100% accurate since there might be some more instructions
    running in this moment.  This could be changed by using a barrier like
    'cpuid' right before the `rdtsc' instruciton.  But we are not interested
-   in accurate clock cycles here so we don't do this.  */
-# define HP_TIMING_NOW(Var)	((Var) = _rdtsc ())
+   in accurate clock cycles here so we don't do this.
+
+   NB: Use __builtin_ia32_rdtsc directly since including <x86intrin.h>
+   makes building glibc very slow.  */
+# define HP_TIMING_NOW(Var)	((Var) = __builtin_ia32_rdtsc ())
 
 # include <hp-timing-common.h>
 #else

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

Summary of changes:
 ChangeLog               |    5 +++++
 sysdeps/x86/hp-timing.h |    9 +++++----
 2 files changed, 10 insertions(+), 4 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]