// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

#ifndef VM_FLAG_LIST_H_
#define VM_FLAG_LIST_H_

// List of all flags in the VM.
// Flags can be one of three categories:
// * P roduct flags: Can be set in any of the deployment modes, including in
//   production.
// * D ebug flags: Can only be set in debug VMs, which also have assertions
//   enabled.
// * R elease flags: Generally available flags except when building product.
// * pre C ompile flags: Generally available flags except when building product
//   or precompiled runtime.
//
// Usage:
//   P(name, type, default_value, comment)
//   D(name, type, default_value, comment)
//   R(name, product_value, type, default_value, comment)
//   C(name, precompiled_value, product_value, type, default_value, comment)
#define FLAG_LIST(P, R, D, C)                                                  \
P(allow_absolute_addresses, bool, true,                                        \
  "Allow embedding absolute addresses in generated code.")                     \
P(always_megamorphic_calls, bool, false,                                       \
  "Instance call always as megamorphic.")                                      \
C(background_compilation, false, false, bool, false,                           \
  "Run optimizing compilation in background")                                  \
R(break_at_isolate_spawn, false, bool, false,                                  \
  "Insert a one-time breakpoint at the entrypoint for all spawned isolates")   \
C(collect_code, false, true, bool, true,                                       \
  "Attempt to GC infrequently used code.")                                     \
P(collect_dynamic_function_names, bool, false,                                 \
  "Collects all dynamic function names to identify unique targets")            \
R(dedup_instructions, true, bool, false,                                       \
  "Canonicalize instructions when precompiling.")                              \
C(deoptimize_alot, false, false, bool, false,                                  \
  "Deoptimizes we are about to return to Dart code from native entries.")      \
C(deoptimize_every, 0, 0, int, 0,                                              \
  "Deoptimize on every N stack overflow checks")                               \
R(disable_alloc_stubs_after_gc, false, bool, false,                            \
  "Stress testing flag.")                                                      \
R(disassemble, false, bool, false,                                             \
  "Disassemble dart code.")                                                    \
R(disassemble_optimized, false, bool, false,                                   \
  "Disassemble optimized code.")                                               \
R(dump_symbol_stats, false, bool, false,                                       \
  "Dump symbol table statistics")                                              \
R(enable_asserts, false, bool, false,                                          \
  "Enable assert statements.")                                                 \
C(enable_mirrors, false, false, bool, true,                                    \
  "Disable to make importing dart:mirrors an error.")                          \
R(enable_type_checks, false, bool, false,                                      \
  "Enable type checks.")                                                       \
R(error_on_bad_override, false, bool, false,                                   \
  "Report error for bad overrides.")                                           \
R(error_on_bad_type, false, bool, false,                                       \
  "Report error for malformed types.")                                         \
P(external_max_size, int, (kWordSize <= 4) ? 512 : 1024,                       \
  "Max total size of external allocations in MB, or 0 for unlimited,"          \
  "e.g: --external_max_size=1024 allows up to 1024MB of externals")            \
P(fields_may_be_reset, bool, false,                                            \
  "Don't optimize away static field initialization")                           \
C(force_clone_compiler_objects, false, false, bool, false,                     \
  "Force cloning of objects needed in compiler (ICData and Field).")           \
R(gc_at_alloc, false, bool, false,                                             \
  "GC at every allocation.")                                                   \
P(getter_setter_ratio, int, 13,                                                \
  "Ratio of getter/setter usage used for double field unboxing heuristics")    \
P(guess_icdata_cid, bool, true,                                                \
  "Artificially create type feedback for arithmetic etc. operations")          \
P(ic_range_profiling, bool, true,                                              \
  "Generate special IC stubs collecting range information ")                   \
P(interpret_irregexp, bool, false,                                             \
  "Use irregexp bytecode interpreter")                                         \
P(lazy_dispatchers, bool, true,                                                \
  "Generate dispatchers lazily")                                               \
P(link_natives_lazily, bool, false,                                            \
  "Link native calls lazily")                                                  \
C(load_deferred_eagerly, true, true, bool, false,                              \
  "Load deferred libraries eagerly.")                                          \
P(max_polymorphic_checks, int, 4,                                              \
  "Maximum number of polymorphic check, otherwise it is megamorphic.")         \
P(max_equality_polymorphic_checks, int, 32,                                    \
    "Maximum number of polymorphic checks in equality operator,")              \
P(merge_sin_cos, bool, false,                                                  \
  "Merge sin/cos into sincos")                                                 \
P(new_gen_ext_limit, int, 64,                                                  \
  "maximum total external size (MB) in new gen before triggering GC")          \
P(new_gen_semi_max_size, int, (kWordSize <= 4) ? 16 : 32,                      \
  "Max size of new gen semi space in MB")                                      \
P(optimization_counter_threshold, int, 30000,                                  \
  "Function's usage-counter value before it is optimized, -1 means never")     \
P(old_gen_heap_size, int, (kWordSize <= 4) ? 1536 : 0,                         \
  "Max size of old gen heap size in MB, or 0 for unlimited,"                   \
  "e.g: --old_gen_heap_size=1024 allows up to 1024MB old gen heap")            \
R(pause_isolates_on_start, false, bool, false,                                 \
  "Pause isolates before starting.")                                           \
R(pause_isolates_on_exit, false, bool, false,                                  \
  "Pause isolates exiting.")                                                   \
R(pause_isolates_on_unhandled_exceptions, false, bool, false,                  \
  "Pause isolates on unhandled exceptions.")                                   \
P(polymorphic_with_deopt, bool, true,                                          \
  "Polymorphic calls with deoptimization / megamorphic call")                  \
P(precompiled_mode, bool, false,                                               \
  "Precompilation compiler mode")                                              \
C(precompiled_runtime, true, false, bool, false,                               \
  "Precompiled runtime mode")                                                  \
R(pretenure_all, false, bool, false,                                           \
  "Global pretenuring (for testing).")                                         \
P(pretenure_interval, int, 10,                                                 \
  "Back off pretenuring after this many cycles.")                              \
P(pretenure_threshold, int, 98,                                                \
  "Trigger pretenuring when this many percent are promoted.")                  \
R(print_ssa_liveness, false, bool, false,                                      \
  "Print liveness for ssa variables.")                                         \
R(print_ssa_liveranges, false, bool, false,                                    \
  "Print live ranges after allocation.")                                       \
C(print_stop_message, false, false, bool, false,                               \
  "Print stop message.")                                                       \
R(profiler, false, bool, true,                                                 \
  "Enable the profiler.")                                                      \
P(reorder_basic_blocks, bool, true,                                            \
  "Reorder basic blocks")                                                      \
R(support_ast_printer, false, bool, true,                                      \
  "Support the AST printer.")                                                  \
R(support_compiler_stats, false, bool, true,                                   \
  "Support compiler stats.")                                                   \
R(support_debugger, false, bool, true,                                         \
  "Support the debugger.")                                                     \
R(support_disassembler, false, bool, true,                                     \
  "Support the disassembler.")                                                 \
R(support_il_printer, false, bool, true,                                       \
  "Support the IL printer.")                                                   \
R(support_service, false, bool, true,                                          \
  "Support the service protocol.")                                             \
R(support_timeline, false, bool, true,                                         \
  "Support timeline.")                                                         \
D(trace_cha, bool, false,                                                      \
  "Trace CHA operations")                                                      \
D(trace_field_guards, bool, false,                                             \
  "Trace changes in field's cids.")                                            \
D(trace_isolates, bool, false,                                                 \
  "Trace isolate creation and shut down.")                                     \
D(trace_handles, bool, false,                                                  \
  "Traces allocation of handles.")                                             \
D(trace_optimization, bool, false,                                             \
  "Print optimization details.");                                              \
R(trace_profiler, false, bool, false,                                          \
  "Profiler trace")                                                            \
D(trace_profiler_verbose, bool, false,                                         \
  "Verbose profiler trace")                                                    \
D(trace_ssa_allocator, bool, false,                                            \
  "Trace register allocation over SSA.")                                       \
D(trace_zones, bool, false,                                                    \
  "Traces allocation sizes in the zone.")                                      \
P(truncating_left_shift, bool, true,                                           \
  "Optimize left shift to truncate if possible")                               \
P(use_cha_deopt, bool, true,                                                   \
  "Use class hierarchy analysis even if it can cause deoptimization.")         \
P(use_field_guards, bool, true,                                                \
  "Use field guards and track field types")                                    \
C(use_osr, false, true, bool, true,                                            \
  "Use OSR")                                                                   \
R(verbose_dev, false, bool, false,                                             \
  "Enables verbose messages during development.")                              \
P(verbose_gc, bool, false,                                                     \
  "Enables verbose GC.")                                                       \
P(verbose_gc_hdr, int, 40,                                                     \
  "Print verbose GC header interval.")                                         \
R(verify_after_gc, false, bool, false,                                         \
  "Enables heap verification after GC.")                                       \
R(verify_before_gc, false, bool, false,                                        \
  "Enables heap verification before GC.")                                      \
D(verify_on_transition, bool, false,                                           \
  "Verify on dart <==> VM.")                                                   \


#endif  // VM_FLAG_LIST_H_
