Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Side by Side Diff: build/common.gypi

Issue 1809273002: Enable whole-program virtual function optimization in LTO mode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | build/config/compiler/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 # IMPORTANT: 5 # IMPORTANT:
6 # Please don't directly include this file if you are building via gyp_chromium, 6 # Please don't directly include this file if you are building via gyp_chromium,
7 # since gyp_chromium is automatically forcing its inclusion. 7 # since gyp_chromium is automatically forcing its inclusion.
8 { 8 {
9 # Variables expected to be overriden on the GYP command line (-D) or by 9 # Variables expected to be overriden on the GYP command line (-D) or by
10 # ~/.gyp/include.gypi. 10 # ~/.gyp/include.gypi.
(...skipping 6131 matching lines...) Expand 10 before | Expand all | Expand 10 after
6142 }, 6142 },
6143 }, 6143 },
6144 }], 6144 }],
6145 # Apply a lower LTO optimization level as the default is too slow. 6145 # Apply a lower LTO optimization level as the default is too slow.
6146 ['use_lto==1 and clang==1', { 6146 ['use_lto==1 and clang==1', {
6147 'target_defaults': { 6147 'target_defaults': {
6148 'target_conditions': [ 6148 'target_conditions': [
6149 ['_toolset=="target"', { 6149 ['_toolset=="target"', {
6150 'ldflags': [ 6150 'ldflags': [
6151 '-Wl,--plugin-opt,O1', 6151 '-Wl,--plugin-opt,O1',
6152 # Allows the linker to apply ICF to the LTO object file. Also, whe n
6153 # targeting ARM, wWithout this flag, LTO produces a .text section
6154 # that is larger than the maximum call displacement, preventing th e
6155 # linker from relocating calls (http://llvm.org/PR22999).
6156 '-Wl,--plugin-opt,-function-sections',
6152 ], 6157 ],
6153 }], 6158 }],
6154 ['_toolset=="target" and _type!="static_library"', { 6159 ['_toolset=="target" and _type!="static_library"', {
6155 'xcode_settings': { 6160 'xcode_settings': {
6156 'OTHER_LDFLAGS': [ 6161 'OTHER_LDFLAGS': [
6157 '-Wl,-mllvm,-O1', 6162 '-Wl,-mllvm,-O1',
6158 ], 6163 ],
6159 }, 6164 },
6160 }], 6165 }],
6161 ], 6166 ],
6162 'msvs_settings': { 6167 'msvs_settings': {
6163 'VCLinkerTool': { 6168 'VCLinkerTool': {
6164 'AdditionalOptions': [ 6169 'AdditionalOptions': [
6165 '/opt:lldlto=1', 6170 '/opt:lldlto=1',
6166 ], 6171 ],
6167 }, 6172 },
6168 }, 6173 },
6169 }, 6174 },
6170 }], 6175 }],
6171 ['use_lto==1 and clang==1 and target_arch=="arm"', {
6172 'target_defaults': {
6173 'target_conditions': [
6174 ['_toolset=="target"', {
6175 # Without this flag, LTO produces a .text section that is larger
6176 # than the maximum call displacement, preventing the linker from
6177 # relocating calls (http://llvm.org/PR22999).
6178 'ldflags': [
6179 '-Wl,-plugin-opt,-function-sections',
6180 ],
6181 }],
6182 ],
6183 },
6184 }],
6185 ['(use_lto==1 or use_lto_o2==1) and clang==0', { 6176 ['(use_lto==1 or use_lto_o2==1) and clang==0', {
6186 'target_defaults': { 6177 'target_defaults': {
6187 'target_conditions': [ 6178 'target_conditions': [
6188 ['_toolset=="target"', { 6179 ['_toolset=="target"', {
6189 'ldflags': [ 6180 'ldflags': [
6190 '-flto=32', 6181 '-flto=32',
6191 ], 6182 ],
6192 }], 6183 }],
6193 ], 6184 ],
6194 }, 6185 },
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
6320 '-fsanitize-blacklist=<(cfi_blacklist)', 6311 '-fsanitize-blacklist=<(cfi_blacklist)',
6321 '-Xclang', 6312 '-Xclang',
6322 '-fsanitize-blacklist=../../<(make_clang_dir)/lib/clang/<!(pyt hon <(DEPTH)/tools/clang/scripts/update.py --print-clang-version)/cfi_blacklist. txt', 6313 '-fsanitize-blacklist=../../<(make_clang_dir)/lib/clang/<!(pyt hon <(DEPTH)/tools/clang/scripts/update.py --print-clang-version)/cfi_blacklist. txt',
6323 ], 6314 ],
6324 }, 6315 },
6325 }, 6316 },
6326 }], 6317 }],
6327 ], 6318 ],
6328 }, 6319 },
6329 }], 6320 }],
6321 # TODO(pcc): Make these flags work correctly with CFI.
6322 ['use_lto!=0 and cfi_vptr==0', {
6323 'target_defaults': {
6324 'target_conditions': [
6325 ['_toolset=="target"', {
6326 'cflags': [
6327 '-fwhole-program-vtables',
6328 # TODO(pcc): Remove this flag once the upstream interface change
6329 # (http://reviews.llvm.org/D18635) lands.
6330 '-fwhole-program-vtables-blacklist=<(cfi_blacklist)',
6331 ],
6332 'ldflags': [
6333 '-fwhole-program-vtables',
6334 ],
6335 }],
6336 ],
6337 },
6338 }],
6330 ], 6339 ],
6331 'xcode_settings': { 6340 'xcode_settings': {
6332 # DON'T ADD ANYTHING NEW TO THIS BLOCK UNLESS YOU REALLY REALLY NEED IT! 6341 # DON'T ADD ANYTHING NEW TO THIS BLOCK UNLESS YOU REALLY REALLY NEED IT!
6333 # This block adds *project-wide* configuration settings to each project 6342 # This block adds *project-wide* configuration settings to each project
6334 # file. It's almost always wrong to put things here. Specify your 6343 # file. It's almost always wrong to put things here. Specify your
6335 # custom xcode_settings in target_defaults to add them to targets instead. 6344 # custom xcode_settings in target_defaults to add them to targets instead.
6336 6345
6337 'conditions': [ 6346 'conditions': [
6338 # In an Xcode Project Info window, the "Base SDK for All Configurations" 6347 # In an Xcode Project Info window, the "Base SDK for All Configurations"
6339 # setting sets the SDK on a project-wide basis. In order to get the 6348 # setting sets the SDK on a project-wide basis. In order to get the
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
6376 # settings in target dicts. SYMROOT is a special case, because many other 6385 # settings in target dicts. SYMROOT is a special case, because many other
6377 # Xcode variables depend on it, including variables such as 6386 # Xcode variables depend on it, including variables such as
6378 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something 6387 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something
6379 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the 6388 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the
6380 # files to appear (when present) in the UI as actual files and not red 6389 # files to appear (when present) in the UI as actual files and not red
6381 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, 6390 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR,
6382 # and therefore SYMROOT, needs to be set at the project level. 6391 # and therefore SYMROOT, needs to be set at the project level.
6383 'SYMROOT': '<(DEPTH)/xcodebuild', 6392 'SYMROOT': '<(DEPTH)/xcodebuild',
6384 }, 6393 },
6385 } 6394 }
OLDNEW
« no previous file with comments | « no previous file | build/config/compiler/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698