Commit 113c39f6 authored by Sebastien Marchand's avatar Sebastien Marchand Committed by Commit Bot

Use the 'optimize_max' compiler config on more targets [win]

This switches some "hot" targets to the "optimize_max" compiler config.
The "hot" targets have been picked base on the go/cwp data, this CL
makes the assumption that the hotness of the code is more or less the
same on different platforms (which seems like a fair assumption for
things like Mojo and //net).

Pinpoint will be used to evaluate the exact impact of this CL on metrics,
local benchmarks (with Speedometer 2.0) shows a 4% performance
improvement (based on the average after 5 runs of the Speedometer 2.0
benchmark).

The downside is that it makes the size of chrome.dll increase by 1.08MB
(~0.8%).

The change consist in adding this to the config of the hot targets:
  if (!is_debug) {
    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }
There's no |is_win| condition here as this is a noop on all platforms
other than Windows, see
https://cs.chromium.org/chromium/src/build/config/compiler/BUILD.gn?rcl=3a8f3f7de7291ccb2045a285965daf4053ac5739
The "optimize" config on !is_win is usually:
  cflags = [ "-O2" ] + common_optimize_on_cflags
which is the same as the "optimize_max" config for these same targets.

Bug: 1059861
Change-Id: Ib28781c7e56943650725fec9c50aa11bef413fbd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2095339Reviewed-by: default avatarReid Kleckner <rnk@chromium.org>
Reviewed-by: default avatarBruce Dawson <brucedawson@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Commit-Queue: Sébastien Marchand <sebmarchand@chromium.org>
Cr-Commit-Position: refs/heads/master@{#749479}
parent d1986a2b
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import("//build/config/compiler/compiler.gni")
import("//build/config/nacl/config.gni") import("//build/config/nacl/config.gni")
import("//testing/libfuzzer/fuzzer_test.gni") import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni") import("//testing/test.gni")
...@@ -164,6 +165,10 @@ template("core_impl_source_set") { ...@@ -164,6 +165,10 @@ template("core_impl_source_set") {
} }
configs += [ "//build/config/compiler:noshadowing" ] configs += [ "//build/config/compiler:noshadowing" ]
if (!is_debug && !optimize_for_size) {
configs -= [ "//build/config/compiler:default_optimization" ]
configs += [ "//build/config/compiler:optimize_max" ]
}
} }
} }
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import("//build/config/compiler/compiler.gni")
import("//testing/test.gni") import("//testing/test.gni")
component("ports") { component("ports") {
...@@ -36,6 +37,11 @@ component("ports") { ...@@ -36,6 +37,11 @@ component("ports") {
if (!is_nacl) { if (!is_nacl) {
deps = [ "//crypto" ] deps = [ "//crypto" ]
} }
if (!is_debug && !optimize_for_size) {
configs -= [ "//build/config/compiler:default_optimization" ]
configs += [ "//build/config/compiler:optimize_max" ]
}
} }
source_set("tests") { source_set("tests") {
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
# found in the LICENSE file. # found in the LICENSE file.
import("//build/buildflag_header.gni") import("//build/buildflag_header.gni")
import("//build/config/compiler/compiler.gni")
import("//build/config/nacl/config.gni") import("//build/config/nacl/config.gni")
import("//tools/ipc_fuzzer/ipc_fuzzer.gni") import("//tools/ipc_fuzzer/ipc_fuzzer.gni")
...@@ -117,6 +118,11 @@ component("bindings_base") { ...@@ -117,6 +118,11 @@ component("bindings_base") {
if (enable_ipc_fuzzer) { if (enable_ipc_fuzzer) {
all_dependent_configs = [ "//tools/ipc_fuzzer:ipc_fuzzer_config" ] all_dependent_configs = [ "//tools/ipc_fuzzer:ipc_fuzzer_config" ]
} }
if (!is_debug && !optimize_for_size) {
configs -= [ "//build/config/compiler:default_optimization" ]
configs += [ "//build/config/compiler:optimize_max" ]
}
} }
component("bindings") { component("bindings") {
......
...@@ -1648,6 +1648,11 @@ component("net") { ...@@ -1648,6 +1648,11 @@ component("net") {
sources += [ "filter/brotli_source_stream_disabled.cc" ] sources += [ "filter/brotli_source_stream_disabled.cc" ]
} }
} }
if (!is_debug && !optimize_for_size) {
configs -= [ "//build/config/compiler:default_optimization" ]
configs += [ "//build/config/compiler:optimize_max" ]
}
} }
# net_export.h has its own build target so that code (eg # net_export.h has its own build target so that code (eg
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
import("//build/buildflag_header.gni") import("//build/buildflag_header.gni")
import("//build/compiled_action.gni") import("//build/compiled_action.gni")
import("//build/config/compiler/compiler.gni")
import("//build/config/features.gni") import("//build/config/features.gni")
import("//build/config/jumbo.gni") import("//build/config/jumbo.gni")
import("//build/config/ui.gni") import("//build/config/ui.gni")
...@@ -1613,6 +1614,11 @@ jumbo_component("platform") { ...@@ -1613,6 +1614,11 @@ jumbo_component("platform") {
deps += [ "//third_party/pffft" ] deps += [ "//third_party/pffft" ]
} }
if (!is_debug && !optimize_for_size) {
configs -= [ "//build/config/compiler:default_optimization" ]
configs += [ "//build/config/compiler:optimize_max" ]
}
configs -= [ "//build/config/compiler:default_symbols" ] configs -= [ "//build/config/compiler:default_symbols" ]
configs += blink_symbols_config configs += blink_symbols_config
} }
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
# found in the LICENSE file. # found in the LICENSE file.
import("//build/buildflag_header.gni") import("//build/buildflag_header.gni")
import("//build/config/compiler/compiler.gni")
import("//build/config/jumbo.gni") import("//build/config/jumbo.gni")
import("//build/config/sanitizers/sanitizers.gni") import("//build/config/sanitizers/sanitizers.gni")
import("//testing/test.gni") import("//testing/test.gni")
...@@ -108,6 +109,11 @@ blink_platform_sources("heap") { ...@@ -108,6 +109,11 @@ blink_platform_sources("heap") {
"//third_party/icu", "//third_party/icu",
"//v8", "//v8",
] ]
if (!is_debug && !optimize_for_size) {
configs -= [ "//build/config/compiler:default_optimization" ]
configs += [ "//build/config/compiler:optimize_max" ]
}
} }
jumbo_source_set("test_support") { jumbo_source_set("test_support") {
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
assert(!is_ios) assert(!is_ios)
import("//build/config/compiler/compiler.gni")
import("//build/config/jumbo.gni") import("//build/config/jumbo.gni")
import("//testing/test.gni") import("//testing/test.gni")
import("//third_party/blink/renderer/config.gni") import("//third_party/blink/renderer/config.gni")
...@@ -238,6 +239,11 @@ jumbo_component("wtf") { ...@@ -238,6 +239,11 @@ jumbo_component("wtf") {
sources -= [ "text/atomic_string_cf.cc" ] sources -= [ "text/atomic_string_cf.cc" ]
} }
if (!is_debug && !optimize_for_size) {
configs -= [ "//build/config/compiler:default_optimization" ]
configs += [ "//build/config/compiler:optimize_max" ]
}
configs -= [ "//build/config/compiler:default_symbols" ] configs -= [ "//build/config/compiler:default_symbols" ]
configs += blink_symbols_config configs += blink_symbols_config
} }
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
import("//build/config/android/config.gni") import("//build/config/android/config.gni")
import("//build/config/arm.gni") import("//build/config/arm.gni")
import("//build/config/compiler/compiler.gni")
import("//build/config/sanitizers/sanitizers.gni") import("//build/config/sanitizers/sanitizers.gni")
import("//build_overrides/build.gni") import("//build_overrides/build.gni")
import("//testing/libfuzzer/fuzzer_test.gni") import("//testing/libfuzzer/fuzzer_test.gni")
...@@ -126,6 +127,11 @@ component("boringssl") { ...@@ -126,6 +127,11 @@ component("boringssl") {
if (is_nacl) { if (is_nacl) {
deps += [ "//native_client_sdk/src/libraries/nacl_io" ] deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
} }
if (!is_debug && !optimize_for_size) {
configs -= [ "//build/config/compiler:default_optimization" ]
configs += [ "//build/config/compiler:optimize_max" ]
}
} }
if (build_with_chromium) { if (build_with_chromium) {
......
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