On 01/15/2015 01:47 PM, Luke Deller wrote:
Hi,
I saw that gcc-4.8 introduced a new optimization level -Og which enables
optimizations that do not interfere with debugging.
Yesterday I floated the idea on IRC of using this with --enable-debug
rather than -O0 if available, and some feedback was that it enables gcc
to report extra warnings which would be a good thing.
somebody had the same idea last week... and i've now discovered this old
thread...
I tried it out and can see that it does indeed break the build if
--enable-werror is enabled, eg:
/home/deller/build/libo/vcl/unx/glxtest.cxx: In function ‘void glxtest()’:
/home/deller/build/libo/vcl/unx/glxtest.cxx:236:44: error: ignoring
return value of ‘ssize_t write(int, const void*, size_t)’, declared with
attribute warn_unused_result [-Werror=unused-result]
write(write_end_of_the_pipe, buf, length);
So I guess this means we couldn't incorporate -Og until all these new
warnings are fixed right?
i've fixed all spurious warnings from GCC 6.2.1 -Og on master.
Any other thoughts on whether this is a good idea to pursue? One fear
was that it might slow down compilation, but it doesn't actually seem to
slow down "make clean && make" much at all for me. I'll get some proper
timing measurements.
i've done a few timings, see the commit message of
https://gerrit.libreoffice.org/#/c/31334/
summary: from-scratch make check is a tiny bit slower (75m -O0, 76m -Og)
*but* incremental make check is 20% faster (12m vs. 15m) so for the
average developer it should be a win.
(A draft patch is attached to enable -Og if available)
thanks, i've taken the configure part of this.
only open question is if it actually works as advertised, i.e. is gdb
confused by the optimized code or not. anybody want to experiment?
Context
- Re: enabling optimizations (-Og) with --enable-debug · Michael Stahl
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.