[Various] libc/1712: Performance loss with glibc-2.1.[23] vs 2.1.1

Andreas Jaeger aj@suse.de
Mon May 1 03:57:00 GMT 2000


>>>>> Ulrich Drepper writes:

Ulrich> If somebody sees something different this most probably means the libc
Ulrich> was compiled incorrectly.  My guess is -fomit-frame-pointer.  This
Ulrich> will kill the stack alignment since suddenly __libc_start_main has a
Ulrich> different stack requirement.

I investigated further: 
I compiled glibc 2.1.3 with gcc 2.95 and gcc 2.96, both with:
CFLAGS= -momit-leaf-frame-pointer -pipe -O3 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -g -mpentiumpro -Wno-format -fstrict-aliasing

with 2.95 the runtime is about 1 minute, with 2.96 about 20s.  I guess
this settles the issue.  It's some kind of compiler bug which leads to
misaligned doubles on the stack and therefore penalizes ix86
processors.

I'm closing the report soonish, there's AFAIK nothing we can do in
glibc to avoid this.

Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.rhein-neckar.de


More information about the Libc-alpha mailing list