To quote the GCC manual: -Os Optimize for size. -Os enables all -O2 optimizations that do not typically increase code size. It also performs further optimizations designed to reduce code size. -Os disables the following optimization flags:
-falign-functions -falign-jumps -falign-loops -falign-labels -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays -ftree-vect-loop-version That said (and unless there's other undocumented differences), it would seem to take some expertise to comment on the trade off between memory efforts (cache misses, TLB etc) vs instructional effects by having these optimizations off. I am certainly not that expert but I suspect given the memory bus speeds that typical arm hardware has, we'd want -Os over -O2. Regards, Tom On Sat, Mar 5, 2011 at 7:55 PM, Paul E. McKenney <paul...@linux.vnet.ibm.com> wrote: > Thoughts? > > Thanx, Paul > > ----- Forwarded message from Jesper Juhl <j...@chaosbits.net> ----- > > Date: Sun, 6 Mar 2011 00:49:58 +0100 (CET) > From: Jesper Juhl <j...@chaosbits.net> > To: linux-ker...@vger.kernel.org > cc: Andrew Morton <a...@linux-foundation.org>, > "Paul E. McKenney" <paul...@linux.vnet.ibm.com>, > Ingo Molnar <mi...@elte.hu>, > Daniel Lezcano <daniel.lezc...@free.fr>, > Eric Paris <epa...@redhat.com>, > Roman Zippel <zip...@linux-m68k.org> > Subject: [PATCH][RFC] CC_OPTIMIZE_FOR_SIZE should default to N > > I believe that the majority of systems we are built on want a -O2 compiled > kernel. Optimizing for size (-Os) is mainly benneficial for embedded > systems and systems with very small CPU caches (correct me if I'm wrong). > So it seems wrong to me that CC_OPTIMIZE_FOR_SIZE defaults to 'y' and > recommends saying 'Y' if unsure. I believe it should default to 'n' and > recommend that if unsure. People who bennefit from -Os know who they are > and can enable the option if needed/wanted - the majority shouldn't > select this. Right? > > Signed-off-by: Jesper Juhl <j...@chaosbits.net> > --- > Kconfig | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/init/Kconfig b/init/Kconfig > index be788c0..7e16268 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -886,12 +886,12 @@ endif > > config CC_OPTIMIZE_FOR_SIZE > bool "Optimize for size" > - default y > + default n > help > Enabling this option will pass "-Os" instead of "-O2" to gcc > resulting in a smaller kernel. > > - If unsure, say Y. > + If unsure, say N. > > config SYSCTL > bool > > > -- > Jesper Juhl <j...@chaosbits.net> http://www.chaosbits.net/ > Plain text mails only, please. > Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html > > > ----- End forwarded message ----- > > _______________________________________________ > linaro-dev mailing list > linaro-dev@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/linaro-dev > _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev