Commit 743db114 authored by George Burgess IV's avatar George Burgess IV Committed by Commit Bot

[build] Turn ThinLTO optimizations on for Android

This CL turns on ThinLTO optimizations for Android by default for all
official builds.

This CL is expected to increase link times of official builds by
something around 2.5x CPU/2x wall time. More build capacity was requested
in http://crbug.com/883563.

This is also a pretty wide-reaching CL. A size decrease of a hundred
KB is expected, and we expect that the CPU-bound parts of Chrome will
generally be faster. If there are slowdowns, they should be very few in
number, and very small.

ThinLTO is a type of link-time optimization, which defers actual
code-generation and some optimization until link-time. This is very
beneficial to the optimizer, since it now has visibility into
functions/constants that, at a per-TU level, would be opaque. ThinLTO is
already deployed on Linux and Android, but our default Linux configuration
does *not* use optimizations. This CL specifically enables these
optimizations for Android.

      size/build time measurements.

Bug: 807147
Test: Perf testing on nexus-5 (crbug.com/836550); manual binary
Change-Id: I7e07d9d9cb1dadd077adf44ca6217c40e13b00a8
Reviewed-on: https://chromium-review.googlesource.com/c/1149061Reviewed-by: default avataragrieve <agrieve@chromium.org>
Reviewed-by: default avatarPeter Collingbourne <pcc@chromium.org>
Reviewed-by: default avatarEgor Pasko <pasko@chromium.org>
Commit-Queue: George Burgess <gbiv@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613198}
parent 4b4e71d1
...@@ -135,7 +135,7 @@ declare_args() { ...@@ -135,7 +135,7 @@ declare_args() {
# TODO(gbiv): We disable optimizations by default on most platforms because # TODO(gbiv): We disable optimizations by default on most platforms because
# the space overhead is too great. We should use some mixture of profiles and # the space overhead is too great. We should use some mixture of profiles and
# optimization settings to better tune the size increase. # optimization settings to better tune the size increase.
thin_lto_enable_optimizations = is_chromeos thin_lto_enable_optimizations = is_chromeos || is_android
# By default only the binaries in official builds get build IDs. # By default only the binaries in official builds get build IDs.
force_local_build_id = false force_local_build_id = false
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment