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

Reply via email to