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

Unified Diff: build/toolchain.gypi

Issue 19384011: Revamp v8_optimized_debug options (Closed) Base URL: https://chromium.googlesource.com/external/v8.git@master
Patch Set: use -O3 when v8_optimized_debug==2 Created 7 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/toolchain.gypi
diff --git a/build/toolchain.gypi b/build/toolchain.gypi
index 95e2cd2ef595a9ac1124ab3d5238f50d608d1fd4..36d60c28ab98d03e79d9ba9688b8afd344cacd3f 100644
--- a/build/toolchain.gypi
+++ b/build/toolchain.gypi
@@ -60,7 +60,19 @@
'v8_enable_backtrace%': 0,
- # Turns on compiler optimizations in Debug builds (#defines are unaffected).
+ # Speeds up Debug builds:
+ # 0 - compiler optimizations off (debuggable) (default). This may
+ # be 5x slower than Release (or worse).
+ # 1 - turn on compiler optimizations. and #undef DEBUG/#define NDEBUG.
+ # This may be hard or impossible to debug. This may still be
+ # 2x slower than Release (or worse).
+ # 2 - Turn on optimizations, and also #undef DEBUG / #define NDEBUG
+ # (but leave V8_ENABLE_CHECKS and most other assertions enabled.
+ # This may cause some v8 tests to fail in the Debug configuration.
+ # This roughly matches the performance of a Release build and can
+ # be used by embedders that need to build their own code as debug
+ # but don't want or need a debug version of V8. This should produce
+ # near-release speeds.
'v8_optimized_debug%': 0,
# Enable profiling support. Only required on Windows.
@@ -435,7 +447,6 @@
'configurations': {
'Debug': {
'defines': [
- 'DEBUG',
'ENABLE_DISASSEMBLER',
'V8_ENABLE_CHECKS',
'OBJECT_PRINT',
@@ -449,41 +460,96 @@
}, {
'RuntimeLibrary': '1', # /MTd
}],
- ['v8_optimized_debug==1', {
- 'Optimization': '1',
+ ['v8_optimized_debug==0', {
+ 'Optimization': '0',
+ }, {
+ 'Optimization': '2',
'InlineFunctionExpansion': '2',
'EnableIntrinsicFunctions': 'true',
'FavorSizeOrSpeed': '0',
'StringPooling': 'true',
'BasicRuntimeChecks': '0',
- }, {
- 'Optimization': '0',
+ 'conditions': [
+ ['component=="shared_library"', {
+ 'RuntimeLibrary': '2', #/MD
+ }, {
+ 'RuntimeLibrary': '0', #/MT
+ }],
+ ['v8_target_arch=="x64"', {
+ # TODO(2207): remove this option once the bug is fixed.
+ 'WholeProgramOptimization': 'true',
+ }],
+ ],
}],
],
},
'VCLinkerTool': {
- 'LinkIncremental': '2',
+ 'conditions': [
+ ['v8_optimized_debug==0', {
+ 'LinkIncremental': '2',
+ }, {
+ 'LinkIncremental': '1',
+ 'OptimizeReferences': '2',
+ 'EnableCOMDATFolding': '2',
+ }],
+ ],
},
},
'conditions': [
+ ['v8_optimized_debug==2', {
+ 'defines': [
+ 'NDEBUG',
+ ],
+ }, {
+ 'defines': [
+ 'DEBUG',
+ ],
+ }],
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', {
'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter',
'-Wnon-virtual-dtor', '-Woverloaded-virtual',
'<(wno_array_bounds)' ],
'conditions': [
+ ['v8_optimized_debug==0', {
+ 'cflags!': [
+ '-O0',
+ '-O3',
+ '-O2',
+ '-O1',
+ '-Os',
+ ],
+ 'cflags': [
+ '-fdata-sections',
+ '-ffunction-sections',
+ ],
+ }],
['v8_optimized_debug==1', {
'cflags!': [
'-O0',
+ '-O3', # TODO(2807) should be -O1.
'-O2',
'-Os',
],
'cflags': [
'-fdata-sections',
'-ffunction-sections',
+ '-O1', # TODO(2807) should be -O3.
+ ],
+ }],
+ ['v8_optimized_debug==2', {
+ 'cflags!': [
+ '-O0',
'-O1',
+ '-O2',
+ '-Os',
+ ],
+ 'cflags': [
+ '-fdata-sections',
+ '-ffunction-sections',
+ '-O3',
],
}],
- ['v8_optimized_debug==1 and gcc_version==44 and clang==0', {
+ ['v8_optimized_debug!=0 and gcc_version==44 and clang==0', {
'cflags': [
# Avoid crashes with gcc 4.4 in the v8 test suite.
'-fno-tree-vrp',
@@ -512,11 +578,11 @@
['OS=="mac"', {
'xcode_settings': {
'conditions': [
- ['v8_optimized_debug==1', {
- 'GCC_OPTIMIZATION_LEVEL': '1', # -O1
- 'GCC_STRICT_ALIASING': 'YES',
- }, {
+ ['v8_optimized_debug==0', {
'GCC_OPTIMIZATION_LEVEL': '0', # -O0
+ }, {
+ 'GCC_OPTIMIZATION_LEVEL': '3', # -O3
+ 'GCC_STRICT_ALIASING': 'YES',
}],
],
},
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698