112 :mirrors an
error.
") \
113 P(enable_ffi, bool, true, "Disable to
make importing
dart:ffi an
error.
") \
114 P(force_clone_compiler_objects, bool, false, \
115 "Force cloning of objects needed in
compiler (ICData and Field).
") \
116 P(guess_icdata_cid, bool, true, \
117 "Artificially
create type feedback
for arithmetic etc. operations
") \
118 P(huge_method_cutoff_in_ast_nodes, int, 10000, \
119 "Huge method cutoff in AST nodes: Disables optimizations for huge " \
120 "methods.") \
121 P(idle_timeout_micros, int, 61 * kMicrosecondsPerSecond, \
122 "Consider thread
pool isolates
for idle tasks after
this long.
") \
123 P(idle_duration_micros, int, kMaxInt32, \
124 "Allow idle tasks to
run for this long.
") \
125 P(interpret_irregexp, bool, false, "Use irregexp bytecode interpreter") \
126 P(link_natives_lazily, bool, false, "Link native calls lazily") \
127 R(log_marker_tasks, false, bool, false, \
128 "Log debugging information
for old
gen GC marking tasks.
") \
129 P(scavenger_tasks, int, 2, \
130 "The number of tasks to
spawn during scavenging (0 means
" \
131 "perform all marking on
main thread).
") \
132 P(mark_when_idle, bool, false, \
133 "The Dart thread will assist in concurrent marking during idle time and " \
134 "is counted as one
marker task
") \
135 P(marker_tasks, int, 2, \
136 "The number of tasks to
spawn during old
gen GC marking (0 means
" \
137 "perform all marking on
main thread).
") \
138 P(hash_map_probes_limit, int, kMaxInt32, \
139 "Limit number of probes
while doing lookups in
hash maps.
") \
140 P(max_polymorphic_checks, int, 4, \
141 "Maximum number of polymorphic
check, otherwise it is megamorphic.
") \
142 P(max_equality_polymorphic_checks, int, 32, \
143 "Maximum number of polymorphic checks in equality operator,") \
144 P(new_gen_semi_max_size, int, kDefaultNewGenSemiMaxSize, \
145 "Max
size of
new gen semi space in
MB") \
146 P(new_gen_semi_initial_size, int, (kWordSize <= 4) ? 1 : 2, \
147 "Initial
size of
new gen semi space in
MB") \
148 P(optimization_counter_threshold, int, kDefaultOptimizationCounterThreshold, \
149 "Function's usage-counter value before it is optimized, -1 means never") \
150 P(optimization_level, int, 2, \
151 "Optimization level: 1 (favor size), 2 (default), 3 (favor speed)") \
152 P(old_gen_heap_size, int, kDefaultMaxOldGenHeapSize, \
153 "Max size of old gen heap size in MB, or 0 for unlimited," \
154 "e.g: --old_gen_heap_size=1024 allows up to 1024MB old gen heap") \
155 R(pause_isolates_on_start, false, bool, false, \
156 "Pause isolates before starting.") \
157 R(pause_isolates_on_exit, false, bool, false, "Pause isolates exiting.") \
158 R(pause_isolates_on_unhandled_exceptions, false, bool, false, \
159 "Pause isolates on unhandled exceptions.") \
160 P(polymorphic_with_deopt, bool, true, \
161 "Polymorphic calls with deoptimization / megamorphic call") \
162 P(precompiled_mode, bool, false, "Precompilation compiler mode") \
163 P(print_snapshot_sizes, bool, false, "Print sizes of generated snapshots.") \
164 P(print_snapshot_sizes_verbose, bool, false, \
165 "Print cluster sizes of generated snapshots.") \
166 R(print_ssa_liveranges, false, bool, false, \
167 "Print live ranges after allocation.") \
168 R(print_stacktrace_at_api_error, false, bool, false, \
169 "Attempt to print a native stack trace when an API error is created.") \
170 D(print_variable_descriptors, bool, false, \
171 "Print variable descriptors in disassembly.") \
172 R(profiler, false, bool, false, "Enable the profiler.") \
173 R(profiler_native_memory, false, bool, false, \
174 "Enable native memory statistic collection.") \
175 P(reorder_basic_blocks, bool, true, "Reorder basic blocks") \
176 C(stress_async_stacks, false, false, bool, false, \
177 "Stress test async stack traces") \
178 P(retain_function_objects, bool, true, \
179 "Serialize function objects for all code objects even if not otherwise " \
180 "needed in the precompiled runtime.") \
181 P(retain_code_objects, bool, true, \
182 "Serialize all code objects even if not otherwise " \
183 "needed in the precompiled runtime.") \
184 P(show_invisible_frames, bool, false, \
185 "Show invisible frames in stack traces.") \
186 P(target_unknown_cpu, bool, false, \
187 "Generate code for a generic CPU, unknown at compile time") \
188 D(trace_cha, bool, false, "Trace CHA operations") \
189 R(trace_field_guards, false, bool, false, "Trace changes in field's cids.
") \
190 D(trace_finalizers, bool, false, "Traces finalizers.") \
191 D(trace_ic, bool, false, "Trace IC handling") \
192 D(trace_ic_miss_in_optimized, bool, false, \
193 "Trace IC miss in optimized
code") \
194 C(trace_irregexp, false, false, bool, false, "Trace irregexps.") \
195 D(trace_intrinsified_natives, bool, false, \
196 "Report
if any of the intrinsified natives are called
") \
197 D(trace_isolates, bool, false, "Trace isolate creation and shut down.") \
198 D(trace_handles, bool, false, "Traces allocation of handles.") \
199 D(trace_kernel_binary, bool, false, "Trace Kernel reader/writer.") \
200 D(trace_natives, bool, false, "Trace invocation of natives") \
201 D(trace_optimization, bool, false, "Print optimization details.") \
202 R(trace_profiler, false, bool, false, "Profiler trace") \
203 D(trace_profiler_verbose, bool, false, "Verbose profiler trace") \
204 D(trace_runtime_calls, bool, false, "Trace runtime calls.") \
205 R(trace_ssa_allocator, false, bool, false, \
206 "Trace register allocation over SSA.") \
207 P(trace_strong_mode_types, bool, false, \
208 "Trace optimizations based on strong
mode types.
") \
209 D(trace_type_checks, bool, false, "Trace runtime
type checks.
") \
210 D(trace_type_checks_verbose, bool, false, \
212 D(trace_patching, bool, false, "Trace patching of
code.
") \
213 D(trace_optimized_ic_calls, bool, false, \
214 "Trace IC calls in optimized
code.
") \
215 D(trace_zones, bool, false, "Traces allocation sizes in the zone.") \
216 P(truncating_left_shift, bool, true, \
217 "Optimize
left shift to truncate
if possible
") \
218 P(use_compactor, bool, false, "Compact the heap during old-space GC.") \
219 P(use_cha_deopt, bool, true, \
220 "Use
class hierarchy analysis even
if it can cause deoptimization.
") \
221 P(use_field_guards, bool, true, "Use field guards and track field types") \
222 C(use_osr, false, true, bool, true, "Use OSR") \
223 P(use_slow_path, bool, false, "Whether to avoid inlined fast paths.") \
224 P(verbose_gc, bool, false, "Enables
verbose GC.
") \
225 P(verbose_gc_hdr, int, 40, "Print
verbose GC
header interval.
") \
226 R(verify_after_gc, false, bool, false, \
227 "Enables heap verification after GC.") \
228 R(verify_before_gc, false, bool, false, \
229 "Enables heap verification before GC.") \
230 R(verify_store_buffer, false, bool, false, \
231 "Enables
store buffer verification before and after scavenges.
") \
232 R(verify_after_marking, false, bool, false, \
233 "Enables heap verification after marking.") \
234 P(enable_slow_path_sharing, bool, true, "Enable sharing of slow-
path code.
") \
235 P(shared_slow_path_triggers_gc, bool, false, \
236 "TESTING: slow-
path triggers
a GC.") \
237 P(enable_multiple_entrypoints, bool, true, \
238 "Enable multiple entrypoints per-function and related optimizations.") \
239 P(enable_testing_pragmas, bool, false, \
240 "Enable magical pragmas for testing purposes. Use at your own risk!") \
241 R(eliminate_type_checks, true, bool, true, \
242 "Eliminate type checks when allowed by static type analysis.") \
243 D(support_rr, bool, false, "Support running within RR.") \
244 P(verify_entry_points, bool, false, \
245 "Throw API error on invalid member access through native API. See " \
246 "entry_point_pragma.md") \
247 C(branch_coverage, false, false, bool, false, "Enable branch coverage")