This is the mail archive of the
libc-alpha@sourceware.cygnus.com
mailing list for the glibc project.
Re: [Various] libc/1712: Performance loss with glibc-2.1.[23] vs 2.1.1
- To: drepper at cygnus dot com (Ulrich Drepper)
- Subject: Re: [Various] libc/1712: Performance loss with glibc-2.1.[23] vs 2.1.1
- From: Andreas Jaeger <aj at suse dot de>
- Date: 01 May 2000 12:40:04 +0200
- Cc: libc-alpha Mailinglist <libc-alpha at sourceware dot cygnus dot com>, Milan Hodoscek <milan at ala dot cmm dot ki dot si>
- References: <u8r9bn4xa5.fsf@gromit.rhein-neckar.de><m3ya5vmsql.fsf@localhost.localnet>
>>>>> 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