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