cvs commit: src/sys/kern kern_sig.c
Marcel Moolenaar
marcel at xcllnt.net
Mon Mar 7 21:19:46 GMT 2005
On Mon, Mar 07, 2005 at 01:47:42PM -0700, Scott Long wrote:
> David O'Brien wrote:
> >On Thu, Mar 03, 2005 at 07:06:24AM -0700, Scott Long wrote:
> >
> >>a bit. Also, there is talk about increasing the default kstack size due
> >>to all of the extra inlining that the compiler does with the -O2 option
> >
> >
> >I'd love more details on the extra inlining people are seeing with -O2.
> >(i.e. specifics) -O2 is not supose to do extra function inlining. That
> >is suppose to be a -O3 thing.
> >
> >From the GCC manual:
> >
> >-O3 Optimize yet more.
> > -O3 turns on all optimizations specified by -O2 and also turns on the
> > -finline-functions, -fweb and -frename-registers options.
> >
> >-O2 Optimize even more.
> > GCC performs nearly all supported optimizations that do not involve a
> > space-speed tradeoff. The compiler does not perform loop unrolling or
> > function inlining when you specify -O2. As compared to -O, this
> > option increases both compilation time and the performance of the
> > generated code.
> > ..snip..
> >
> >The -O2 options that affect size are:
> > -falign-functions -falign-jumps -falign-loops -falign-labels
> > -freorder-blocks -fprefetch-loop-arrays
>
> Talk to Bill Paul about the massive amount of inlining that is happening
> in the ieee80211 ioctl code, and the no_inline directives he had to use
> to kludge around it.
gcc(1) does inlining of functions labeled with inline at -O1.
Functions not labeled with inline will be inlined at -O2.
Both cases are subject to preconditions (i.e. complexity of
the function being inlined).
In other words: the gcc(1) manual is inaccurate.
--
Marcel Moolenaar USPA: A-39004 marcel at xcllnt.net
More information about the cvs-src
mailing list