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

Side by Side Diff: src/flag-definitions.h

Issue 259573003: Make flag definition macros style guide compliant and clang-format it. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: rebase Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
OLDNEW
« 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