optimization levels for 6-STABLE build{kernel,world}
Gary Kline
kline at sage.thought.org
Wed Sep 13 22:23:22 PDT 2006
On Thu, Sep 14, 2006 at 10:02:37AM +1000, Mark Andrews wrote:
>
> > On Wed, Sep 13, 2006 at 12:17:15PM +0300, Stefan Lambrev wrote:
> > > Hello,
> > >
> > > Oliver Fromme wrote:
> > > >Marc G. Fournier <freebsd at hub.org> wrote:
> > > > > What are ppl currently using for CFLAGS/COPTFLAGS in /etc/make.conf for
> >
> > > > > building kernel/world? I know awhile back it wasn't recommended to go
> > > > > above -O2, for instance, but suspect that has changed ... ?
> > > >
> > > >The best optimization is probably to not override the
> > > >defaults at all, because they're already pretty optimal.
> > > >In fact, by overriding the defaults there's a good chance
> > > >to make things worse. :-)
> > > >
> > > >The default CFLAGS are "-O2 -pipe -fno-strict-aliasing".
> > > >Anything above -O2 isn't supported, and using -O2 without
> > > >-fno-strict-aliasing also isn't supported (and will create
> > > >broken code for some programs). A common mistake is to
> > > >specify CFLAGS="-O2 -pipe" and omit -fno-strict-aliasing.
> > > >That'll shot you in the foot sooner or later.
> > > >
> > > >Best regards
> > > > Oliver
> > > >
[[ ... ]]
> >
> >
> > A couple of things. Will having gcc unroll loops have any
> > negative consequences? (I can't imagine how:: but better
> > informed than to have something crash inexplicability.)
> > With 6.X safe at -O2 and with -funroll-loops, that should be
> > a slight gain, right? (It also will make an upgrade from 5.5
> > to 6.[12] that much more rational.)
> >
> > [Dumb] questions:: first, what does the compiler do with
> > "-fno-strict-aliasing"? And is there any guess, any SWAG even,
> > on when FreeBSD will safe with -O3??
>
> Lots of code is not strict-aliasing safe. Gcc itself can't
> determine all the cases which a construct is not strict-aliasing
> safe so even after getting rid of all the warnings gcc
> produces you can't be sure your code is strict-aliasing
> safe. Think of -fstrict-aliasing as optimisation without
> a saftey net. If your code doesn't cast pointers you should
> be safe otherwise you need to be really, really, really
> careful when you turn this on.
>
Well, my own pointer code is pretty trustworthy. It's also
pretty simple-minded and thoroughly tested, even tho it's
just for my own use. Other's code, dunno. People who cut their
teeth on pointers and may be just a wee bit cavalier: *Bzzz*
Point well taken.
--
Gary Kline kline at thought.org www.thought.org Public service Unix
More information about the freebsd-stable
mailing list