On Tue, Mar 8, 2011 at 8:47 AM, Tom Gall <tom.g...@linaro.org> wrote: > 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.
I don't know about the kernel, but here's the difference for some other programs: * pybench: -Os is 24 % slower than -O2 * skia: -Os is 18 % slower than -O2 * CoreMark is similar (I've lost the numbers) ...so you're going to need a large bandwidth saving to beat the core speed improvement of -O2. -- Michael _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev