| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project 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 // This file defines all of the flags. It is separated into different section, | 5 // This file defines all of the flags. It is separated into different section, |
| 6 // for Debug, Release, Logging and Profiling, etc. To add a new flag, find the | 6 // for Debug, Release, Logging and Profiling, etc. To add a new flag, find the |
| 7 // correct section, and use one of the DEFINE_ macros, without a trailing ';'. | 7 // correct section, and use one of the DEFINE_ macros, without a trailing ';'. |
| 8 // | 8 // |
| 9 // This include does not have a guard, because it is a template-style include, | 9 // This include does not have a guard, because it is a template-style include, |
| 10 // which can be included multiple times in different modes. It expects to have | 10 // which can be included multiple times in different modes. It expects to have |
| 11 // a mode defined before it's included. The modes are FLAG_MODE_... below: | 11 // a mode defined before it's included. The modes are FLAG_MODE_... below: |
| 12 | 12 |
| 13 // We want to declare the names of the variables for the header file. Normally | 13 // We want to declare the names of the variables for the header file. Normally |
| 14 // this will just be an extern declaration, but for a readonly flag we let the | 14 // this will just be an extern declaration, but for a readonly flag we let the |
| 15 // compiler make better optimizations by giving it the value. | 15 // compiler make better optimizations by giving it the value. |
| 16 #if defined(FLAG_MODE_DECLARE) | 16 #if defined(FLAG_MODE_DECLARE) |
| 17 #define FLAG_FULL(ftype, ctype, nam, def, cmt) \ | 17 #define FLAG_FULL(ftype, ctype, nam, def, cmt) extern ctype FLAG_##nam; |
| 18 extern ctype FLAG_##nam; | |
| 19 #define FLAG_READONLY(ftype, ctype, nam, def, cmt) \ | 18 #define FLAG_READONLY(ftype, ctype, nam, def, cmt) \ |
| 20 static ctype const FLAG_##nam = def; | 19 static ctype const FLAG_##nam = def; |
| 21 | 20 |
| 22 // We want to supply the actual storage and value for the flag variable in the | 21 // We want to supply the actual storage and value for the flag variable in the |
| 23 // .cc file. We only do this for writable flags. | 22 // .cc file. We only do this for writable flags. |
| 24 #elif defined(FLAG_MODE_DEFINE) | 23 #elif defined(FLAG_MODE_DEFINE) |
| 25 #define FLAG_FULL(ftype, ctype, nam, def, cmt) \ | 24 #define FLAG_FULL(ftype, ctype, nam, def, cmt) ctype FLAG_##nam = def; |
| 26 ctype FLAG_##nam = def; | |
| 27 | 25 |
| 28 // We need to define all of our default values so that the Flag structure can | 26 // We need to define all of our default values so that the Flag structure can |
| 29 // access them by pointer. These are just used internally inside of one .cc, | 27 // access them by pointer. These are just used internally inside of one .cc, |
| 30 // for MODE_META, so there is no impact on the flags interface. | 28 // for MODE_META, so there is no impact on the flags interface. |
| 31 #elif defined(FLAG_MODE_DEFINE_DEFAULTS) | 29 #elif defined(FLAG_MODE_DEFINE_DEFAULTS) |
| 32 #define FLAG_FULL(ftype, ctype, nam, def, cmt) \ | 30 #define FLAG_FULL(ftype, ctype, nam, def, cmt) \ |
| 33 static ctype const FLAGDEFAULT_##nam = def; | 31 static ctype const FLAGDEFAULT_##nam = def; |
| 34 | 32 |
| 35 // We want to write entries into our meta data table, for internal parsing and | 33 // We want to write entries into our meta data table, for internal parsing and |
| 36 // printing / etc in the flag parser code. We only do this for writable flags. | 34 // printing / etc in the flag parser code. We only do this for writable flags. |
| 37 #elif defined(FLAG_MODE_META) | 35 #elif defined(FLAG_MODE_META) |
| 38 #define FLAG_FULL(ftype, ctype, nam, def, cmt) \ | 36 #define FLAG_FULL(ftype, ctype, nam, def, cmt) \ |
| 39 { Flag::TYPE_##ftype, #nam, &FLAG_##nam, &FLAGDEFAULT_##nam, cmt, false }, | 37 { Flag::TYPE_##ftype, #nam, &FLAG_##nam, &FLAGDEFAULT_##nam, cmt, false } \ |
| 40 #define FLAG_ALIAS(ftype, ctype, alias, nam) \ | 38 , |
| 41 { Flag::TYPE_##ftype, #alias, &FLAG_##nam, &FLAGDEFAULT_##nam, \ | 39 #define FLAG_ALIAS(ftype, ctype, alias, nam) \ |
| 42 "alias for --"#nam, false }, | 40 { \ |
| 41 Flag::TYPE_##ftype, #alias, &FLAG_##nam, &FLAGDEFAULT_##nam, \ |
| 42 "alias for --" #nam, false \ |
| 43 } \ |
| 44 , |
| 43 | 45 |
| 44 // We produce the code to set flags when it is implied by another flag. | 46 // We produce the code to set flags when it is implied by another flag. |
| 45 #elif defined(FLAG_MODE_DEFINE_IMPLICATIONS) | 47 #elif defined(FLAG_MODE_DEFINE_IMPLICATIONS) |
| 46 #define DEFINE_implication(whenflag, thenflag) \ | 48 #define DEFINE_IMPLICATION(whenflag, thenflag) \ |
| 47 if (FLAG_##whenflag) FLAG_##thenflag = true; | 49 if (FLAG_##whenflag) FLAG_##thenflag = true; |
| 48 | 50 |
| 49 #define DEFINE_neg_implication(whenflag, thenflag) \ | 51 #define DEFINE_NEG_IMPLICATION(whenflag, thenflag) \ |
| 50 if (FLAG_##whenflag) FLAG_##thenflag = false; | 52 if (FLAG_##whenflag) FLAG_##thenflag = false; |
| 51 | 53 |
| 52 #else | 54 #else |
| 53 #error No mode supplied when including flags.defs | 55 #error No mode supplied when including flags.defs |
| 54 #endif | 56 #endif |
| 55 | 57 |
| 56 // Dummy defines for modes where it is not relevant. | 58 // Dummy defines for modes where it is not relevant. |
| 57 #ifndef FLAG_FULL | 59 #ifndef FLAG_FULL |
| 58 #define FLAG_FULL(ftype, ctype, nam, def, cmt) | 60 #define FLAG_FULL(ftype, ctype, nam, def, cmt) |
| 59 #endif | 61 #endif |
| 60 | 62 |
| 61 #ifndef FLAG_READONLY | 63 #ifndef FLAG_READONLY |
| 62 #define FLAG_READONLY(ftype, ctype, nam, def, cmt) | 64 #define FLAG_READONLY(ftype, ctype, nam, def, cmt) |
| 63 #endif | 65 #endif |
| 64 | 66 |
| 65 #ifndef FLAG_ALIAS | 67 #ifndef FLAG_ALIAS |
| 66 #define FLAG_ALIAS(ftype, ctype, alias, nam) | 68 #define FLAG_ALIAS(ftype, ctype, alias, nam) |
| 67 #endif | 69 #endif |
| 68 | 70 |
| 69 #ifndef DEFINE_implication | 71 #ifndef DEFINE_IMPLICATION |
| 70 #define DEFINE_implication(whenflag, thenflag) | 72 #define DEFINE_IMPLICATION(whenflag, thenflag) |
| 71 #endif | 73 #endif |
| 72 | 74 |
| 73 #ifndef DEFINE_neg_implication | 75 #ifndef DEFINE_NEG_IMPLICATION |
| 74 #define DEFINE_neg_implication(whenflag, thenflag) | 76 #define DEFINE_NEG_IMPLICATION(whenflag, thenflag) |
| 75 #endif | 77 #endif |
| 76 | 78 |
| 77 #define COMMA , | 79 #define COMMA , |
| 78 | 80 |
| 79 #ifdef FLAG_MODE_DECLARE | 81 #ifdef FLAG_MODE_DECLARE |
| 80 // Structure used to hold a collection of arguments to the JavaScript code. | 82 // Structure used to hold a collection of arguments to the JavaScript code. |
| 81 struct JSArguments { | 83 struct JSArguments { |
| 82 public: | 84 public: |
| 83 inline const char*& operator[] (int idx) const { | 85 inline const char*& operator[](int idx) const { return argv[idx]; } |
| 84 return argv[idx]; | |
| 85 } | |
| 86 static JSArguments Create(int argc, const char** argv) { | 86 static JSArguments Create(int argc, const char** argv) { |
| 87 JSArguments args; | 87 JSArguments args; |
| 88 args.argc = argc; | 88 args.argc = argc; |
| 89 args.argv = argv; | 89 args.argv = argv; |
| 90 return args; | 90 return args; |
| 91 } | 91 } |
| 92 int argc; | 92 int argc; |
| 93 const char** argv; | 93 const char** argv; |
| 94 }; | 94 }; |
| 95 | 95 |
| 96 struct MaybeBoolFlag { | 96 struct MaybeBoolFlag { |
| 97 static MaybeBoolFlag Create(bool has_value, bool value) { | 97 static MaybeBoolFlag Create(bool has_value, bool value) { |
| 98 MaybeBoolFlag flag; | 98 MaybeBoolFlag flag; |
| 99 flag.has_value = has_value; | 99 flag.has_value = has_value; |
| 100 flag.value = value; | 100 flag.value = value; |
| 101 return flag; | 101 return flag; |
| 102 } | 102 } |
| 103 bool has_value; | 103 bool has_value; |
| 104 bool value; | 104 bool value; |
| 105 }; | 105 }; |
| 106 #endif | 106 #endif |
| 107 | 107 |
| 108 #if (defined CAN_USE_VFP3_INSTRUCTIONS) || !(defined ARM_TEST_NO_FEATURE_PROBE) | 108 #if (defined CAN_USE_VFP3_INSTRUCTIONS) || !(defined ARM_TEST_NO_FEATURE_PROBE) |
| 109 # define ENABLE_VFP3_DEFAULT true | 109 #define ENABLE_VFP3_DEFAULT true |
| 110 #else | 110 #else |
| 111 # define ENABLE_VFP3_DEFAULT false | 111 #define ENABLE_VFP3_DEFAULT false |
| 112 #endif | 112 #endif |
| 113 #if (defined CAN_USE_ARMV7_INSTRUCTIONS) || !(defined ARM_TEST_NO_FEATURE_PROBE) | 113 #if (defined CAN_USE_ARMV7_INSTRUCTIONS) || !(defined ARM_TEST_NO_FEATURE_PROBE) |
| 114 # define ENABLE_ARMV7_DEFAULT true | 114 #define ENABLE_ARMV7_DEFAULT true |
| 115 #else | 115 #else |
| 116 # define ENABLE_ARMV7_DEFAULT false | 116 #define ENABLE_ARMV7_DEFAULT false |
| 117 #endif | 117 #endif |
| 118 #if (defined CAN_USE_VFP32DREGS) || !(defined ARM_TEST_NO_FEATURE_PROBE) | 118 #if (defined CAN_USE_VFP32DREGS) || !(defined ARM_TEST_NO_FEATURE_PROBE) |
| 119 # define ENABLE_32DREGS_DEFAULT true | 119 #define ENABLE_32DREGS_DEFAULT true |
| 120 #else | 120 #else |
| 121 # define ENABLE_32DREGS_DEFAULT false | 121 #define ENABLE_32DREGS_DEFAULT false |
| 122 #endif | 122 #endif |
| 123 #if (defined CAN_USE_NEON) || !(defined ARM_TEST_NO_FEATURE_PROBE) | 123 #if (defined CAN_USE_NEON) || !(defined ARM_TEST_NO_FEATURE_PROBE) |
| 124 # define ENABLE_NEON_DEFAULT true | 124 # define ENABLE_NEON_DEFAULT true |
| 125 #else | 125 #else |
| 126 # define ENABLE_NEON_DEFAULT false | 126 # define ENABLE_NEON_DEFAULT false |
| 127 #endif | 127 #endif |
| 128 | 128 |
| 129 #define DEFINE_bool(nam, def, cmt) FLAG(BOOL, bool, nam, def, cmt) | 129 #define DEFINE_BOOL(nam, def, cmt) FLAG(BOOL, bool, nam, def, cmt) |
| 130 #define DEFINE_maybe_bool(nam, cmt) FLAG(MAYBE_BOOL, MaybeBoolFlag, nam, \ | 130 #define DEFINE_MAYBE_BOOL(nam, cmt) \ |
| 131 { false COMMA false }, cmt) | 131 FLAG(MAYBE_BOOL, MaybeBoolFlag, nam, {false COMMA false}, cmt) |
| 132 #define DEFINE_int(nam, def, cmt) FLAG(INT, int, nam, def, cmt) | 132 #define DEFINE_INT(nam, def, cmt) FLAG(INT, int, nam, def, cmt) |
| 133 #define DEFINE_float(nam, def, cmt) FLAG(FLOAT, double, nam, def, cmt) | 133 #define DEFINE_FLOAT(nam, def, cmt) FLAG(FLOAT, double, nam, def, cmt) |
| 134 #define DEFINE_string(nam, def, cmt) FLAG(STRING, const char*, nam, def, cmt) | 134 #define DEFINE_STRING(nam, def, cmt) FLAG(STRING, const char*, nam, def, cmt) |
| 135 #define DEFINE_args(nam, cmt) FLAG(ARGS, JSArguments, nam, \ | 135 #define DEFINE_ARGS(nam, cmt) FLAG(ARGS, JSArguments, nam, {0 COMMA NULL}, cmt) |
| 136 { 0 COMMA NULL }, cmt) | |
| 137 | 136 |
| 138 #define DEFINE_ALIAS_bool(alias, nam) FLAG_ALIAS(BOOL, bool, alias, nam) | 137 #define DEFINE_ALIAS_BOOL(alias, nam) FLAG_ALIAS(BOOL, bool, alias, nam) |
| 139 #define DEFINE_ALIAS_int(alias, nam) FLAG_ALIAS(INT, int, alias, nam) | 138 #define DEFINE_ALIAS_INT(alias, nam) FLAG_ALIAS(INT, int, alias, nam) |
| 140 #define DEFINE_ALIAS_float(alias, nam) FLAG_ALIAS(FLOAT, double, alias, nam) | 139 #define DEFINE_ALIAS_FLOAT(alias, nam) FLAG_ALIAS(FLOAT, double, alias, nam) |
| 141 #define DEFINE_ALIAS_string(alias, nam) \ | 140 #define DEFINE_ALIAS_STRING(alias, nam) \ |
| 142 FLAG_ALIAS(STRING, const char*, alias, nam) | 141 FLAG_ALIAS(STRING, const char*, alias, nam) |
| 143 #define DEFINE_ALIAS_args(alias, nam) FLAG_ALIAS(ARGS, JSArguments, alias, nam) | 142 #define DEFINE_ALIAS_ARGS(alias, nam) FLAG_ALIAS(ARGS, JSArguments, alias, nam) |
| 144 | 143 |
| 145 // | 144 // |
| 146 // Flags in all modes. | 145 // Flags in all modes. |
| 147 // | 146 // |
| 148 #define FLAG FLAG_FULL | 147 #define FLAG FLAG_FULL |
| 149 | 148 |
| 150 // Flags for language modes and experimental language features. | 149 // Flags for language modes and experimental language features. |
| 151 DEFINE_bool(use_strict, false, "enforce strict mode") | 150 DEFINE_BOOL(use_strict, false, "enforce strict mode") |
| 152 DEFINE_bool(es_staging, false, "enable upcoming ES6+ features") | 151 DEFINE_BOOL(es_staging, false, "enable upcoming ES6+ features") |
| 153 | 152 |
| 154 DEFINE_bool(harmony_typeof, false, "enable harmony semantics for typeof") | 153 DEFINE_BOOL(harmony_typeof, false, "enable harmony semantics for typeof") |
| 155 DEFINE_bool(harmony_scoping, false, "enable harmony block scoping") | 154 DEFINE_BOOL(harmony_scoping, false, "enable harmony block scoping") |
| 156 DEFINE_bool(harmony_modules, false, | 155 DEFINE_BOOL(harmony_modules, false, |
| 157 "enable harmony modules (implies block scoping)") | 156 "enable harmony modules (implies block scoping)") |
| 158 DEFINE_bool(harmony_symbols, false, "enable harmony symbols") | 157 DEFINE_BOOL(harmony_symbols, false, "enable harmony symbols") |
| 159 DEFINE_bool(harmony_proxies, false, "enable harmony proxies") | 158 DEFINE_BOOL(harmony_proxies, false, "enable harmony proxies") |
| 160 DEFINE_bool(harmony_collections, false, | 159 DEFINE_BOOL(harmony_collections, false, |
| 161 "enable harmony collections (sets, maps)") | 160 "enable harmony collections (sets, maps)") |
| 162 DEFINE_bool(harmony_generators, false, "enable harmony generators") | 161 DEFINE_BOOL(harmony_generators, false, "enable harmony generators") |
| 163 DEFINE_bool(harmony_iteration, false, "enable harmony iteration (for-of)") | 162 DEFINE_BOOL(harmony_iteration, false, "enable harmony iteration (for-of)") |
| 164 DEFINE_bool(harmony_numeric_literals, false, | 163 DEFINE_BOOL(harmony_numeric_literals, false, |
| 165 "enable harmony numeric literals (0o77, 0b11)") | 164 "enable harmony numeric literals (0o77, 0b11)") |
| 166 DEFINE_bool(harmony_strings, false, "enable harmony string") | 165 DEFINE_BOOL(harmony_strings, false, "enable harmony string") |
| 167 DEFINE_bool(harmony_arrays, false, "enable harmony arrays") | 166 DEFINE_BOOL(harmony_arrays, false, "enable harmony arrays") |
| 168 DEFINE_bool(harmony_maths, false, "enable harmony math functions") | 167 DEFINE_BOOL(harmony_maths, false, "enable harmony math functions") |
| 169 DEFINE_bool(harmony, false, "enable all harmony features (except typeof)") | 168 DEFINE_BOOL(harmony, false, "enable all harmony features (except typeof)") |
| 170 | 169 |
| 171 DEFINE_implication(harmony, harmony_scoping) | 170 DEFINE_IMPLICATION(harmony, harmony_scoping) |
| 172 DEFINE_implication(harmony, harmony_modules) | 171 DEFINE_IMPLICATION(harmony, harmony_modules) |
| 173 DEFINE_implication(harmony, harmony_proxies) | 172 DEFINE_IMPLICATION(harmony, harmony_proxies) |
| 174 DEFINE_implication(harmony, harmony_collections) | 173 DEFINE_IMPLICATION(harmony, harmony_collections) |
| 175 DEFINE_implication(harmony, harmony_generators) | 174 DEFINE_IMPLICATION(harmony, harmony_generators) |
| 176 DEFINE_implication(harmony, harmony_iteration) | 175 DEFINE_IMPLICATION(harmony, harmony_iteration) |
| 177 DEFINE_implication(harmony, harmony_numeric_literals) | 176 DEFINE_IMPLICATION(harmony, harmony_numeric_literals) |
| 178 DEFINE_implication(harmony, harmony_strings) | 177 DEFINE_IMPLICATION(harmony, harmony_strings) |
| 179 DEFINE_implication(harmony, harmony_arrays) | 178 DEFINE_IMPLICATION(harmony, harmony_arrays) |
| 180 DEFINE_implication(harmony_modules, harmony_scoping) | 179 DEFINE_IMPLICATION(harmony_modules, harmony_scoping) |
| 181 DEFINE_implication(harmony_collections, harmony_symbols) | 180 DEFINE_IMPLICATION(harmony_collections, harmony_symbols) |
| 182 DEFINE_implication(harmony_generators, harmony_symbols) | 181 DEFINE_IMPLICATION(harmony_generators, harmony_symbols) |
| 183 DEFINE_implication(harmony_iteration, harmony_symbols) | 182 DEFINE_IMPLICATION(harmony_iteration, harmony_symbols) |
| 184 | 183 |
| 185 DEFINE_implication(harmony, es_staging) | 184 DEFINE_IMPLICATION(harmony, es_staging) |
| 186 DEFINE_implication(es_staging, harmony_maths) | 185 DEFINE_IMPLICATION(es_staging, harmony_maths) |
| 187 DEFINE_implication(es_staging, harmony_symbols) | 186 DEFINE_IMPLICATION(es_staging, harmony_symbols) |
| 188 DEFINE_implication(es_staging, harmony_collections) | 187 DEFINE_IMPLICATION(es_staging, harmony_collections) |
| 189 | 188 |
| 190 // Flags for experimental implementation features. | 189 // Flags for experimental implementation features. |
| 191 DEFINE_bool(packed_arrays, true, "optimizes arrays that have no holes") | 190 DEFINE_BOOL(packed_arrays, true, "optimizes arrays that have no holes") |
| 192 DEFINE_bool(smi_only_arrays, true, "tracks arrays with only smi values") | 191 DEFINE_BOOL(smi_only_arrays, true, "tracks arrays with only smi values") |
| 193 DEFINE_bool(compiled_keyed_dictionary_loads, true, | 192 DEFINE_BOOL(compiled_keyed_dictionary_loads, true, |
| 194 "use optimizing compiler to generate keyed dictionary load stubs") | 193 "use optimizing compiler to generate keyed dictionary load stubs") |
| 195 DEFINE_bool(compiled_keyed_generic_loads, false, | 194 DEFINE_BOOL(compiled_keyed_generic_loads, false, |
| 196 "use optimizing compiler to generate keyed generic load stubs") | 195 "use optimizing compiler to generate keyed generic load stubs") |
| 197 DEFINE_bool(clever_optimizations, true, | 196 DEFINE_BOOL(clever_optimizations, true, |
| 198 "Optimize object size, Array shift, DOM strings and string +") | 197 "Optimize object size, Array shift, DOM strings and string +") |
| 199 // TODO(hpayer): We will remove this flag as soon as we have pretenuring | 198 // TODO(hpayer): We will remove this flag as soon as we have pretenuring |
| 200 // support for specific allocation sites. | 199 // support for specific allocation sites. |
| 201 DEFINE_bool(pretenuring_call_new, false, "pretenure call new") | 200 DEFINE_BOOL(pretenuring_call_new, false, "pretenure call new") |
| 202 DEFINE_bool(allocation_site_pretenuring, true, | 201 DEFINE_BOOL(allocation_site_pretenuring, true, |
| 203 "pretenure with allocation sites") | 202 "pretenure with allocation sites") |
| 204 DEFINE_bool(trace_pretenuring, false, | 203 DEFINE_BOOL(trace_pretenuring, false, |
| 205 "trace pretenuring decisions of HAllocate instructions") | 204 "trace pretenuring decisions of HAllocate instructions") |
| 206 DEFINE_bool(trace_pretenuring_statistics, false, | 205 DEFINE_BOOL(trace_pretenuring_statistics, false, |
| 207 "trace allocation site pretenuring statistics") | 206 "trace allocation site pretenuring statistics") |
| 208 DEFINE_bool(track_fields, true, "track fields with only smi values") | 207 DEFINE_BOOL(track_fields, true, "track fields with only smi values") |
| 209 DEFINE_bool(track_double_fields, true, "track fields with double values") | 208 DEFINE_BOOL(track_double_fields, true, "track fields with double values") |
| 210 DEFINE_bool(track_heap_object_fields, true, "track fields with heap values") | 209 DEFINE_BOOL(track_heap_object_fields, true, "track fields with heap values") |
| 211 DEFINE_bool(track_computed_fields, true, "track computed boilerplate fields") | 210 DEFINE_BOOL(track_computed_fields, true, "track computed boilerplate fields") |
| 212 DEFINE_implication(track_double_fields, track_fields) | 211 DEFINE_IMPLICATION(track_double_fields, track_fields) |
| 213 DEFINE_implication(track_heap_object_fields, track_fields) | 212 DEFINE_IMPLICATION(track_heap_object_fields, track_fields) |
| 214 DEFINE_implication(track_computed_fields, track_fields) | 213 DEFINE_IMPLICATION(track_computed_fields, track_fields) |
| 215 DEFINE_bool(track_field_types, true, "track field types") | 214 DEFINE_BOOL(track_field_types, true, "track field types") |
| 216 DEFINE_implication(track_field_types, track_fields) | 215 DEFINE_IMPLICATION(track_field_types, track_fields) |
| 217 DEFINE_implication(track_field_types, track_heap_object_fields) | 216 DEFINE_IMPLICATION(track_field_types, track_heap_object_fields) |
| 218 DEFINE_bool(smi_binop, true, "support smi representation in binary operations") | 217 DEFINE_BOOL(smi_binop, true, "support smi representation in binary operations") |
| 219 | 218 |
| 220 // Flags for optimization types. | 219 // Flags for optimization types. |
| 221 DEFINE_bool(optimize_for_size, false, | 220 DEFINE_BOOL(optimize_for_size, false, |
| 222 "Enables optimizations which favor memory size over execution " | 221 "Enables optimizations which favor memory size over execution " |
| 223 "speed.") | 222 "speed.") |
| 224 | 223 |
| 225 // Flags for data representation optimizations | 224 // Flags for data representation optimizations |
| 226 DEFINE_bool(unbox_double_arrays, true, "automatically unbox arrays of doubles") | 225 DEFINE_BOOL(unbox_double_arrays, true, "automatically unbox arrays of doubles") |
| 227 DEFINE_bool(string_slices, true, "use string slices") | 226 DEFINE_BOOL(string_slices, true, "use string slices") |
| 228 | 227 |
| 229 // Flags for Crankshaft. | 228 // Flags for Crankshaft. |
| 230 DEFINE_bool(crankshaft, true, "use crankshaft") | 229 DEFINE_BOOL(crankshaft, true, "use crankshaft") |
| 231 DEFINE_string(hydrogen_filter, "*", "optimization filter") | 230 DEFINE_STRING(hydrogen_filter, "*", "optimization filter") |
| 232 DEFINE_bool(use_gvn, true, "use hydrogen global value numbering") | 231 DEFINE_BOOL(use_gvn, true, "use hydrogen global value numbering") |
| 233 DEFINE_int(gvn_iterations, 3, "maximum number of GVN fix-point iterations") | 232 DEFINE_INT(gvn_iterations, 3, "maximum number of GVN fix-point iterations") |
| 234 DEFINE_bool(use_canonicalizing, true, "use hydrogen instruction canonicalizing") | 233 DEFINE_BOOL(use_canonicalizing, true, "use hydrogen instruction canonicalizing") |
| 235 DEFINE_bool(use_inlining, true, "use function inlining") | 234 DEFINE_BOOL(use_inlining, true, "use function inlining") |
| 236 DEFINE_bool(use_escape_analysis, true, "use hydrogen escape analysis") | 235 DEFINE_BOOL(use_escape_analysis, true, "use hydrogen escape analysis") |
| 237 DEFINE_bool(use_allocation_folding, true, "use allocation folding") | 236 DEFINE_BOOL(use_allocation_folding, true, "use allocation folding") |
| 238 DEFINE_bool(use_local_allocation_folding, false, "only fold in basic blocks") | 237 DEFINE_BOOL(use_local_allocation_folding, false, "only fold in basic blocks") |
| 239 DEFINE_bool(use_write_barrier_elimination, true, | 238 DEFINE_BOOL(use_write_barrier_elimination, true, |
| 240 "eliminate write barriers targeting allocations in optimized code") | 239 "eliminate write barriers targeting allocations in optimized code") |
| 241 DEFINE_int(max_inlining_levels, 5, "maximum number of inlining levels") | 240 DEFINE_INT(max_inlining_levels, 5, "maximum number of inlining levels") |
| 242 DEFINE_int(max_inlined_source_size, 600, | 241 DEFINE_INT(max_inlined_source_size, 600, |
| 243 "maximum source size in bytes considered for a single inlining") | 242 "maximum source size in bytes considered for a single inlining") |
| 244 DEFINE_int(max_inlined_nodes, 196, | 243 DEFINE_INT(max_inlined_nodes, 196, |
| 245 "maximum number of AST nodes considered for a single inlining") | 244 "maximum number of AST nodes considered for a single inlining") |
| 246 DEFINE_int(max_inlined_nodes_cumulative, 400, | 245 DEFINE_INT(max_inlined_nodes_cumulative, 400, |
| 247 "maximum cumulative number of AST nodes considered for inlining") | 246 "maximum cumulative number of AST nodes considered for inlining") |
| 248 DEFINE_bool(loop_invariant_code_motion, true, "loop invariant code motion") | 247 DEFINE_BOOL(loop_invariant_code_motion, true, "loop invariant code motion") |
| 249 DEFINE_bool(fast_math, true, "faster (but maybe less accurate) math functions") | 248 DEFINE_BOOL(fast_math, true, "faster (but maybe less accurate) math functions") |
| 250 DEFINE_bool(collect_megamorphic_maps_from_stub_cache, true, | 249 DEFINE_BOOL(collect_megamorphic_maps_from_stub_cache, true, |
| 251 "crankshaft harvests type feedback from stub cache") | 250 "crankshaft harvests type feedback from stub cache") |
| 252 DEFINE_bool(hydrogen_stats, false, "print statistics for hydrogen") | 251 DEFINE_BOOL(hydrogen_stats, false, "print statistics for hydrogen") |
| 253 DEFINE_bool(trace_check_elimination, false, "trace check elimination phase") | 252 DEFINE_BOOL(trace_check_elimination, false, "trace check elimination phase") |
| 254 DEFINE_bool(trace_hydrogen, false, "trace generated hydrogen to file") | 253 DEFINE_BOOL(trace_hydrogen, false, "trace generated hydrogen to file") |
| 255 DEFINE_string(trace_hydrogen_filter, "*", "hydrogen tracing filter") | 254 DEFINE_STRING(trace_hydrogen_filter, "*", "hydrogen tracing filter") |
| 256 DEFINE_bool(trace_hydrogen_stubs, false, "trace generated hydrogen for stubs") | 255 DEFINE_BOOL(trace_hydrogen_stubs, false, "trace generated hydrogen for stubs") |
| 257 DEFINE_string(trace_hydrogen_file, NULL, "trace hydrogen to given file name") | 256 DEFINE_STRING(trace_hydrogen_file, NULL, "trace hydrogen to given file name") |
| 258 DEFINE_string(trace_phase, "HLZ", "trace generated IR for specified phases") | 257 DEFINE_STRING(trace_phase, "HLZ", "trace generated IR for specified phases") |
| 259 DEFINE_bool(trace_inlining, false, "trace inlining decisions") | 258 DEFINE_BOOL(trace_inlining, false, "trace inlining decisions") |
| 260 DEFINE_bool(trace_load_elimination, false, "trace load elimination") | 259 DEFINE_BOOL(trace_load_elimination, false, "trace load elimination") |
| 261 DEFINE_bool(trace_store_elimination, false, "trace store elimination") | 260 DEFINE_BOOL(trace_store_elimination, false, "trace store elimination") |
| 262 DEFINE_bool(trace_alloc, false, "trace register allocator") | 261 DEFINE_BOOL(trace_alloc, false, "trace register allocator") |
| 263 DEFINE_bool(trace_all_uses, false, "trace all use positions") | 262 DEFINE_BOOL(trace_all_uses, false, "trace all use positions") |
| 264 DEFINE_bool(trace_range, false, "trace range analysis") | 263 DEFINE_BOOL(trace_range, false, "trace range analysis") |
| 265 DEFINE_bool(trace_gvn, false, "trace global value numbering") | 264 DEFINE_BOOL(trace_gvn, false, "trace global value numbering") |
| 266 DEFINE_bool(trace_representation, false, "trace representation types") | 265 DEFINE_BOOL(trace_representation, false, "trace representation types") |
| 267 DEFINE_bool(trace_removable_simulates, false, "trace removable simulates") | 266 DEFINE_BOOL(trace_removable_simulates, false, "trace removable simulates") |
| 268 DEFINE_bool(trace_escape_analysis, false, "trace hydrogen escape analysis") | 267 DEFINE_BOOL(trace_escape_analysis, false, "trace hydrogen escape analysis") |
| 269 DEFINE_bool(trace_allocation_folding, false, "trace allocation folding") | 268 DEFINE_BOOL(trace_allocation_folding, false, "trace allocation folding") |
| 270 DEFINE_bool(trace_track_allocation_sites, false, | 269 DEFINE_BOOL(trace_track_allocation_sites, false, |
| 271 "trace the tracking of allocation sites") | 270 "trace the tracking of allocation sites") |
| 272 DEFINE_bool(trace_migration, false, "trace object migration") | 271 DEFINE_BOOL(trace_migration, false, "trace object migration") |
| 273 DEFINE_bool(trace_generalization, false, "trace map generalization") | 272 DEFINE_BOOL(trace_generalization, false, "trace map generalization") |
| 274 DEFINE_bool(stress_pointer_maps, false, "pointer map for every instruction") | 273 DEFINE_BOOL(stress_pointer_maps, false, "pointer map for every instruction") |
| 275 DEFINE_bool(stress_environments, false, "environment for every instruction") | 274 DEFINE_BOOL(stress_environments, false, "environment for every instruction") |
| 276 DEFINE_int(deopt_every_n_times, 0, | 275 DEFINE_INT(deopt_every_n_times, 0, |
| 277 "deoptimize every n times a deopt point is passed") | 276 "deoptimize every n times a deopt point is passed") |
| 278 DEFINE_int(deopt_every_n_garbage_collections, 0, | 277 DEFINE_INT(deopt_every_n_garbage_collections, 0, |
| 279 "deoptimize every n garbage collections") | 278 "deoptimize every n garbage collections") |
| 280 DEFINE_bool(print_deopt_stress, false, "print number of possible deopt points") | 279 DEFINE_BOOL(print_deopt_stress, false, "print number of possible deopt points") |
| 281 DEFINE_bool(trap_on_deopt, false, "put a break point before deoptimizing") | 280 DEFINE_BOOL(trap_on_deopt, false, "put a break point before deoptimizing") |
| 282 DEFINE_bool(trap_on_stub_deopt, false, | 281 DEFINE_BOOL(trap_on_stub_deopt, false, |
| 283 "put a break point before deoptimizing a stub") | 282 "put a break point before deoptimizing a stub") |
| 284 DEFINE_bool(deoptimize_uncommon_cases, true, "deoptimize uncommon cases") | 283 DEFINE_BOOL(deoptimize_uncommon_cases, true, "deoptimize uncommon cases") |
| 285 DEFINE_bool(polymorphic_inlining, true, "polymorphic inlining") | 284 DEFINE_BOOL(polymorphic_inlining, true, "polymorphic inlining") |
| 286 DEFINE_bool(use_osr, true, "use on-stack replacement") | 285 DEFINE_BOOL(use_osr, true, "use on-stack replacement") |
| 287 DEFINE_bool(array_bounds_checks_elimination, true, | 286 DEFINE_BOOL(array_bounds_checks_elimination, true, |
| 288 "perform array bounds checks elimination") | 287 "perform array bounds checks elimination") |
| 289 DEFINE_bool(trace_bce, false, "trace array bounds check elimination") | 288 DEFINE_BOOL(trace_bce, false, "trace array bounds check elimination") |
| 290 DEFINE_bool(array_bounds_checks_hoisting, false, | 289 DEFINE_BOOL(array_bounds_checks_hoisting, false, |
| 291 "perform array bounds checks hoisting") | 290 "perform array bounds checks hoisting") |
| 292 DEFINE_bool(array_index_dehoisting, true, | 291 DEFINE_BOOL(array_index_dehoisting, true, "perform array index dehoisting") |
| 293 "perform array index dehoisting") | 292 DEFINE_BOOL(analyze_environment_liveness, true, |
| 294 DEFINE_bool(analyze_environment_liveness, true, | |
| 295 "analyze liveness of environment slots and zap dead values") | 293 "analyze liveness of environment slots and zap dead values") |
| 296 DEFINE_bool(load_elimination, true, "use load elimination") | 294 DEFINE_BOOL(load_elimination, true, "use load elimination") |
| 297 DEFINE_bool(check_elimination, true, "use check elimination") | 295 DEFINE_BOOL(check_elimination, true, "use check elimination") |
| 298 DEFINE_bool(store_elimination, false, "use store elimination") | 296 DEFINE_BOOL(store_elimination, false, "use store elimination") |
| 299 DEFINE_bool(dead_code_elimination, true, "use dead code elimination") | 297 DEFINE_BOOL(dead_code_elimination, true, "use dead code elimination") |
| 300 DEFINE_bool(fold_constants, true, "use constant folding") | 298 DEFINE_BOOL(fold_constants, true, "use constant folding") |
| 301 DEFINE_bool(trace_dead_code_elimination, false, "trace dead code elimination") | 299 DEFINE_BOOL(trace_dead_code_elimination, false, "trace dead code elimination") |
| 302 DEFINE_bool(unreachable_code_elimination, true, "eliminate unreachable code") | 300 DEFINE_BOOL(unreachable_code_elimination, true, "eliminate unreachable code") |
| 303 DEFINE_bool(trace_osr, false, "trace on-stack replacement") | 301 DEFINE_BOOL(trace_osr, false, "trace on-stack replacement") |
| 304 DEFINE_int(stress_runs, 0, "number of stress runs") | 302 DEFINE_INT(stress_runs, 0, "number of stress runs") |
| 305 DEFINE_bool(optimize_closures, true, "optimize closures") | 303 DEFINE_BOOL(optimize_closures, true, "optimize closures") |
| 306 DEFINE_bool(lookup_sample_by_shared, true, | 304 DEFINE_BOOL(lookup_sample_by_shared, true, |
| 307 "when picking a function to optimize, watch for shared function " | 305 "when picking a function to optimize, watch for shared function " |
| 308 "info, not JSFunction itself") | 306 "info, not JSFunction itself") |
| 309 DEFINE_bool(cache_optimized_code, true, | 307 DEFINE_BOOL(cache_optimized_code, true, "cache optimized code for closures") |
| 310 "cache optimized code for closures") | 308 DEFINE_BOOL(flush_optimized_code_cache, true, |
| 311 DEFINE_bool(flush_optimized_code_cache, true, | |
| 312 "flushes the cache of optimized code for closures on every GC") | 309 "flushes the cache of optimized code for closures on every GC") |
| 313 DEFINE_bool(inline_construct, true, "inline constructor calls") | 310 DEFINE_BOOL(inline_construct, true, "inline constructor calls") |
| 314 DEFINE_bool(inline_arguments, true, "inline functions with arguments object") | 311 DEFINE_BOOL(inline_arguments, true, "inline functions with arguments object") |
| 315 DEFINE_bool(inline_accessors, true, "inline JavaScript accessors") | 312 DEFINE_BOOL(inline_accessors, true, "inline JavaScript accessors") |
| 316 DEFINE_int(escape_analysis_iterations, 2, | 313 DEFINE_INT(escape_analysis_iterations, 2, |
| 317 "maximum number of escape analysis fix-point iterations") | 314 "maximum number of escape analysis fix-point iterations") |
| 318 | 315 |
| 319 DEFINE_bool(optimize_for_in, true, | 316 DEFINE_BOOL(optimize_for_in, true, "optimize functions containing for-in loops") |
| 320 "optimize functions containing for-in loops") | 317 DEFINE_BOOL(opt_safe_uint32_operations, true, |
| 321 DEFINE_bool(opt_safe_uint32_operations, true, | |
| 322 "allow uint32 values on optimize frames if they are used only in " | 318 "allow uint32 values on optimize frames if they are used only in " |
| 323 "safe operations") | 319 "safe operations") |
| 324 | 320 |
| 325 DEFINE_bool(concurrent_recompilation, true, | 321 DEFINE_BOOL(concurrent_recompilation, true, |
| 326 "optimizing hot functions asynchronously on a separate thread") | 322 "optimizing hot functions asynchronously on a separate thread") |
| 327 DEFINE_bool(trace_concurrent_recompilation, false, | 323 DEFINE_BOOL(trace_concurrent_recompilation, false, |
| 328 "track concurrent recompilation") | 324 "track concurrent recompilation") |
| 329 DEFINE_int(concurrent_recompilation_queue_length, 8, | 325 DEFINE_INT(concurrent_recompilation_queue_length, 8, |
| 330 "the length of the concurrent compilation queue") | 326 "the length of the concurrent compilation queue") |
| 331 DEFINE_int(concurrent_recompilation_delay, 0, | 327 DEFINE_INT(concurrent_recompilation_delay, 0, |
| 332 "artificial compilation delay in ms") | 328 "artificial compilation delay in ms") |
| 333 DEFINE_bool(block_concurrent_recompilation, false, | 329 DEFINE_BOOL(block_concurrent_recompilation, false, |
| 334 "block queued jobs until released") | 330 "block queued jobs until released") |
| 335 DEFINE_bool(concurrent_osr, true, | 331 DEFINE_BOOL(concurrent_osr, true, "concurrent on-stack replacement") |
| 336 "concurrent on-stack replacement") | 332 DEFINE_IMPLICATION(concurrent_osr, concurrent_recompilation) |
| 337 DEFINE_implication(concurrent_osr, concurrent_recompilation) | 333 |
| 338 | 334 DEFINE_BOOL(omit_map_checks_for_leaf_maps, true, |
| 339 DEFINE_bool(omit_map_checks_for_leaf_maps, true, | |
| 340 "do not emit check maps for constant values that have a leaf map, " | 335 "do not emit check maps for constant values that have a leaf map, " |
| 341 "deoptimize the optimized code if the layout of the maps changes.") | 336 "deoptimize the optimized code if the layout of the maps changes.") |
| 342 | 337 |
| 343 DEFINE_int(typed_array_max_size_in_heap, 64, | 338 DEFINE_INT(typed_array_max_size_in_heap, 64, |
| 344 "threshold for in-heap typed array") | 339 "threshold for in-heap typed array") |
| 345 | 340 |
| 346 // Profiler flags. | 341 // Profiler flags. |
| 347 DEFINE_int(frame_count, 1, "number of stack frames inspected by the profiler") | 342 DEFINE_INT(frame_count, 1, "number of stack frames inspected by the profiler") |
| 348 // 0x1800 fits in the immediate field of an ARM instruction. | 343 // 0x1800 fits in the immediate field of an ARM instruction. |
| 349 DEFINE_int(interrupt_budget, 0x1800, | 344 DEFINE_INT(interrupt_budget, 0x1800, |
| 350 "execution budget before interrupt is triggered") | 345 "execution budget before interrupt is triggered") |
| 351 DEFINE_int(type_info_threshold, 25, | 346 DEFINE_INT(type_info_threshold, 25, |
| 352 "percentage of ICs that must have type info to allow optimization") | 347 "percentage of ICs that must have type info to allow optimization") |
| 353 DEFINE_int(self_opt_count, 130, "call count before self-optimization") | 348 DEFINE_INT(self_opt_count, 130, "call count before self-optimization") |
| 354 | 349 |
| 355 DEFINE_bool(trace_opt_verbose, false, "extra verbose compilation tracing") | 350 DEFINE_BOOL(trace_opt_verbose, false, "extra verbose compilation tracing") |
| 356 DEFINE_implication(trace_opt_verbose, trace_opt) | 351 DEFINE_IMPLICATION(trace_opt_verbose, trace_opt) |
| 357 | 352 |
| 358 // assembler-ia32.cc / assembler-arm.cc / assembler-x64.cc | 353 // assembler-ia32.cc / assembler-arm.cc / assembler-x64.cc |
| 359 DEFINE_bool(debug_code, false, | 354 DEFINE_BOOL(debug_code, false, "generate extra code (assertions) for debugging") |
| 360 "generate extra code (assertions) for debugging") | 355 DEFINE_BOOL(code_comments, false, "emit comments in code disassembly") |
| 361 DEFINE_bool(code_comments, false, "emit comments in code disassembly") | 356 DEFINE_BOOL(enable_sse3, true, "enable use of SSE3 instructions if available") |
| 362 DEFINE_bool(enable_sse3, true, | 357 DEFINE_BOOL(enable_sse4_1, true, |
| 363 "enable use of SSE3 instructions if available") | |
| 364 DEFINE_bool(enable_sse4_1, true, | |
| 365 "enable use of SSE4.1 instructions if available") | 358 "enable use of SSE4.1 instructions if available") |
| 366 DEFINE_bool(enable_sahf, true, | 359 DEFINE_BOOL(enable_sahf, true, |
| 367 "enable use of SAHF instruction if available (X64 only)") | 360 "enable use of SAHF instruction if available (X64 only)") |
| 368 DEFINE_bool(enable_vfp3, ENABLE_VFP3_DEFAULT, | 361 DEFINE_BOOL(enable_vfp3, ENABLE_VFP3_DEFAULT, |
| 369 "enable use of VFP3 instructions if available") | 362 "enable use of VFP3 instructions if available") |
| 370 DEFINE_bool(enable_armv7, ENABLE_ARMV7_DEFAULT, | 363 DEFINE_BOOL(enable_armv7, ENABLE_ARMV7_DEFAULT, |
| 371 "enable use of ARMv7 instructions if available (ARM only)") | 364 "enable use of ARMv7 instructions if available (ARM only)") |
| 372 DEFINE_bool(enable_neon, ENABLE_NEON_DEFAULT, | 365 DEFINE_BOOL(enable_neon, ENABLE_NEON_DEFAULT, |
| 373 "enable use of NEON instructions if available (ARM only)") | 366 "enable use of NEON instructions if available (ARM only)") |
| 374 DEFINE_bool(enable_sudiv, true, | 367 DEFINE_BOOL(enable_sudiv, true, |
| 375 "enable use of SDIV and UDIV instructions if available (ARM only)") | 368 "enable use of SDIV and UDIV instructions if available (ARM only)") |
| 376 DEFINE_bool(enable_mls, true, | 369 DEFINE_BOOL(enable_mls, true, |
| 377 "enable use of MLS instructions if available (ARM only)") | 370 "enable use of MLS instructions if available (ARM only)") |
| 378 DEFINE_bool(enable_movw_movt, false, | 371 DEFINE_BOOL(enable_movw_movt, false, |
| 379 "enable loading 32-bit constant by means of movw/movt " | 372 "enable loading 32-bit constant by means of movw/movt " |
| 380 "instruction pairs (ARM only)") | 373 "instruction pairs (ARM only)") |
| 381 DEFINE_bool(enable_unaligned_accesses, true, | 374 DEFINE_BOOL(enable_unaligned_accesses, true, |
| 382 "enable unaligned accesses for ARMv7 (ARM only)") | 375 "enable unaligned accesses for ARMv7 (ARM only)") |
| 383 DEFINE_bool(enable_32dregs, ENABLE_32DREGS_DEFAULT, | 376 DEFINE_BOOL(enable_32dregs, ENABLE_32DREGS_DEFAULT, |
| 384 "enable use of d16-d31 registers on ARM - this requires VFP3") | 377 "enable use of d16-d31 registers on ARM - this requires VFP3") |
| 385 DEFINE_bool(enable_vldr_imm, false, | 378 DEFINE_BOOL(enable_vldr_imm, false, |
| 386 "enable use of constant pools for double immediate (ARM only)") | 379 "enable use of constant pools for double immediate (ARM only)") |
| 387 DEFINE_bool(force_long_branches, false, | 380 DEFINE_BOOL(force_long_branches, false, |
| 388 "force all emitted branches to be in long mode (MIPS only)") | 381 "force all emitted branches to be in long mode (MIPS only)") |
| 389 | 382 |
| 390 // cpu-arm64.cc | 383 // cpu-arm64.cc |
| 391 DEFINE_bool(enable_always_align_csp, true, | 384 DEFINE_BOOL(enable_always_align_csp, true, |
| 392 "enable alignment of csp to 16 bytes on platforms which prefer " | 385 "enable alignment of csp to 16 bytes on platforms which prefer " |
| 393 "the register to always be aligned (ARM64 only)") | 386 "the register to always be aligned (ARM64 only)") |
| 394 | 387 |
| 395 // bootstrapper.cc | 388 // bootstrapper.cc |
| 396 DEFINE_string(expose_natives_as, NULL, "expose natives in global object") | 389 DEFINE_STRING(expose_natives_as, NULL, "expose natives in global object") |
| 397 DEFINE_string(expose_debug_as, NULL, "expose debug in global object") | 390 DEFINE_STRING(expose_debug_as, NULL, "expose debug in global object") |
| 398 DEFINE_bool(expose_free_buffer, false, "expose freeBuffer extension") | 391 DEFINE_BOOL(expose_free_buffer, false, "expose freeBuffer extension") |
| 399 DEFINE_bool(expose_gc, false, "expose gc extension") | 392 DEFINE_BOOL(expose_gc, false, "expose gc extension") |
| 400 DEFINE_string(expose_gc_as, NULL, | 393 DEFINE_STRING(expose_gc_as, NULL, |
| 401 "expose gc extension under the specified name") | 394 "expose gc extension under the specified name") |
| 402 DEFINE_implication(expose_gc_as, expose_gc) | 395 DEFINE_IMPLICATION(expose_gc_as, expose_gc) |
| 403 DEFINE_bool(expose_externalize_string, false, | 396 DEFINE_BOOL(expose_externalize_string, false, |
| 404 "expose externalize string extension") | 397 "expose externalize string extension") |
| 405 DEFINE_bool(expose_trigger_failure, false, "expose trigger-failure extension") | 398 DEFINE_BOOL(expose_trigger_failure, false, "expose trigger-failure extension") |
| 406 DEFINE_int(stack_trace_limit, 10, "number of stack frames to capture") | 399 DEFINE_INT(stack_trace_limit, 10, "number of stack frames to capture") |
| 407 DEFINE_bool(builtins_in_stack_traces, false, | 400 DEFINE_BOOL(builtins_in_stack_traces, false, |
| 408 "show built-in functions in stack traces") | 401 "show built-in functions in stack traces") |
| 409 DEFINE_bool(disable_native_files, false, "disable builtin natives files") | 402 DEFINE_BOOL(disable_native_files, false, "disable builtin natives files") |
| 410 | 403 |
| 411 // builtins-ia32.cc | 404 // builtins-ia32.cc |
| 412 DEFINE_bool(inline_new, true, "use fast inline allocation") | 405 DEFINE_BOOL(inline_new, true, "use fast inline allocation") |
| 413 | 406 |
| 414 // codegen-ia32.cc / codegen-arm.cc | 407 // codegen-ia32.cc / codegen-arm.cc |
| 415 DEFINE_bool(trace_codegen, false, | 408 DEFINE_BOOL(trace_codegen, false, |
| 416 "print name of functions for which code is generated") | 409 "print name of functions for which code is generated") |
| 417 DEFINE_bool(trace, false, "trace function calls") | 410 DEFINE_BOOL(trace, false, "trace function calls") |
| 418 DEFINE_bool(mask_constants_with_cookie, true, | 411 DEFINE_BOOL(mask_constants_with_cookie, true, |
| 419 "use random jit cookie to mask large constants") | 412 "use random jit cookie to mask large constants") |
| 420 | 413 |
| 421 // codegen.cc | 414 // codegen.cc |
| 422 DEFINE_bool(lazy, true, "use lazy compilation") | 415 DEFINE_BOOL(lazy, true, "use lazy compilation") |
| 423 DEFINE_bool(trace_opt, false, "trace lazy optimization") | 416 DEFINE_BOOL(trace_opt, false, "trace lazy optimization") |
| 424 DEFINE_bool(trace_opt_stats, false, "trace lazy optimization statistics") | 417 DEFINE_BOOL(trace_opt_stats, false, "trace lazy optimization statistics") |
| 425 DEFINE_bool(opt, true, "use adaptive optimizations") | 418 DEFINE_BOOL(opt, true, "use adaptive optimizations") |
| 426 DEFINE_bool(always_opt, false, "always try to optimize functions") | 419 DEFINE_BOOL(always_opt, false, "always try to optimize functions") |
| 427 DEFINE_bool(always_osr, false, "always try to OSR functions") | 420 DEFINE_BOOL(always_osr, false, "always try to OSR functions") |
| 428 DEFINE_bool(prepare_always_opt, false, "prepare for turning on always opt") | 421 DEFINE_BOOL(prepare_always_opt, false, "prepare for turning on always opt") |
| 429 DEFINE_bool(trace_deopt, false, "trace optimize function deoptimization") | 422 DEFINE_BOOL(trace_deopt, false, "trace optimize function deoptimization") |
| 430 DEFINE_bool(trace_stub_failures, false, | 423 DEFINE_BOOL(trace_stub_failures, false, |
| 431 "trace deoptimization of generated code stubs") | 424 "trace deoptimization of generated code stubs") |
| 432 | 425 |
| 433 // compiler.cc | 426 // compiler.cc |
| 434 DEFINE_int(min_preparse_length, 1024, | 427 DEFINE_INT(min_preparse_length, 1024, |
| 435 "minimum length for automatic enable preparsing") | 428 "minimum length for automatic enable preparsing") |
| 436 DEFINE_bool(always_full_compiler, false, | 429 DEFINE_BOOL(always_full_compiler, false, |
| 437 "try to use the dedicated run-once backend for all code") | 430 "try to use the dedicated run-once backend for all code") |
| 438 DEFINE_int(max_opt_count, 10, | 431 DEFINE_INT(max_opt_count, 10, |
| 439 "maximum number of optimization attempts before giving up.") | 432 "maximum number of optimization attempts before giving up.") |
| 440 | 433 |
| 441 // compilation-cache.cc | 434 // compilation-cache.cc |
| 442 DEFINE_bool(compilation_cache, true, "enable compilation cache") | 435 DEFINE_BOOL(compilation_cache, true, "enable compilation cache") |
| 443 | 436 |
| 444 DEFINE_bool(cache_prototype_transitions, true, "cache prototype transitions") | 437 DEFINE_BOOL(cache_prototype_transitions, true, "cache prototype transitions") |
| 445 | 438 |
| 446 // cpu-profiler.cc | 439 // cpu-profiler.cc |
| 447 DEFINE_int(cpu_profiler_sampling_interval, 1000, | 440 DEFINE_INT(cpu_profiler_sampling_interval, 1000, |
| 448 "CPU profiler sampling interval in microseconds") | 441 "CPU profiler sampling interval in microseconds") |
| 449 | 442 |
| 450 // debug.cc | 443 // debug.cc |
| 451 DEFINE_bool(trace_debug_json, false, "trace debugging JSON request/response") | 444 DEFINE_BOOL(trace_debug_json, false, "trace debugging JSON request/response") |
| 452 DEFINE_bool(trace_js_array_abuse, false, | 445 DEFINE_BOOL(trace_js_array_abuse, false, |
| 453 "trace out-of-bounds accesses to JS arrays") | 446 "trace out-of-bounds accesses to JS arrays") |
| 454 DEFINE_bool(trace_external_array_abuse, false, | 447 DEFINE_BOOL(trace_external_array_abuse, false, |
| 455 "trace out-of-bounds-accesses to external arrays") | 448 "trace out-of-bounds-accesses to external arrays") |
| 456 DEFINE_bool(trace_array_abuse, false, | 449 DEFINE_BOOL(trace_array_abuse, false, |
| 457 "trace out-of-bounds accesses to all arrays") | 450 "trace out-of-bounds accesses to all arrays") |
| 458 DEFINE_implication(trace_array_abuse, trace_js_array_abuse) | 451 DEFINE_IMPLICATION(trace_array_abuse, trace_js_array_abuse) |
| 459 DEFINE_implication(trace_array_abuse, trace_external_array_abuse) | 452 DEFINE_IMPLICATION(trace_array_abuse, trace_external_array_abuse) |
| 460 DEFINE_bool(enable_liveedit, true, "enable liveedit experimental feature") | 453 DEFINE_BOOL(enable_liveedit, true, "enable liveedit experimental feature") |
| 461 DEFINE_bool(hard_abort, true, "abort by crashing") | 454 DEFINE_BOOL(hard_abort, true, "abort by crashing") |
| 462 | 455 |
| 463 // execution.cc | 456 // execution.cc |
| 464 // Slightly less than 1MB on 64-bit, since Windows' default stack size for | 457 // Slightly less than 1MB on 64-bit, since Windows' default stack size for |
| 465 // the main execution thread is 1MB for both 32 and 64-bit. | 458 // the main execution thread is 1MB for both 32 and 64-bit. |
| 466 DEFINE_int(stack_size, kPointerSize * 123, | 459 DEFINE_INT(stack_size, kPointerSize * 123, |
| 467 "default size of stack region v8 is allowed to use (in kBytes)") | 460 "default size of stack region v8 is allowed to use (in kBytes)") |
| 468 | 461 |
| 469 // frames.cc | 462 // frames.cc |
| 470 DEFINE_int(max_stack_trace_source_length, 300, | 463 DEFINE_INT(max_stack_trace_source_length, 300, |
| 471 "maximum length of function source code printed in a stack trace.") | 464 "maximum length of function source code printed in a stack trace.") |
| 472 | 465 |
| 473 // full-codegen.cc | 466 // full-codegen.cc |
| 474 DEFINE_bool(always_inline_smi_code, false, | 467 DEFINE_BOOL(always_inline_smi_code, false, |
| 475 "always inline smi code in non-opt code") | 468 "always inline smi code in non-opt code") |
| 476 | 469 |
| 477 // heap.cc | 470 // heap.cc |
| 478 DEFINE_int(min_semi_space_size, 0, | 471 DEFINE_INT(min_semi_space_size, 0, |
| 479 "min size of a semi-space (in MBytes), the new space consists of two" | 472 "min size of a semi-space (in MBytes), the new space consists of two" |
| 480 "semi-spaces") | 473 "semi-spaces") |
| 481 DEFINE_int(max_semi_space_size, 0, | 474 DEFINE_INT(max_semi_space_size, 0, |
| 482 "max size of a semi-space (in MBytes), the new space consists of two" | 475 "max size of a semi-space (in MBytes), the new space consists of two" |
| 483 "semi-spaces") | 476 "semi-spaces") |
| 484 DEFINE_int(max_old_space_size, 0, "max size of the old space (in Mbytes)") | 477 DEFINE_INT(max_old_space_size, 0, "max size of the old space (in Mbytes)") |
| 485 DEFINE_int(max_executable_size, 0, "max size of executable memory (in Mbytes)") | 478 DEFINE_INT(max_executable_size, 0, "max size of executable memory (in Mbytes)") |
| 486 DEFINE_bool(gc_global, false, "always perform global GCs") | 479 DEFINE_BOOL(gc_global, false, "always perform global GCs") |
| 487 DEFINE_int(gc_interval, -1, "garbage collect after <n> allocations") | 480 DEFINE_INT(gc_interval, -1, "garbage collect after <n> allocations") |
| 488 DEFINE_bool(trace_gc, false, | 481 DEFINE_BOOL(trace_gc, false, |
| 489 "print one trace line following each garbage collection") | 482 "print one trace line following each garbage collection") |
| 490 DEFINE_bool(trace_gc_nvp, false, | 483 DEFINE_BOOL(trace_gc_nvp, false, |
| 491 "print one detailed trace line in name=value format " | 484 "print one detailed trace line in name=value format " |
| 492 "after each garbage collection") | 485 "after each garbage collection") |
| 493 DEFINE_bool(trace_gc_ignore_scavenger, false, | 486 DEFINE_BOOL(trace_gc_ignore_scavenger, false, |
| 494 "do not print trace line after scavenger collection") | 487 "do not print trace line after scavenger collection") |
| 495 DEFINE_bool(print_cumulative_gc_stat, false, | 488 DEFINE_BOOL(print_cumulative_gc_stat, false, |
| 496 "print cumulative GC statistics in name=value format on exit") | 489 "print cumulative GC statistics in name=value format on exit") |
| 497 DEFINE_bool(print_max_heap_committed, false, | 490 DEFINE_BOOL(print_max_heap_committed, false, |
| 498 "print statistics of the maximum memory committed for the heap " | 491 "print statistics of the maximum memory committed for the heap " |
| 499 "in name=value format on exit") | 492 "in name=value format on exit") |
| 500 DEFINE_bool(trace_gc_verbose, false, | 493 DEFINE_BOOL(trace_gc_verbose, false, |
| 501 "print more details following each garbage collection") | 494 "print more details following each garbage collection") |
| 502 DEFINE_bool(trace_fragmentation, false, | 495 DEFINE_BOOL(trace_fragmentation, false, |
| 503 "report fragmentation for old pointer and data pages") | 496 "report fragmentation for old pointer and data pages") |
| 504 DEFINE_bool(collect_maps, true, | 497 DEFINE_BOOL(collect_maps, true, |
| 505 "garbage collect maps from which no objects can be reached") | 498 "garbage collect maps from which no objects can be reached") |
| 506 DEFINE_bool(weak_embedded_maps_in_ic, true, | 499 DEFINE_BOOL(weak_embedded_maps_in_ic, true, |
| 507 "make maps embedded in inline cache stubs") | 500 "make maps embedded in inline cache stubs") |
| 508 DEFINE_bool(weak_embedded_maps_in_optimized_code, true, | 501 DEFINE_BOOL(weak_embedded_maps_in_optimized_code, true, |
| 509 "make maps embedded in optimized code weak") | 502 "make maps embedded in optimized code weak") |
| 510 DEFINE_bool(weak_embedded_objects_in_optimized_code, true, | 503 DEFINE_BOOL(weak_embedded_objects_in_optimized_code, true, |
| 511 "make objects embedded in optimized code weak") | 504 "make objects embedded in optimized code weak") |
| 512 DEFINE_bool(flush_code, true, | 505 DEFINE_BOOL(flush_code, true, |
| 513 "flush code that we expect not to use again (during full gc)") | 506 "flush code that we expect not to use again (during full gc)") |
| 514 DEFINE_bool(flush_code_incrementally, true, | 507 DEFINE_BOOL(flush_code_incrementally, true, |
| 515 "flush code that we expect not to use again (incrementally)") | 508 "flush code that we expect not to use again (incrementally)") |
| 516 DEFINE_bool(trace_code_flushing, false, "trace code flushing progress") | 509 DEFINE_BOOL(trace_code_flushing, false, "trace code flushing progress") |
| 517 DEFINE_bool(age_code, true, | 510 DEFINE_BOOL(age_code, true, |
| 518 "track un-executed functions to age code and flush only " | 511 "track un-executed functions to age code and flush only " |
| 519 "old code (required for code flushing)") | 512 "old code (required for code flushing)") |
| 520 DEFINE_bool(incremental_marking, true, "use incremental marking") | 513 DEFINE_BOOL(incremental_marking, true, "use incremental marking") |
| 521 DEFINE_bool(incremental_marking_steps, true, "do incremental marking steps") | 514 DEFINE_BOOL(incremental_marking_steps, true, "do incremental marking steps") |
| 522 DEFINE_bool(trace_incremental_marking, false, | 515 DEFINE_BOOL(trace_incremental_marking, false, |
| 523 "trace progress of the incremental marking") | 516 "trace progress of the incremental marking") |
| 524 DEFINE_bool(track_gc_object_stats, false, | 517 DEFINE_BOOL(track_gc_object_stats, false, |
| 525 "track object counts and memory usage") | 518 "track object counts and memory usage") |
| 526 DEFINE_bool(parallel_sweeping, false, "enable parallel sweeping") | 519 DEFINE_BOOL(parallel_sweeping, false, "enable parallel sweeping") |
| 527 DEFINE_bool(concurrent_sweeping, true, "enable concurrent sweeping") | 520 DEFINE_BOOL(concurrent_sweeping, true, "enable concurrent sweeping") |
| 528 DEFINE_int(sweeper_threads, 0, | 521 DEFINE_INT(sweeper_threads, 0, |
| 529 "number of parallel and concurrent sweeping threads") | 522 "number of parallel and concurrent sweeping threads") |
| 530 DEFINE_bool(job_based_sweeping, false, "enable job based sweeping") | 523 DEFINE_BOOL(job_based_sweeping, false, "enable job based sweeping") |
| 531 #ifdef VERIFY_HEAP | 524 #ifdef VERIFY_HEAP |
| 532 DEFINE_bool(verify_heap, false, "verify heap pointers before and after GC") | 525 DEFINE_BOOL(verify_heap, false, "verify heap pointers before and after GC") |
| 533 #endif | 526 #endif |
| 534 | 527 |
| 535 | 528 |
| 536 // heap-snapshot-generator.cc | 529 // heap-snapshot-generator.cc |
| 537 DEFINE_bool(heap_profiler_trace_objects, false, | 530 DEFINE_BOOL(heap_profiler_trace_objects, false, |
| 538 "Dump heap object allocations/movements/size_updates") | 531 "Dump heap object allocations/movements/size_updates") |
| 539 | 532 |
| 540 | 533 |
| 541 // v8.cc | 534 // v8.cc |
| 542 DEFINE_bool(use_idle_notification, true, | 535 DEFINE_BOOL(use_idle_notification, true, |
| 543 "Use idle notification to reduce memory footprint.") | 536 "Use idle notification to reduce memory footprint.") |
| 544 // ic.cc | 537 // ic.cc |
| 545 DEFINE_bool(use_ic, true, "use inline caching") | 538 DEFINE_BOOL(use_ic, true, "use inline caching") |
| 546 | 539 |
| 547 // macro-assembler-ia32.cc | 540 // macro-assembler-ia32.cc |
| 548 DEFINE_bool(native_code_counters, false, | 541 DEFINE_BOOL(native_code_counters, false, |
| 549 "generate extra code for manipulating stats counters") | 542 "generate extra code for manipulating stats counters") |
| 550 | 543 |
| 551 // mark-compact.cc | 544 // mark-compact.cc |
| 552 DEFINE_bool(always_compact, false, "Perform compaction on every full GC") | 545 DEFINE_BOOL(always_compact, false, "Perform compaction on every full GC") |
| 553 DEFINE_bool(never_compact, false, | 546 DEFINE_BOOL(never_compact, false, |
| 554 "Never perform compaction on full GC - testing only") | 547 "Never perform compaction on full GC - testing only") |
| 555 DEFINE_bool(compact_code_space, true, | 548 DEFINE_BOOL(compact_code_space, true, |
| 556 "Compact code space on full non-incremental collections") | 549 "Compact code space on full non-incremental collections") |
| 557 DEFINE_bool(incremental_code_compaction, true, | 550 DEFINE_BOOL(incremental_code_compaction, true, |
| 558 "Compact code space on full incremental collections") | 551 "Compact code space on full incremental collections") |
| 559 DEFINE_bool(cleanup_code_caches_at_gc, true, | 552 DEFINE_BOOL(cleanup_code_caches_at_gc, true, |
| 560 "Flush inline caches prior to mark compact collection and " | 553 "Flush inline caches prior to mark compact collection and " |
| 561 "flush code caches in maps during mark compact cycle.") | 554 "flush code caches in maps during mark compact cycle.") |
| 562 DEFINE_bool(use_marking_progress_bar, true, | 555 DEFINE_BOOL(use_marking_progress_bar, true, |
| 563 "Use a progress bar to scan large objects in increments when " | 556 "Use a progress bar to scan large objects in increments when " |
| 564 "incremental marking is active.") | 557 "incremental marking is active.") |
| 565 DEFINE_bool(zap_code_space, true, | 558 DEFINE_BOOL(zap_code_space, true, |
| 566 "Zap free memory in code space with 0xCC while sweeping.") | 559 "Zap free memory in code space with 0xCC while sweeping.") |
| 567 DEFINE_int(random_seed, 0, | 560 DEFINE_INT(random_seed, 0, |
| 568 "Default seed for initializing random generator " | 561 "Default seed for initializing random generator " |
| 569 "(0, the default, means to use system random).") | 562 "(0, the default, means to use system random).") |
| 570 | 563 |
| 571 // objects.cc | 564 // objects.cc |
| 572 DEFINE_bool(use_verbose_printer, true, "allows verbose printing") | 565 DEFINE_BOOL(use_verbose_printer, true, "allows verbose printing") |
| 573 | 566 |
| 574 // parser.cc | 567 // parser.cc |
| 575 DEFINE_bool(allow_natives_syntax, false, "allow natives syntax") | 568 DEFINE_BOOL(allow_natives_syntax, false, "allow natives syntax") |
| 576 DEFINE_bool(trace_parse, false, "trace parsing and preparsing") | 569 DEFINE_BOOL(trace_parse, false, "trace parsing and preparsing") |
| 577 | 570 |
| 578 // simulator-arm.cc, simulator-arm64.cc and simulator-mips.cc | 571 // simulator-arm.cc, simulator-arm64.cc and simulator-mips.cc |
| 579 DEFINE_bool(trace_sim, false, "Trace simulator execution") | 572 DEFINE_BOOL(trace_sim, false, "Trace simulator execution") |
| 580 DEFINE_bool(debug_sim, false, "Enable debugging the simulator") | 573 DEFINE_BOOL(debug_sim, false, "Enable debugging the simulator") |
| 581 DEFINE_bool(check_icache, false, | 574 DEFINE_BOOL(check_icache, false, |
| 582 "Check icache flushes in ARM and MIPS simulator") | 575 "Check icache flushes in ARM and MIPS simulator") |
| 583 DEFINE_int(stop_sim_at, 0, "Simulator stop after x number of instructions") | 576 DEFINE_INT(stop_sim_at, 0, "Simulator stop after x number of instructions") |
| 584 #ifdef V8_TARGET_ARCH_ARM64 | 577 #ifdef V8_TARGET_ARCH_ARM64 |
| 585 DEFINE_int(sim_stack_alignment, 16, | 578 DEFINE_INT(sim_stack_alignment, 16, |
| 586 "Stack alignment in bytes in simulator. This must be a power of two " | 579 "Stack alignment in bytes in simulator. This must be a power of two " |
| 587 "and it must be at least 16. 16 is default.") | 580 "and it must be at least 16. 16 is default.") |
| 588 #else | 581 #else |
| 589 DEFINE_int(sim_stack_alignment, 8, | 582 DEFINE_INT(sim_stack_alignment, 8, |
| 590 "Stack alingment in bytes in simulator (4 or 8, 8 is default)") | 583 "Stack alingment in bytes in simulator (4 or 8, 8 is default)") |
| 591 #endif | 584 #endif |
| 592 DEFINE_int(sim_stack_size, 2 * MB / KB, | 585 DEFINE_INT(sim_stack_size, 2 * MB / KB, |
| 593 "Stack size of the ARM64 simulator in kBytes (default is 2 MB)") | 586 "Stack size of the ARM64 simulator in kBytes (default is 2 MB)") |
| 594 DEFINE_bool(log_regs_modified, true, | 587 DEFINE_BOOL(log_regs_modified, true, |
| 595 "When logging register values, only print modified registers.") | 588 "When logging register values, only print modified registers.") |
| 596 DEFINE_bool(log_colour, true, | 589 DEFINE_BOOL(log_colour, true, "When logging, try to use coloured output.") |
| 597 "When logging, try to use coloured output.") | 590 DEFINE_BOOL(ignore_asm_unimplemented_break, false, |
| 598 DEFINE_bool(ignore_asm_unimplemented_break, false, | |
| 599 "Don't break for ASM_UNIMPLEMENTED_BREAK macros.") | 591 "Don't break for ASM_UNIMPLEMENTED_BREAK macros.") |
| 600 DEFINE_bool(trace_sim_messages, false, | 592 DEFINE_BOOL(trace_sim_messages, false, |
| 601 "Trace simulator debug messages. Implied by --trace-sim.") | 593 "Trace simulator debug messages. Implied by --trace-sim.") |
| 602 | 594 |
| 603 // isolate.cc | 595 // isolate.cc |
| 604 DEFINE_bool(stack_trace_on_illegal, false, | 596 DEFINE_BOOL(stack_trace_on_illegal, false, |
| 605 "print stack trace when an illegal exception is thrown") | 597 "print stack trace when an illegal exception is thrown") |
| 606 DEFINE_bool(abort_on_uncaught_exception, false, | 598 DEFINE_BOOL(abort_on_uncaught_exception, false, |
| 607 "abort program (dump core) when an uncaught exception is thrown") | 599 "abort program (dump core) when an uncaught exception is thrown") |
| 608 DEFINE_bool(randomize_hashes, true, | 600 DEFINE_BOOL(randomize_hashes, true, |
| 609 "randomize hashes to avoid predictable hash collisions " | 601 "randomize hashes to avoid predictable hash collisions " |
| 610 "(with snapshots this option cannot override the baked-in seed)") | 602 "(with snapshots this option cannot override the baked-in seed)") |
| 611 DEFINE_int(hash_seed, 0, | 603 DEFINE_INT(hash_seed, 0, |
| 612 "Fixed seed to use to hash property keys (0 means random)" | 604 "Fixed seed to use to hash property keys (0 means random)" |
| 613 "(with snapshots this option cannot override the baked-in seed)") | 605 "(with snapshots this option cannot override the baked-in seed)") |
| 614 | 606 |
| 615 // snapshot-common.cc | 607 // snapshot-common.cc |
| 616 DEFINE_bool(profile_deserialization, false, | 608 DEFINE_BOOL(profile_deserialization, false, |
| 617 "Print the time it takes to deserialize the snapshot.") | 609 "Print the time it takes to deserialize the snapshot.") |
| 618 | 610 |
| 619 // Regexp | 611 // Regexp |
| 620 DEFINE_bool(regexp_optimization, true, "generate optimized regexp code") | 612 DEFINE_BOOL(regexp_optimization, true, "generate optimized regexp code") |
| 621 | 613 |
| 622 // Testing flags test/cctest/test-{flags,api,serialization}.cc | 614 // Testing flags test/cctest/test-{flags,api,serialization}.cc |
| 623 DEFINE_bool(testing_bool_flag, true, "testing_bool_flag") | 615 DEFINE_BOOL(testing_bool_flag, true, "testing_bool_flag") |
| 624 DEFINE_maybe_bool(testing_maybe_bool_flag, "testing_maybe_bool_flag") | 616 DEFINE_MAYBE_BOOL(testing_maybe_bool_flag, "testing_maybe_bool_flag") |
| 625 DEFINE_int(testing_int_flag, 13, "testing_int_flag") | 617 DEFINE_INT(testing_int_flag, 13, "testing_int_flag") |
| 626 DEFINE_float(testing_float_flag, 2.5, "float-flag") | 618 DEFINE_FLOAT(testing_float_flag, 2.5, "float-flag") |
| 627 DEFINE_string(testing_string_flag, "Hello, world!", "string-flag") | 619 DEFINE_STRING(testing_string_flag, "Hello, world!", "string-flag") |
| 628 DEFINE_int(testing_prng_seed, 42, "Seed used for threading test randomness") | 620 DEFINE_INT(testing_prng_seed, 42, "Seed used for threading test randomness") |
| 629 #ifdef _WIN32 | 621 #ifdef _WIN32 |
| 630 DEFINE_string(testing_serialization_file, "C:\\Windows\\Temp\\serdes", | 622 DEFINE_STRING(testing_serialization_file, "C:\\Windows\\Temp\\serdes", |
| 631 "file in which to testing_serialize heap") | 623 "file in which to testing_serialize heap") |
| 632 #else | 624 #else |
| 633 DEFINE_string(testing_serialization_file, "/tmp/serdes", | 625 DEFINE_STRING(testing_serialization_file, "/tmp/serdes", |
| 634 "file in which to serialize heap") | 626 "file in which to serialize heap") |
| 635 #endif | 627 #endif |
| 636 | 628 |
| 637 // mksnapshot.cc | 629 // mksnapshot.cc |
| 638 DEFINE_string(extra_code, NULL, "A filename with extra code to be included in" | 630 DEFINE_STRING(extra_code, NULL, |
| 639 " the snapshot (mksnapshot only)") | 631 "A filename with extra code to be included in" |
| 640 DEFINE_string(raw_file, NULL, "A file to write the raw snapshot bytes to. " | 632 " the snapshot (mksnapshot only)") |
| 641 "(mksnapshot only)") | 633 DEFINE_STRING(raw_file, NULL, |
| 642 DEFINE_string(raw_context_file, NULL, "A file to write the raw context " | 634 "A file to write the raw snapshot bytes to. " |
| 643 "snapshot bytes to. (mksnapshot only)") | 635 "(mksnapshot only)") |
| 644 DEFINE_string(startup_blob, NULL, "Write V8 startup blob file. " | 636 DEFINE_STRING(raw_context_file, NULL, |
| 645 "(mksnapshot only)") | 637 "A file to write the raw context " |
| 638 "snapshot bytes to. (mksnapshot only)") |
| 639 DEFINE_STRING(startup_blob, NULL, |
| 640 "Write V8 startup blob file. " |
| 641 "(mksnapshot only)") |
| 646 | 642 |
| 647 // code-stubs-hydrogen.cc | 643 // code-stubs-hydrogen.cc |
| 648 DEFINE_bool(profile_hydrogen_code_stub_compilation, false, | 644 DEFINE_BOOL(profile_hydrogen_code_stub_compilation, false, |
| 649 "Print the time it takes to lazily compile hydrogen code stubs.") | 645 "Print the time it takes to lazily compile hydrogen code stubs.") |
| 650 | 646 |
| 651 DEFINE_bool(predictable, false, "enable predictable mode") | 647 DEFINE_BOOL(predictable, false, "enable predictable mode") |
| 652 DEFINE_neg_implication(predictable, concurrent_recompilation) | 648 DEFINE_NEG_IMPLICATION(predictable, concurrent_recompilation) |
| 653 DEFINE_neg_implication(predictable, concurrent_osr) | 649 DEFINE_NEG_IMPLICATION(predictable, concurrent_osr) |
| 654 DEFINE_neg_implication(predictable, concurrent_sweeping) | 650 DEFINE_NEG_IMPLICATION(predictable, concurrent_sweeping) |
| 655 DEFINE_neg_implication(predictable, parallel_sweeping) | 651 DEFINE_NEG_IMPLICATION(predictable, parallel_sweeping) |
| 656 | 652 |
| 657 | 653 |
| 658 // | 654 // |
| 659 // Dev shell flags | 655 // Dev shell flags |
| 660 // | 656 // |
| 661 | 657 |
| 662 DEFINE_bool(help, false, "Print usage message, including flags, on console") | 658 DEFINE_BOOL(help, false, "Print usage message, including flags, on console") |
| 663 DEFINE_bool(dump_counters, false, "Dump counters on exit") | 659 DEFINE_BOOL(dump_counters, false, "Dump counters on exit") |
| 664 | 660 |
| 665 DEFINE_bool(debugger, false, "Enable JavaScript debugger") | 661 DEFINE_BOOL(debugger, false, "Enable JavaScript debugger") |
| 666 | 662 |
| 667 DEFINE_string(map_counters, "", "Map counters to a file") | 663 DEFINE_STRING(map_counters, "", "Map counters to a file") |
| 668 DEFINE_args(js_arguments, | 664 DEFINE_ARGS(js_arguments, |
| 669 "Pass all remaining arguments to the script. Alias for \"--\".") | 665 "Pass all remaining arguments to the script. Alias for \"--\".") |
| 670 | 666 |
| 671 // | 667 // |
| 672 // GDB JIT integration flags. | 668 // GDB JIT integration flags. |
| 673 // | 669 // |
| 674 | 670 |
| 675 DEFINE_bool(gdbjit, false, "enable GDBJIT interface (disables compacting GC)") | 671 DEFINE_BOOL(gdbjit, false, "enable GDBJIT interface (disables compacting GC)") |
| 676 DEFINE_bool(gdbjit_full, false, "enable GDBJIT interface for all code objects") | 672 DEFINE_BOOL(gdbjit_full, false, "enable GDBJIT interface for all code objects") |
| 677 DEFINE_bool(gdbjit_dump, false, "dump elf objects with debug info to disk") | 673 DEFINE_BOOL(gdbjit_dump, false, "dump elf objects with debug info to disk") |
| 678 DEFINE_string(gdbjit_dump_filter, "", | 674 DEFINE_STRING(gdbjit_dump_filter, "", |
| 679 "dump only objects containing this substring") | 675 "dump only objects containing this substring") |
| 680 | 676 |
| 681 // mark-compact.cc | 677 // mark-compact.cc |
| 682 DEFINE_bool(force_marking_deque_overflows, false, | 678 DEFINE_BOOL(force_marking_deque_overflows, false, |
| 683 "force overflows of marking deque by reducing it's size " | 679 "force overflows of marking deque by reducing it's size " |
| 684 "to 64 words") | 680 "to 64 words") |
| 685 | 681 |
| 686 DEFINE_bool(stress_compaction, false, | 682 DEFINE_BOOL(stress_compaction, false, |
| 687 "stress the GC compactor to flush out bugs (implies " | 683 "stress the GC compactor to flush out bugs (implies " |
| 688 "--force_marking_deque_overflows)") | 684 "--force_marking_deque_overflows)") |
| 689 | 685 |
| 690 // | 686 // |
| 691 // Debug only flags | 687 // Debug only flags |
| 692 // | 688 // |
| 693 #undef FLAG | 689 #undef FLAG |
| 694 #ifdef DEBUG | 690 #ifdef DEBUG |
| 695 #define FLAG FLAG_FULL | 691 #define FLAG FLAG_FULL |
| 696 #else | 692 #else |
| 697 #define FLAG FLAG_READONLY | 693 #define FLAG FLAG_READONLY |
| 698 #endif | 694 #endif |
| 699 | 695 |
| 700 // checks.cc | 696 // checks.cc |
| 701 #ifdef ENABLE_SLOW_ASSERTS | 697 #ifdef ENABLE_SLOW_ASSERTS |
| 702 DEFINE_bool(enable_slow_asserts, false, | 698 DEFINE_BOOL(enable_slow_asserts, false, |
| 703 "enable asserts that are slow to execute") | 699 "enable asserts that are slow to execute") |
| 704 #endif | 700 #endif |
| 705 | 701 |
| 706 // codegen-ia32.cc / codegen-arm.cc / macro-assembler-*.cc | 702 // codegen-ia32.cc / codegen-arm.cc / macro-assembler-*.cc |
| 707 DEFINE_bool(print_source, false, "pretty print source code") | 703 DEFINE_BOOL(print_source, false, "pretty print source code") |
| 708 DEFINE_bool(print_builtin_source, false, | 704 DEFINE_BOOL(print_builtin_source, false, |
| 709 "pretty print source code for builtins") | 705 "pretty print source code for builtins") |
| 710 DEFINE_bool(print_ast, false, "print source AST") | 706 DEFINE_BOOL(print_ast, false, "print source AST") |
| 711 DEFINE_bool(print_builtin_ast, false, "print source AST for builtins") | 707 DEFINE_BOOL(print_builtin_ast, false, "print source AST for builtins") |
| 712 DEFINE_string(stop_at, "", "function name where to insert a breakpoint") | 708 DEFINE_STRING(stop_at, "", "function name where to insert a breakpoint") |
| 713 DEFINE_bool(trap_on_abort, false, "replace aborts by breakpoints") | 709 DEFINE_BOOL(trap_on_abort, false, "replace aborts by breakpoints") |
| 714 | 710 |
| 715 // compiler.cc | 711 // compiler.cc |
| 716 DEFINE_bool(print_builtin_scopes, false, "print scopes for builtins") | 712 DEFINE_BOOL(print_builtin_scopes, false, "print scopes for builtins") |
| 717 DEFINE_bool(print_scopes, false, "print scopes") | 713 DEFINE_BOOL(print_scopes, false, "print scopes") |
| 718 | 714 |
| 719 // contexts.cc | 715 // contexts.cc |
| 720 DEFINE_bool(trace_contexts, false, "trace contexts operations") | 716 DEFINE_BOOL(trace_contexts, false, "trace contexts operations") |
| 721 | 717 |
| 722 // heap.cc | 718 // heap.cc |
| 723 DEFINE_bool(gc_verbose, false, "print stuff during garbage collection") | 719 DEFINE_BOOL(gc_verbose, false, "print stuff during garbage collection") |
| 724 DEFINE_bool(heap_stats, false, "report heap statistics before and after GC") | 720 DEFINE_BOOL(heap_stats, false, "report heap statistics before and after GC") |
| 725 DEFINE_bool(code_stats, false, "report code statistics after GC") | 721 DEFINE_BOOL(code_stats, false, "report code statistics after GC") |
| 726 DEFINE_bool(verify_native_context_separation, false, | 722 DEFINE_BOOL(verify_native_context_separation, false, |
| 727 "verify that code holds on to at most one native context after GC") | 723 "verify that code holds on to at most one native context after GC") |
| 728 DEFINE_bool(print_handles, false, "report handles after GC") | 724 DEFINE_BOOL(print_handles, false, "report handles after GC") |
| 729 DEFINE_bool(print_global_handles, false, "report global handles after GC") | 725 DEFINE_BOOL(print_global_handles, false, "report global handles after GC") |
| 730 | 726 |
| 731 // ic.cc | 727 // ic.cc |
| 732 DEFINE_bool(trace_ic, false, "trace inline cache state transitions") | 728 DEFINE_BOOL(trace_ic, false, "trace inline cache state transitions") |
| 733 | 729 |
| 734 // interface.cc | 730 // interface.cc |
| 735 DEFINE_bool(print_interfaces, false, "print interfaces") | 731 DEFINE_BOOL(print_interfaces, false, "print interfaces") |
| 736 DEFINE_bool(print_interface_details, false, "print interface inference details") | 732 DEFINE_BOOL(print_interface_details, false, "print interface inference details") |
| 737 DEFINE_int(print_interface_depth, 5, "depth for printing interfaces") | 733 DEFINE_INT(print_interface_depth, 5, "depth for printing interfaces") |
| 738 | 734 |
| 739 // objects.cc | 735 // objects.cc |
| 740 DEFINE_bool(trace_normalization, false, | 736 DEFINE_BOOL(trace_normalization, false, |
| 741 "prints when objects are turned into dictionaries.") | 737 "prints when objects are turned into dictionaries.") |
| 742 | 738 |
| 743 // runtime.cc | 739 // runtime.cc |
| 744 DEFINE_bool(trace_lazy, false, "trace lazy compilation") | 740 DEFINE_BOOL(trace_lazy, false, "trace lazy compilation") |
| 745 | 741 |
| 746 // spaces.cc | 742 // spaces.cc |
| 747 DEFINE_bool(collect_heap_spill_statistics, false, | 743 DEFINE_BOOL(collect_heap_spill_statistics, false, |
| 748 "report heap spill statistics along with heap_stats " | 744 "report heap spill statistics along with heap_stats " |
| 749 "(requires heap_stats)") | 745 "(requires heap_stats)") |
| 750 | 746 |
| 751 DEFINE_bool(trace_isolates, false, "trace isolate state changes") | 747 DEFINE_BOOL(trace_isolates, false, "trace isolate state changes") |
| 752 | 748 |
| 753 // Regexp | 749 // Regexp |
| 754 DEFINE_bool(regexp_possessive_quantifier, false, | 750 DEFINE_BOOL(regexp_possessive_quantifier, false, |
| 755 "enable possessive quantifier syntax for testing") | 751 "enable possessive quantifier syntax for testing") |
| 756 DEFINE_bool(trace_regexp_bytecodes, false, "trace regexp bytecode execution") | 752 DEFINE_BOOL(trace_regexp_bytecodes, false, "trace regexp bytecode execution") |
| 757 DEFINE_bool(trace_regexp_assembler, false, | 753 DEFINE_BOOL(trace_regexp_assembler, false, |
| 758 "trace regexp macro assembler calls.") | 754 "trace regexp macro assembler calls.") |
| 759 | 755 |
| 760 // | 756 // |
| 761 // Logging and profiling flags | 757 // Logging and profiling flags |
| 762 // | 758 // |
| 763 #undef FLAG | 759 #undef FLAG |
| 764 #define FLAG FLAG_FULL | 760 #define FLAG FLAG_FULL |
| 765 | 761 |
| 766 // log.cc | 762 // log.cc |
| 767 DEFINE_bool(log, false, | 763 DEFINE_BOOL(log, false, |
| 768 "Minimal logging (no API, code, GC, suspect, or handles samples).") | 764 "Minimal logging (no API, code, GC, suspect, or handles samples).") |
| 769 DEFINE_bool(log_all, false, "Log all events to the log file.") | 765 DEFINE_BOOL(log_all, false, "Log all events to the log file.") |
| 770 DEFINE_bool(log_api, false, "Log API events to the log file.") | 766 DEFINE_BOOL(log_api, false, "Log API events to the log file.") |
| 771 DEFINE_bool(log_code, false, | 767 DEFINE_BOOL(log_code, false, |
| 772 "Log code events to the log file without profiling.") | 768 "Log code events to the log file without profiling.") |
| 773 DEFINE_bool(log_gc, false, | 769 DEFINE_BOOL(log_gc, false, |
| 774 "Log heap samples on garbage collection for the hp2ps tool.") | 770 "Log heap samples on garbage collection for the hp2ps tool.") |
| 775 DEFINE_bool(log_handles, false, "Log global handle events.") | 771 DEFINE_BOOL(log_handles, false, "Log global handle events.") |
| 776 DEFINE_bool(log_snapshot_positions, false, | 772 DEFINE_BOOL(log_snapshot_positions, false, |
| 777 "log positions of (de)serialized objects in the snapshot.") | 773 "log positions of (de)serialized objects in the snapshot.") |
| 778 DEFINE_bool(log_suspect, false, "Log suspect operations.") | 774 DEFINE_BOOL(log_suspect, false, "Log suspect operations.") |
| 779 DEFINE_bool(prof, false, | 775 DEFINE_BOOL(prof, false, |
| 780 "Log statistical profiling information (implies --log-code).") | 776 "Log statistical profiling information (implies --log-code).") |
| 781 DEFINE_bool(prof_browser_mode, true, | 777 DEFINE_BOOL(prof_browser_mode, true, |
| 782 "Used with --prof, turns on browser-compatible mode for profiling.") | 778 "Used with --prof, turns on browser-compatible mode for profiling.") |
| 783 DEFINE_bool(log_regexp, false, "Log regular expression execution.") | 779 DEFINE_BOOL(log_regexp, false, "Log regular expression execution.") |
| 784 DEFINE_string(logfile, "v8.log", "Specify the name of the log file.") | 780 DEFINE_STRING(logfile, "v8.log", "Specify the name of the log file.") |
| 785 DEFINE_bool(logfile_per_isolate, true, "Separate log files for each isolate.") | 781 DEFINE_BOOL(logfile_per_isolate, true, "Separate log files for each isolate.") |
| 786 DEFINE_bool(ll_prof, false, "Enable low-level linux profiler.") | 782 DEFINE_BOOL(ll_prof, false, "Enable low-level linux profiler.") |
| 787 DEFINE_bool(perf_basic_prof, false, | 783 DEFINE_BOOL(perf_basic_prof, false, |
| 788 "Enable perf linux profiler (basic support).") | 784 "Enable perf linux profiler (basic support).") |
| 789 DEFINE_bool(perf_jit_prof, false, | 785 DEFINE_BOOL(perf_jit_prof, false, |
| 790 "Enable perf linux profiler (experimental annotate support).") | 786 "Enable perf linux profiler (experimental annotate support).") |
| 791 DEFINE_string(gc_fake_mmap, "/tmp/__v8_gc__", | 787 DEFINE_STRING(gc_fake_mmap, "/tmp/__v8_gc__", |
| 792 "Specify the name of the file for fake gc mmap used in ll_prof") | 788 "Specify the name of the file for fake gc mmap used in ll_prof") |
| 793 DEFINE_bool(log_internal_timer_events, false, "Time internal events.") | 789 DEFINE_BOOL(log_internal_timer_events, false, "Time internal events.") |
| 794 DEFINE_bool(log_timer_events, false, | 790 DEFINE_BOOL(log_timer_events, false, |
| 795 "Time events including external callbacks.") | 791 "Time events including external callbacks.") |
| 796 DEFINE_implication(log_timer_events, log_internal_timer_events) | 792 DEFINE_IMPLICATION(log_timer_events, log_internal_timer_events) |
| 797 DEFINE_implication(log_internal_timer_events, prof) | 793 DEFINE_IMPLICATION(log_internal_timer_events, prof) |
| 798 DEFINE_bool(log_instruction_stats, false, "Log AArch64 instruction statistics.") | 794 DEFINE_BOOL(log_instruction_stats, false, "Log AArch64 instruction statistics.") |
| 799 DEFINE_string(log_instruction_file, "arm64_inst.csv", | 795 DEFINE_STRING(log_instruction_file, "arm64_inst.csv", |
| 800 "AArch64 instruction statistics log file.") | 796 "AArch64 instruction statistics log file.") |
| 801 DEFINE_int(log_instruction_period, 1 << 22, | 797 DEFINE_INT(log_instruction_period, 1 << 22, |
| 802 "AArch64 instruction statistics logging period.") | 798 "AArch64 instruction statistics logging period.") |
| 803 | 799 |
| 804 DEFINE_bool(redirect_code_traces, false, | 800 DEFINE_BOOL(redirect_code_traces, false, |
| 805 "output deopt information and disassembly into file " | 801 "output deopt information and disassembly into file " |
| 806 "code-<pid>-<isolate id>.asm") | 802 "code-<pid>-<isolate id>.asm") |
| 807 DEFINE_string(redirect_code_traces_to, NULL, | 803 DEFINE_STRING(redirect_code_traces_to, NULL, |
| 808 "output deopt information and disassembly into the given file") | 804 "output deopt information and disassembly into the given file") |
| 809 | 805 |
| 810 DEFINE_bool(hydrogen_track_positions, false, | 806 DEFINE_BOOL(hydrogen_track_positions, false, |
| 811 "track source code positions when building IR") | 807 "track source code positions when building IR") |
| 812 | 808 |
| 813 // | 809 // |
| 814 // Disassembler only flags | 810 // Disassembler only flags |
| 815 // | 811 // |
| 816 #undef FLAG | 812 #undef FLAG |
| 817 #ifdef ENABLE_DISASSEMBLER | 813 #ifdef ENABLE_DISASSEMBLER |
| 818 #define FLAG FLAG_FULL | 814 #define FLAG FLAG_FULL |
| 819 #else | 815 #else |
| 820 #define FLAG FLAG_READONLY | 816 #define FLAG FLAG_READONLY |
| 821 #endif | 817 #endif |
| 822 | 818 |
| 823 // elements.cc | 819 // elements.cc |
| 824 DEFINE_bool(trace_elements_transitions, false, "trace elements transitions") | 820 DEFINE_BOOL(trace_elements_transitions, false, "trace elements transitions") |
| 825 | 821 |
| 826 DEFINE_bool(trace_creation_allocation_sites, false, | 822 DEFINE_BOOL(trace_creation_allocation_sites, false, |
| 827 "trace the creation of allocation sites") | 823 "trace the creation of allocation sites") |
| 828 | 824 |
| 829 // code-stubs.cc | 825 // code-stubs.cc |
| 830 DEFINE_bool(print_code_stubs, false, "print code stubs") | 826 DEFINE_BOOL(print_code_stubs, false, "print code stubs") |
| 831 DEFINE_bool(test_secondary_stub_cache, false, | 827 DEFINE_BOOL(test_secondary_stub_cache, false, |
| 832 "test secondary stub cache by disabling the primary one") | 828 "test secondary stub cache by disabling the primary one") |
| 833 | 829 |
| 834 DEFINE_bool(test_primary_stub_cache, false, | 830 DEFINE_BOOL(test_primary_stub_cache, false, |
| 835 "test primary stub cache by disabling the secondary one") | 831 "test primary stub cache by disabling the secondary one") |
| 836 | 832 |
| 837 | 833 |
| 838 // codegen-ia32.cc / codegen-arm.cc | 834 // codegen-ia32.cc / codegen-arm.cc |
| 839 DEFINE_bool(print_code, false, "print generated code") | 835 DEFINE_BOOL(print_code, false, "print generated code") |
| 840 DEFINE_bool(print_opt_code, false, "print optimized code") | 836 DEFINE_BOOL(print_opt_code, false, "print optimized code") |
| 841 DEFINE_bool(print_unopt_code, false, "print unoptimized code before " | 837 DEFINE_BOOL(print_unopt_code, false, |
| 838 "print unoptimized code before " |
| 842 "printing optimized code based on it") | 839 "printing optimized code based on it") |
| 843 DEFINE_bool(print_code_verbose, false, "print more information for code") | 840 DEFINE_BOOL(print_code_verbose, false, "print more information for code") |
| 844 DEFINE_bool(print_builtin_code, false, "print generated code for builtins") | 841 DEFINE_BOOL(print_builtin_code, false, "print generated code for builtins") |
| 845 | 842 |
| 846 #ifdef ENABLE_DISASSEMBLER | 843 #ifdef ENABLE_DISASSEMBLER |
| 847 DEFINE_bool(sodium, false, "print generated code output suitable for use with " | 844 DEFINE_BOOL(sodium, false, |
| 845 "print generated code output suitable for use with " |
| 848 "the Sodium code viewer") | 846 "the Sodium code viewer") |
| 849 | 847 |
| 850 DEFINE_implication(sodium, print_code_stubs) | 848 DEFINE_IMPLICATION(sodium, print_code_stubs) |
| 851 DEFINE_implication(sodium, print_code) | 849 DEFINE_IMPLICATION(sodium, print_code) |
| 852 DEFINE_implication(sodium, print_opt_code) | 850 DEFINE_IMPLICATION(sodium, print_opt_code) |
| 853 DEFINE_implication(sodium, hydrogen_track_positions) | 851 DEFINE_IMPLICATION(sodium, hydrogen_track_positions) |
| 854 DEFINE_implication(sodium, code_comments) | 852 DEFINE_IMPLICATION(sodium, code_comments) |
| 855 | 853 |
| 856 DEFINE_bool(print_all_code, false, "enable all flags related to printing code") | 854 DEFINE_BOOL(print_all_code, false, "enable all flags related to printing code") |
| 857 DEFINE_implication(print_all_code, print_code) | 855 DEFINE_IMPLICATION(print_all_code, print_code) |
| 858 DEFINE_implication(print_all_code, print_opt_code) | 856 DEFINE_IMPLICATION(print_all_code, print_opt_code) |
| 859 DEFINE_implication(print_all_code, print_unopt_code) | 857 DEFINE_IMPLICATION(print_all_code, print_unopt_code) |
| 860 DEFINE_implication(print_all_code, print_code_verbose) | 858 DEFINE_IMPLICATION(print_all_code, print_code_verbose) |
| 861 DEFINE_implication(print_all_code, print_builtin_code) | 859 DEFINE_IMPLICATION(print_all_code, print_builtin_code) |
| 862 DEFINE_implication(print_all_code, print_code_stubs) | 860 DEFINE_IMPLICATION(print_all_code, print_code_stubs) |
| 863 DEFINE_implication(print_all_code, code_comments) | 861 DEFINE_IMPLICATION(print_all_code, code_comments) |
| 864 #ifdef DEBUG | 862 #ifdef DEBUG |
| 865 DEFINE_implication(print_all_code, trace_codegen) | 863 DEFINE_IMPLICATION(print_all_code, trace_codegen) |
| 866 #endif | 864 #endif |
| 867 #endif | 865 #endif |
| 868 | 866 |
| 869 | 867 |
| 870 // | 868 // |
| 871 // VERIFY_PREDICTABLE related flags | 869 // VERIFY_PREDICTABLE related flags |
| 872 // | 870 // |
| 873 #undef FLAG | 871 #undef FLAG |
| 874 | 872 |
| 875 #ifdef VERIFY_PREDICTABLE | 873 #ifdef VERIFY_PREDICTABLE |
| 876 #define FLAG FLAG_FULL | 874 #define FLAG FLAG_FULL |
| 877 #else | 875 #else |
| 878 #define FLAG FLAG_READONLY | 876 #define FLAG FLAG_READONLY |
| 879 #endif | 877 #endif |
| 880 | 878 |
| 881 DEFINE_bool(verify_predictable, false, | 879 DEFINE_BOOL(verify_predictable, false, |
| 882 "this mode is used for checking that V8 behaves predictably") | 880 "this mode is used for checking that V8 behaves predictably") |
| 883 DEFINE_int(dump_allocations_digest_at_alloc, 0, | 881 DEFINE_INT(dump_allocations_digest_at_alloc, 0, |
| 884 "dump allocations digest each n-th allocation") | 882 "dump allocations digest each n-th allocation") |
| 885 | 883 |
| 886 | 884 |
| 887 // | 885 // |
| 888 // Read-only flags | 886 // Read-only flags |
| 889 // | 887 // |
| 890 #undef FLAG | 888 #undef FLAG |
| 891 #define FLAG FLAG_READONLY | 889 #define FLAG FLAG_READONLY |
| 892 | 890 |
| 893 // assembler-arm.h | 891 // assembler-arm.h |
| 894 DEFINE_bool(enable_ool_constant_pool, V8_OOL_CONSTANT_POOL, | 892 DEFINE_BOOL(enable_ool_constant_pool, V8_OOL_CONSTANT_POOL, |
| 895 "enable use of out-of-line constant pools (ARM only)") | 893 "enable use of out-of-line constant pools (ARM only)") |
| 896 | 894 |
| 897 // Cleanup... | 895 // Cleanup... |
| 898 #undef FLAG_FULL | 896 #undef FLAG_FULL |
| 899 #undef FLAG_READONLY | 897 #undef FLAG_READONLY |
| 900 #undef FLAG | 898 #undef FLAG |
| 901 #undef FLAG_ALIAS | 899 #undef FLAG_ALIAS |
| 902 | 900 |
| 903 #undef DEFINE_bool | 901 #undef DEFINE_BOOL |
| 904 #undef DEFINE_maybe_bool | 902 #undef DEFINE_MAYBE_BOOL |
| 905 #undef DEFINE_int | 903 #undef DEFINE_INT |
| 906 #undef DEFINE_string | 904 #undef DEFINE_STRING |
| 907 #undef DEFINE_float | 905 #undef DEFINE_FLOAT |
| 908 #undef DEFINE_args | 906 #undef DEFINE_ARGS |
| 909 #undef DEFINE_implication | 907 #undef DEFINE_IMPLICATION |
| 910 #undef DEFINE_neg_implication | 908 #undef DEFINE_NEG_IMPLICATION |
| 911 #undef DEFINE_ALIAS_bool | 909 #undef DEFINE_ALIAS_BOOL |
| 912 #undef DEFINE_ALIAS_int | 910 #undef DEFINE_ALIAS_INT |
| 913 #undef DEFINE_ALIAS_string | 911 #undef DEFINE_ALIAS_STRING |
| 914 #undef DEFINE_ALIAS_float | 912 #undef DEFINE_ALIAS_FLOAT |
| 915 #undef DEFINE_ALIAS_args | 913 #undef DEFINE_ALIAS_ARGS |
| 916 | 914 |
| 917 #undef FLAG_MODE_DECLARE | 915 #undef FLAG_MODE_DECLARE |
| 918 #undef FLAG_MODE_DEFINE | 916 #undef FLAG_MODE_DEFINE |
| 919 #undef FLAG_MODE_DEFINE_DEFAULTS | 917 #undef FLAG_MODE_DEFINE_DEFAULTS |
| 920 #undef FLAG_MODE_META | 918 #undef FLAG_MODE_META |
| 921 #undef FLAG_MODE_DEFINE_IMPLICATIONS | 919 #undef FLAG_MODE_DEFINE_IMPLICATIONS |
| 922 | 920 |
| 923 #undef COMMA | 921 #undef COMMA |
| OLD | NEW |