Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 08 Feb 2003 16:08:19 -0800
From:      Terry Lambert <tlambert2@mindspring.com>
To:        David Schultz <dschultz@uclink.Berkeley.EDU>
Cc:        Ray Kohler <ataraxia@cox.net>, freebsd-current@FreeBSD.ORG
Subject:   Re: Compiling with high optimization?
Message-ID:  <3E459BF3.BB3FC381@mindspring.com>
References:  <20030208173756.GA56030@arkadia.nv.cox.net> <20030208232724.GA20435@HAL9000.homeunix.com>

next in thread | previous in thread | raw e-mail | index | archive | help
David Schultz wrote:
> Thus spake Ray Kohler <ataraxia@cox.net>:
> > Has anyone tried building world/kernel with high optimizations (-O2,
> > -O3) recently? What breaks? (Booby prize to whoever says "common sense"
> > ;) I last tried it quite a few months ago and the resolver died on me,
> > don't know what else. I'm not really thinking of running like that, but
> > I am curious about others' experiences.
> 
> First, let me answer the question that you really meant to ask but
> forgot to, namely, ``How much of a performance difference does -O3
> make over -O for the kernel/world?''  The answer is ``very little,
> for most purposes.''  So if you do use higher optimization levels,
> at least do a little benchmarking to make sure it was worth it.

Actually, failure to use optimization suppresses some compilation
warnings, particularly those which normally print from using some
variables without initializing them.

We were just bit by this, the other day (search -current list archives
for "zebras": mea maxima culpa).


> To answer your second question, higher optimization levels usually
> work, but there *will* be new bugs.  I know of several libc
> problems due to -fstrict-aliasing, and I'm told that the inline
> assembly for TCP checksumming can still break.

There are a number of places, particularly on non-i386 platforms,
where optimization actually doesn't work.  I think that's why it
was turned off for the libc compilation, and why the bug crept in.

It's probably useful to compile world with optimization occasionally,
to make compilation-time detectable bugs like that to show up, but, as
you point out, it'd probably be a *bad* idea to actually use the
resulting code, at least until after the next GCC import, which will
supposedly fix the Alpha optimizer.

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E459BF3.BB3FC381>