Index: build/toolchain.gypi |
diff --git a/build/toolchain.gypi b/build/toolchain.gypi |
index 034fbc37e095ddc063d3a1540e12a20a8c021d74..ec73a315c2fc3194d4cf6afc3de3ecf63adea89d 100644 |
--- a/build/toolchain.gypi |
+++ b/build/toolchain.gypi |
@@ -59,6 +59,10 @@ |
'mips_arch_variant%': 'mips32r2', |
'v8_enable_backtrace%': 0, |
+ |
+ # Turns on compiler optimizations in Debug builds (#defines are unaffected). |
+ 'v8_optimized_debug%': 0, |
+ |
# Enable profiling support. Only required on Windows. |
'v8_enable_prof%': 0, |
@@ -436,14 +440,22 @@ |
], |
'msvs_settings': { |
'VCCLCompilerTool': { |
- 'Optimization': '0', |
- |
'conditions': [ |
- ['OS=="win" and component=="shared_library"', { |
+ ['component=="shared_library"', { |
'RuntimeLibrary': '3', # /MDd |
}, { |
'RuntimeLibrary': '1', # /MTd |
}], |
+ ['v8_optimized_debug==1', { |
+ 'Optimization': '1', |
+ 'InlineFunctionExpansion': '2', |
+ 'EnableIntrinsicFunctions': 'true', |
+ 'FavorSizeOrSpeed': '0', |
+ 'StringPooling': 'true', |
+ 'BasicRuntimeChecks': '0', |
+ }, { |
+ 'Optimization': '0', |
+ }], |
], |
}, |
'VCLinkerTool': { |
@@ -454,6 +466,26 @@ |
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', { |
'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter', |
'-Wnon-virtual-dtor', '-Woverloaded-virtual' ], |
+ 'conditions': [ |
+ ['v8_optimized_debug==1', { |
+ 'cflags!': [ |
+ '-O0', |
+ '-O2', |
+ '-Os', |
+ ], |
+ 'cflags': [ |
+ '-fdata-sections', |
+ '-ffunction-sections', |
+ '-O1', |
+ ], |
+ }], |
+ ['v8_optimized_debug==1 and gcc_version==44 and clang==0', { |
+ 'cflags': [ |
+ # Avoid crashes with gcc 4.4 in the v8 test suite. |
+ '-fno-tree-vrp', |
+ ], |
+ }], |
+ ], |
}], |
['OS=="linux" and v8_enable_backtrace==1', { |
# Support for backtrace_symbols. |
@@ -475,7 +507,14 @@ |
}], |
['OS=="mac"', { |
'xcode_settings': { |
- 'GCC_OPTIMIZATION_LEVEL': '0', # -O0 |
+ 'conditions': [ |
+ ['v8_optimized_debug==1', { |
+ 'GCC_OPTIMIZATION_LEVEL': '1', # -O1 |
+ 'GCC_STRICT_ALIASING': 'YES', |
Nico
2013/07/17 03:13:44
Note that strict aliasing is only done at -O2 or h
|
+ }, { |
+ 'GCC_OPTIMIZATION_LEVEL': '0', # -O0 |
+ }], |
+ ], |
}, |
}], |
], |
@@ -540,7 +579,7 @@ |
'FavorSizeOrSpeed': '0', |
'StringPooling': 'true', |
'conditions': [ |
- ['OS=="win" and component=="shared_library"', { |
+ ['component=="shared_library"', { |
'RuntimeLibrary': '2', #/MD |
}, { |
'RuntimeLibrary': '0', #/MT |