FreeBSD 5.2 v/s FreeBSD 4.9 MFLOPS performance
(gcc3.3.3v/sgcc2.9.5)
Alexander Kabaev
ak03 at gte.com
Mon Feb 16 14:23:23 PST 2004
On Mon, 16 Feb 2004 16:36:35 -0500
"Juan Tumani" <jtumani55 at hotmail.com> wrote:
> Thanks Matt for picking up on the linker problem. Patching the kernel
> would, to me, be masking the real problem.
>
> What other "improvements" does gcc333 have over gcc295 that might
> explain why it's linked products run in a half-fast mode (take twice+
> as long)?
>
> JT
>
>
> >From: Matthew Dillon <dillon at apollo.backplane.com>
> >To: "Juan Tumani" <jtumani55 at hotmail.com>
> >CC: des at des.no, freebsd-hackers at freebsd.org
> >Subject: Re: FreeBSD 5.2 v/s FreeBSD 4.9 MFLOPS performance
> >(gcc3.3.3v/sgcc2.9.5)
> >Date: Mon, 16 Feb 2004 13:12:15 -0800 (PST)
> >
> > I'm surprised Bruce hasn't chimed in here yet. I guess he's
> > tired of repeating himself.
> >
> > In 4.9, libcsu, which generates crt1.o (which is the start code
> > for C programs which the linker links in automatically) has this
> > line in
> >it:
> >
> > andl $~0xf, %%esp # align stack to 16-byte
> > boundary
> >
> > So anything linked with 4.9 is going to align the stack on a
> > 16 byte boundary no matter WHAT the kernel does.
> >
> > FreeBSD-5 does not have this alignment in its crt1.o because
> > GCC3 automatically aligns the stack on a per-procedure basis.
> > Or at least it is supposed to. Maybe it's broke? :-)
> >
> > -Matt
> >
Quite possibly. I run the same test using the latest GCC snapshot
configured as system compiler and did not see such a massive slowdown.
GCC 3.3.3 wins slightly on most tests and loses only on module #2 of the
flops.c program posted here.
--
Alexander Kabaev
More information about the freebsd-hackers
mailing list