On Mon, 2014-01-27 at 15:43 -0500, Alan Conway wrote:
> ...
> 
> "Release" is: -O3 -DNDEBUG

I stand corrected - The non lazy version is (ie I actually looked at the
CMake files):

Debug           -g
Release         -O3 -DNDEBUG
RelWithDebInfo  -O2 -g -DNDEBUG
MinSizeRel      -Os -DNDEBUG

BTW it's not definite that -O3 gives better performance than -Os or even
-O2 in all cases. You should benchmark.

-O3 does tend to be hard to get useful debug info out of though.

-Os often gives you better performance (or at least did) because smaller
code may fit in cache better. -O3 will make the code bigger in many/most
cases (unrolling loops etc.) and so may lose performance by not fitting
into cache as well.

[FWIW (ie not a lot) I tend to prefer -Os -g for release flags. In other
words always have debug info with the smallest code and don't turn
asserts off]

Andrew



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to