[Mesa-dev] [PATCH] mesa: Enable LTO by default on i965/libdricore release builds.
Eric Anholt
eric at anholt.net
Thu Aug 15 08:34:26 PDT 2013
Chad Versace <chad.versace at linux.intel.com> writes:
> On 08/08/2013 01:43 PM, Eric Anholt wrote:
>> We can't just smash it on globally due to (probably resolvable) issues
>> with the asm in glapi. And we don't want to penalize developers with
>> longer build times for their normal debug environment.
>>
>> Due to libdricore making almost all of our symbols public, the effect is
>> very small -- cairo-gl with INTEL_NO_HW=1 shows -0.798709% +/- 0.333703%
>> change in runtime (n=30).
>> ---
>>
>> If we were to avoid dricore, there's an additional 5% improvement available
>> (see the "megadriver" branch of my tree).
>>
>> configure.ac | 25 +++++++++++++++++++++++++
>> src/mesa/Makefile.am | 4 ++--
>> src/mesa/drivers/dri/i965/Makefile.am | 1 +
>> src/mesa/libdricore/Makefile.am | 8 +++++++-
>> src/mesa/program/Makefile.am | 4 ++--
>> 5 files changed, 37 insertions(+), 5 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 62d06e0..26c230d 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -314,6 +314,7 @@ AC_ARG_ENABLE([debug],
>> [enable_debug="$enableval"],
>> [enable_debug=no]
>> )
>> +enable_lto=yes
>> if test "x$enable_debug" = xyes; then
>> DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD -DDEBUG"
>> if test "x$GCC_FOR_BUILD" = xyes; then
>> @@ -330,7 +331,31 @@ if test "x$enable_debug" = xyes; then
>> if test "x$GXX" = xyes; then
>> CXXFLAGS="$CXXFLAGS -g -O0"
>> fi
>> +
>> + # Disable LTO by default on debug builds, since it's so expensive at
>> + # compile time.
>> + enable_lto=no
>> +fi
>
> I'd like to emit a configuration error if someone tries to enable LTO
> in a debug build. According the gcc-4.8 manpage, that's a really bad
> idea.
>
> Link-time optimization does not work well with generation of
> debugging information. Combining -flto with -g is currently
> experimental and expected to produce wrong results.
>
> Other than that, the patch looks good to me.
Yeah, debug symbols appear to be quite scrambled. As is, I don't think
we can ship with it -- breaking backtraces (and thus profiling) is not
acceptable.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130815/ca488704/attachment.pgp>
More information about the mesa-dev
mailing list