OLD | NEW |
---|---|
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_FLAG_LIST_H_ | 5 #ifndef VM_FLAG_LIST_H_ |
6 #define VM_FLAG_LIST_H_ | 6 #define VM_FLAG_LIST_H_ |
7 | 7 |
8 // List of all flags in the VM. | 8 // List of all flags in the VM. |
9 // Flags can be one of three categories: | 9 // Flags can be one of three categories: |
10 // * P roduct flags: Can be set in any of the deployment modes, including in | 10 // * P roduct flags: Can be set in any of the deployment modes, including in |
11 // production. | 11 // production. |
12 // * D ebug flags: Can only be set in debug VMs, which also have assertions | 12 // * D ebug flags: Can only be set in debug VMs, which also have assertions |
13 // enabled. | 13 // enabled. |
14 // * R elease flags: Generally available flags except when building product. | 14 // * R elease flags: Generally available flags except when building product. |
15 // * pre C ompile flags: Generally available flags except when building product | 15 // * pre C ompile flags: Generally available flags except when building product |
16 // or precompiled runtime. | 16 // or precompiled runtime. |
17 // | 17 // |
18 // Usage: | 18 // Usage: |
19 // P(name, type, default_value, comment) | 19 // P(name, type, default_value, comment) |
20 // D(name, type, default_value, comment) | 20 // D(name, type, default_value, comment) |
21 // R(name, product_value, type, default_value, comment) | 21 // R(name, product_value, type, default_value, comment) |
22 // C(name, precompiled_value, product_value, type, default_value, comment) | 22 // C(name, precompiled_value, product_value, type, default_value, comment) |
23 #define FLAG_LIST(P, R, D, C) \ | 23 #define FLAG_LIST(P, R, D, C) \ |
24 C(allow_absolute_addresses, false, true, bool, true, \ | 24 P(allow_absolute_addresses, bool, true, \ |
25 "Allow embedding absolute addresses in generated code.") \ | 25 "Allow embedding absolute addresses in generated code.") \ |
26 C(always_megamorphic_calls, true, false, bool, false, \ | 26 P(always_megamorphic_calls, bool, false, \ |
27 "Instance call always as megamorphic.") \ | 27 "Instance call always as megamorphic.") \ |
28 C(background_compilation, false, false, bool, false, \ | 28 C(background_compilation, false, false, bool, false, \ |
29 "Run optimizing compilation in background") \ | 29 "Run optimizing compilation in background") \ |
30 C(collect_code, false, true, bool, true, \ | 30 C(collect_code, false, true, bool, true, \ |
31 "Attempt to GC infrequently used code.") \ | 31 "Attempt to GC infrequently used code.") \ |
32 C(collect_dynamic_function_names, true, false, bool, false, \ | 32 P(collect_dynamic_function_names, bool, false, \ |
33 "Collects all dynamic function names to identify unique targets") \ | 33 "Collects all dynamic function names to identify unique targets") \ |
34 R(dedup_instructions, true, bool, false, \ | 34 R(dedup_instructions, true, bool, false, \ |
35 "Canonicalize instructions when precompiling.") \ | 35 "Canonicalize instructions when precompiling.") \ |
36 C(deoptimize_alot, false, false, bool, false, \ | 36 C(deoptimize_alot, false, false, bool, false, \ |
37 "Deoptimizes we are about to return to Dart code from native entries.") \ | 37 "Deoptimizes we are about to return to Dart code from native entries.") \ |
38 C(deoptimize_every, 0, 0, int, 0, \ | 38 C(deoptimize_every, 0, 0, int, 0, \ |
39 "Deoptimize on every N stack overflow checks") \ | 39 "Deoptimize on every N stack overflow checks") \ |
40 R(disable_alloc_stubs_after_gc, false, bool, false, \ | 40 R(disable_alloc_stubs_after_gc, false, bool, false, \ |
41 "Stress testing flag.") \ | 41 "Stress testing flag.") \ |
42 R(disassemble, false, bool, false, \ | 42 R(disassemble, false, bool, false, \ |
43 "Disassemble dart code.") \ | 43 "Disassemble dart code.") \ |
44 R(disassemble_optimized, false, bool, false, \ | 44 R(disassemble_optimized, false, bool, false, \ |
45 "Disassemble optimized code.") \ | 45 "Disassemble optimized code.") \ |
46 R(dump_symbol_stats, false, bool, false, \ | 46 R(dump_symbol_stats, false, bool, false, \ |
47 "Dump symbol table statistics") \ | 47 "Dump symbol table statistics") \ |
48 C(emit_edge_counters, false, true, bool, true, \ | 48 P(emit_edge_counters, bool, true, \ |
49 "Emit edge counters") \ | 49 "Emit edge counters") \ |
50 R(enable_asserts, false, bool, false, \ | 50 R(enable_asserts, false, bool, false, \ |
51 "Enable assert statements.") \ | 51 "Enable assert statements.") \ |
52 C(enable_mirrors, false, false, bool, true, \ | 52 C(enable_mirrors, false, false, bool, true, \ |
53 "Disable to make importing dart:mirrors an error.") \ | 53 "Disable to make importing dart:mirrors an error.") \ |
54 R(enable_type_checks, false, bool, false, \ | 54 R(enable_type_checks, false, bool, false, \ |
55 "Enable type checks.") \ | 55 "Enable type checks.") \ |
56 R(error_on_bad_override, false, bool, false, \ | 56 R(error_on_bad_override, false, bool, false, \ |
57 "Report error for bad overrides.") \ | 57 "Report error for bad overrides.") \ |
58 R(error_on_bad_type, false, bool, false, \ | 58 R(error_on_bad_type, false, bool, false, \ |
59 "Report error for malformed types.") \ | 59 "Report error for malformed types.") \ |
60 C(fields_may_be_reset, true, false, bool, false, \ | 60 P(fields_may_be_reset, bool, false, \ |
61 "Don't optimize away static field initialization") \ | 61 "Don't optimize away static field initialization") \ |
62 C(force_clone_compiler_objects, false, false, bool, false, \ | 62 C(force_clone_compiler_objects, false, false, bool, false, \ |
63 "Force cloning of objects needed in compiler (ICData and Field).") \ | 63 "Force cloning of objects needed in compiler (ICData and Field).") \ |
64 R(gc_at_alloc, false, bool, false, \ | 64 R(gc_at_alloc, false, bool, false, \ |
65 "GC at every allocation.") \ | 65 "GC at every allocation.") \ |
66 P(getter_setter_ratio, int, 13, \ | 66 P(getter_setter_ratio, int, 13, \ |
67 "Ratio of getter/setter usage used for double field unboxing heuristics") \ | 67 "Ratio of getter/setter usage used for double field unboxing heuristics") \ |
68 P(guess_icdata_cid, bool, true, \ | 68 P(guess_icdata_cid, bool, true, \ |
69 "Artificially create type feedback for arithmetic etc. operations") \ | 69 "Artificially create type feedback for arithmetic etc. operations") \ |
70 C(ic_range_profiling, false, true, bool, true, \ | 70 P(ic_range_profiling, bool, true, \ |
71 "Generate special IC stubs collecting range information ") \ | 71 "Generate special IC stubs collecting range information ") \ |
72 C(interpret_irregexp, true, false, bool, false, \ | 72 C(interpret_irregexp, true, false, bool, false, \ |
73 "Use irregexp bytecode interpreter") \ | 73 "Use irregexp bytecode interpreter") \ |
74 C(lazy_dispatchers, false, true, bool, true, \ | 74 P(lazy_dispatchers, bool, true, \ |
75 "Generate dispatchers lazily") \ | 75 "Generate dispatchers lazily") \ |
76 C(link_natives_lazily, true, false, bool, false, \ | 76 P(link_natives_lazily, bool, false, \ |
77 "Link native calls lazily") \ | 77 "Link native calls lazily") \ |
78 C(load_deferred_eagerly, true, true, bool, false, \ | 78 C(load_deferred_eagerly, true, true, bool, false, \ |
79 "Load deferred libraries eagerly.") \ | 79 "Load deferred libraries eagerly.") \ |
80 P(max_polymorphic_checks, int, 4, \ | 80 P(max_polymorphic_checks, int, 4, \ |
81 "Maximum number of polymorphic check, otherwise it is megamorphic.") \ | 81 "Maximum number of polymorphic check, otherwise it is megamorphic.") \ |
82 P(max_equality_polymorphic_checks, int, 32, \ | 82 P(max_equality_polymorphic_checks, int, 32, \ |
83 "Maximum number of polymorphic checks in equality operator,") \ | 83 "Maximum number of polymorphic checks in equality operator,") \ |
84 P(merge_sin_cos, bool, false, \ | 84 P(merge_sin_cos, bool, false, \ |
85 "Merge sin/cos into sincos") \ | 85 "Merge sin/cos into sincos") \ |
86 P(new_gen_ext_limit, int, 64, \ | 86 P(new_gen_ext_limit, int, 64, \ |
87 "maximum total external size (MB) in new gen before triggering GC") \ | 87 "maximum total external size (MB) in new gen before triggering GC") \ |
88 C(optimization_counter_threshold, -1, 30000, int, 30000, \ | 88 P(optimization_counter_threshold, int, 30000, \ |
89 "Function's usage-counter value before it is optimized, -1 means never") \ | 89 "Function's usage-counter value before it is optimized, -1 means never") \ |
90 C(polymorphic_with_deopt, false, true, bool, true, \ | 90 P(polymorphic_with_deopt, bool, true, \ |
91 "Polymorphic calls with deoptimization / megamorphic call") \ | 91 "Polymorphic calls with deoptimization / megamorphic call") \ |
92 C(precompiled_mode, true, false, bool, false, \ | 92 P(precompiled_mode, bool, false, \ |
93 "Precompilation compiler/runtime mode") \ | 93 "Precompilation compiler mode") \ |
94 C(precompiled_runtime, true, false, bool, false, \ | |
95 "Precompiled runtime mode") \ | |
94 R(pretenure_all, false, bool, false, \ | 96 R(pretenure_all, false, bool, false, \ |
95 "Global pretenuring (for testing).") \ | 97 "Global pretenuring (for testing).") \ |
96 P(pretenure_interval, int, 10, \ | 98 P(pretenure_interval, int, 10, \ |
97 "Back off pretenuring after this many cycles.") \ | 99 "Back off pretenuring after this many cycles.") \ |
98 P(pretenure_threshold, int, 98, \ | 100 P(pretenure_threshold, int, 98, \ |
99 "Trigger pretenuring when this many percent are promoted.") \ | 101 "Trigger pretenuring when this many percent are promoted.") \ |
100 C(print_stop_message, false, false, bool, false, \ | 102 C(print_stop_message, false, false, bool, false, \ |
101 "Print stop message.") \ | 103 "Print stop message.") \ |
102 R(profiler, false, bool, true, \ | 104 R(profiler, false, bool, true, \ |
103 "Enable the profiler.") \ | 105 "Enable the profiler.") \ |
106 P(reorder_basic_blocks, bool, true, \ | |
rmacnak
2016/03/02 21:12:35
Probably don't need both this and emit_edge_counte
Florian Schneider
2016/03/02 21:48:11
Done.
| |
107 "Reorder basic blocks") \ | |
104 R(support_ast_printer, false, bool, true, \ | 108 R(support_ast_printer, false, bool, true, \ |
105 "Support the AST printer.") \ | 109 "Support the AST printer.") \ |
106 R(support_compiler_stats, false, bool, true, \ | 110 R(support_compiler_stats, false, bool, true, \ |
107 "Support compiler stats.") \ | 111 "Support compiler stats.") \ |
108 R(support_debugger, false, bool, true, \ | 112 R(support_debugger, false, bool, true, \ |
109 "Support the debugger.") \ | 113 "Support the debugger.") \ |
110 R(support_disassembler, false, bool, true, \ | 114 R(support_disassembler, false, bool, true, \ |
111 "Support the disassembler.") \ | 115 "Support the disassembler.") \ |
112 R(support_il_printer, false, bool, true, \ | 116 R(support_il_printer, false, bool, true, \ |
113 "Support the IL printer.") \ | 117 "Support the IL printer.") \ |
114 R(support_service, false, bool, true, \ | 118 R(support_service, false, bool, true, \ |
115 "Support the service protocol.") \ | 119 "Support the service protocol.") \ |
116 R(support_coverage, false, bool, true, \ | 120 R(support_coverage, false, bool, true, \ |
117 "Support code coverage.") \ | 121 "Support code coverage.") \ |
118 R(support_timeline, false, bool, true, \ | 122 R(support_timeline, false, bool, true, \ |
119 "Support timeline.") \ | 123 "Support timeline.") \ |
120 D(trace_cha, bool, false, \ | 124 D(trace_cha, bool, false, \ |
121 "Trace CHA operations") \ | 125 "Trace CHA operations") \ |
122 D(trace_field_guards, bool, false, \ | 126 D(trace_field_guards, bool, false, \ |
123 "Trace changes in field's cids.") \ | 127 "Trace changes in field's cids.") \ |
124 D(trace_handles, bool, false, \ | 128 D(trace_handles, bool, false, \ |
125 "Traces allocation of handles.") \ | 129 "Traces allocation of handles.") \ |
126 D(trace_optimization, bool, false, \ | 130 D(trace_optimization, bool, false, \ |
127 "Print optimization details."); \ | 131 "Print optimization details."); \ |
128 D(trace_zones, bool, false, \ | 132 D(trace_zones, bool, false, \ |
129 "Traces allocation sizes in the zone.") \ | 133 "Traces allocation sizes in the zone.") \ |
130 P(truncating_left_shift, bool, true, \ | 134 P(truncating_left_shift, bool, true, \ |
131 "Optimize left shift to truncate if possible") \ | 135 "Optimize left shift to truncate if possible") \ |
132 C(use_cha_deopt, false, true, bool, true, \ | 136 P(use_cha_deopt, bool, true, \ |
133 "Use class hierarchy analysis even if it can cause deoptimization.") \ | 137 "Use class hierarchy analysis even if it can cause deoptimization.") \ |
134 C(use_field_guards, false, true, bool, true, \ | 138 P(use_field_guards, bool, true, \ |
135 "Use field guards and track field types") \ | 139 "Use field guards and track field types") \ |
136 C(use_osr, false, true, bool, true, \ | 140 C(use_osr, false, true, bool, true, \ |
137 "Use OSR") \ | 141 "Use OSR") \ |
138 P(verbose_gc, bool, false, \ | 142 P(verbose_gc, bool, false, \ |
139 "Enables verbose GC.") \ | 143 "Enables verbose GC.") \ |
140 P(verbose_gc_hdr, int, 40, \ | 144 P(verbose_gc_hdr, int, 40, \ |
141 "Print verbose GC header interval.") \ | 145 "Print verbose GC header interval.") \ |
142 R(verify_after_gc, false, bool, false, \ | 146 R(verify_after_gc, false, bool, false, \ |
143 "Enables heap verification after GC.") \ | 147 "Enables heap verification after GC.") \ |
144 R(verify_before_gc, false, bool, false, \ | 148 R(verify_before_gc, false, bool, false, \ |
145 "Enables heap verification before GC.") \ | 149 "Enables heap verification before GC.") \ |
146 | 150 |
147 #endif // VM_FLAG_LIST_H_ | 151 #endif // VM_FLAG_LIST_H_ |
OLD | NEW |