1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Option Parsing Definitions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9/////////
10// Tables
11
12#if defined(OPTTABLE_CODE) || defined(OPTIONS_STRUCT_DEFS)
13namespace {
14enum ID : unsigned {
15 OPT_INVALID = 0,
16 OPT_INPUT,
17 OPT_UNKNOWN,
18 OPT_alloc_token_cover_replaceable_new,
19 OPT_alloc_token_extended,
20 OPT_alloc_token_fallback,
21 OPT_alloc_token_fast_abi,
22 OPT_alloc_token_max,
23 OPT_alloc_token_prefix,
24 OPT_asan_always_slow_path,
25 OPT_asan_constructor_kind,
26 OPT_asan_debug_func,
27 OPT_asan_debug_max,
28 OPT_asan_debug_min,
29 OPT_asan_debug_stack,
30 OPT_asan_destructor_kind,
31 OPT_asan_detect_invalid_pointer_cmp,
32 OPT_asan_detect_invalid_pointer_pair,
33 OPT_asan_detect_invalid_pointer_sub,
34 OPT_asan_force_dynamic_shadow,
35 OPT_asan_force_experiment,
36 OPT_asan_globals_live_support,
37 OPT_asan_globals,
38 OPT_asan_guard_against_version_mismatch,
39 OPT_asan_initialization_order,
40 OPT_asan_instrument_address_spaces,
41 OPT_asan_instrument_assume_dereferenceable,
42 OPT_asan_instrument_atomics,
43 OPT_asan_instrument_byval,
44 OPT_asan_instrument_dynamic_allocas,
45 OPT_asan_instrument_reads,
46 OPT_asan_instrument_writes,
47 OPT_asan_instrumentation_with_call_threshold,
48 OPT_asan_kernel_mem_intrinsic_prefix,
49 OPT_asan_kernel,
50 OPT_asan_mapping_offset,
51 OPT_asan_mapping_scale,
52 OPT_asan_max_inline_poisoning_size,
53 OPT_asan_max_ins_per_bb,
54 OPT_asan_memory_access_callback_prefix,
55 OPT_asan_opt_globals,
56 OPT_asan_opt_same_temp,
57 OPT_asan_opt_stack,
58 OPT_asan_optimize_callbacks,
59 OPT_asan_opt,
60 OPT_asan_realign_stack,
61 OPT_asan_recover,
62 OPT_asan_redzone_byval_args,
63 OPT_asan_shadow_addr_space,
64 OPT_asan_skip_promotable_allocas,
65 OPT_asan_stack_dynamic_alloca,
66 OPT_asan_stack,
67 OPT_asan_use_after_return,
68 OPT_asan_use_after_scope,
69 OPT_asan_use_odr_indicator,
70 OPT_asan_use_private_alias,
71 OPT_asan_use_stack_safety,
72 OPT_asan_with_comdat,
73 OPT_asan_with_ifunc_suppress_remat,
74 OPT_asan_with_ifunc,
75 OPT_atomic_counter_update_promoted,
76 OPT_atomic_first_counter,
77 OPT_bounds_checking_single_trap,
78 OPT_check_functions_filter,
79 OPT_chr_bias_threshold,
80 OPT_chr_dup_threshold,
81 OPT_chr_function_list,
82 OPT_chr_merge_threshold,
83 OPT_chr_module_list,
84 OPT_conditional_counter_update,
85 OPT_ctx_prof_skip_callsite_instr,
86 OPT_default_gcov_version,
87 OPT_dfsan_abilist,
88 OPT_dfsan_add_global_name_suffix,
89 OPT_dfsan_combine_offset_labels_on_gep,
90 OPT_dfsan_combine_pointer_labels_on_load,
91 OPT_dfsan_combine_pointer_labels_on_store,
92 OPT_dfsan_combine_taint_lookup_table,
93 OPT_dfsan_conditional_callbacks,
94 OPT_dfsan_debug_nonzero_labels,
95 OPT_dfsan_event_callbacks,
96 OPT_dfsan_ignore_personality_routine,
97 OPT_dfsan_instrument_with_call_threshold,
98 OPT_dfsan_preserve_alignment,
99 OPT_dfsan_reaches_function_callbacks,
100 OPT_dfsan_track_origins,
101 OPT_dfsan_track_select_control_flow,
102 OPT_disable_chr,
103 OPT_disable_icp,
104 OPT_disable_memop_opt,
105 OPT_disable_vp,
106 OPT_do_comdat_renaming,
107 OPT_do_counter_promotion,
108 OPT_force_chr,
109 OPT_gcov_atomic_counter,
110 OPT_hash_based_counter_split,
111 OPT_hot_func_cutoff_for_icp,
112 OPT_hwasan_all_globals,
113 OPT_hwasan_experimental_use_page_aliases,
114 OPT_hwasan_generate_tags_with_calls,
115 OPT_hwasan_globals,
116 OPT_hwasan_inline_all_checks,
117 OPT_hwasan_inline_fast_path_checks,
118 OPT_hwasan_instrument_atomics,
119 OPT_hwasan_instrument_byval,
120 OPT_hwasan_instrument_landing_pads,
121 OPT_hwasan_instrument_mem_intrinsics,
122 OPT_hwasan_instrument_personality_functions,
123 OPT_hwasan_instrument_reads,
124 OPT_hwasan_instrument_stack,
125 OPT_hwasan_instrument_with_calls,
126 OPT_hwasan_instrument_writes,
127 OPT_hwasan_kernel_mem_intrinsic_prefix,
128 OPT_hwasan_kernel,
129 OPT_hwasan_match_all_tag,
130 OPT_hwasan_max_lifetimes_for_alloca,
131 OPT_hwasan_memory_access_callback_prefix,
132 OPT_hwasan_percentile_cutoff_hot,
133 OPT_hwasan_random_rate,
134 OPT_hwasan_record_stack_history,
135 OPT_hwasan_recover,
136 OPT_hwasan_static_linking,
137 OPT_hwasan_strict_use_after_scope,
138 OPT_hwasan_tag_bits,
139 OPT_hwasan_use_after_scope,
140 OPT_hwasan_use_short_granules,
141 OPT_hwasan_use_stack_safety,
142 OPT_hwasan_with_frame_record,
143 OPT_icp_allow_candidate_skip,
144 OPT_icp_allow_decls,
145 OPT_icp_allow_hot_only,
146 OPT_icp_call_only,
147 OPT_icp_csskip,
148 OPT_icp_cutoff,
149 OPT_icp_dumpafter,
150 OPT_icp_ignored_base_types,
151 OPT_icp_invoke_only,
152 OPT_icp_lto,
153 OPT_icp_max_annotations,
154 OPT_icp_max_num_vtable_last_candidate,
155 OPT_icp_samplepgo,
156 OPT_icp_vtable_percentage_threshold,
157 OPT_instrprof_atomic_counter_update_all,
158 OPT_iterative_counter_promotion,
159 OPT_lower_allow_check_percentile_cutoff_hot,
160 OPT_lower_allow_check_random_rate,
161 OPT_max_counter_promotions_per_loop,
162 OPT_max_counter_promotions,
163 OPT_memop_max_annotations,
164 OPT_memop_value_prof_max_opt_size,
165 OPT_memprof_annotate_static_data_prefix,
166 OPT_memprof_attach_calleeguids,
167 OPT_memprof_debug_func,
168 OPT_memprof_debug_max,
169 OPT_memprof_debug_min,
170 OPT_memprof_debug,
171 OPT_memprof_guard_against_version_mismatch,
172 OPT_memprof_histogram,
173 OPT_memprof_instrument_atomics,
174 OPT_memprof_instrument_reads,
175 OPT_memprof_instrument_stack,
176 OPT_memprof_instrument_writes,
177 OPT_memprof_mapping_granularity,
178 OPT_memprof_mapping_scale,
179 OPT_memprof_match_hot_cold_new,
180 OPT_memprof_matching_cold_threshold,
181 OPT_memprof_memory_access_callback_prefix,
182 OPT_memprof_print_function_guids,
183 OPT_memprof_print_match_info,
184 OPT_memprof_print_matched_alloc_stack,
185 OPT_memprof_runtime_default_options,
186 OPT_memprof_salvage_stale_profile,
187 OPT_memprof_use_callbacks,
188 OPT_msan_and_mask,
189 OPT_msan_check_access_address,
190 OPT_msan_check_constant_shadow,
191 OPT_msan_disable_checks,
192 OPT_msan_disambiguate_warning_threshold,
193 OPT_msan_dump_heuristic_instructions,
194 OPT_msan_dump_strict_instructions,
195 OPT_msan_eager_checks,
196 OPT_msan_handle_asm_conservative,
197 OPT_msan_handle_icmp_exact,
198 OPT_msan_handle_icmp,
199 OPT_msan_handle_lifetime_intrinsics,
200 OPT_msan_instrumentation_with_call_threshold,
201 OPT_msan_keep_going,
202 OPT_msan_kernel,
203 OPT_msan_origin_base,
204 OPT_msan_poison_stack_pattern,
205 OPT_msan_poison_stack_with_call,
206 OPT_msan_poison_stack,
207 OPT_msan_poison_undef_vectors,
208 OPT_msan_poison_undef,
209 OPT_msan_precise_disjoint_or,
210 OPT_msan_print_stack_names,
211 OPT_msan_shadow_base,
212 OPT_msan_switch_precision,
213 OPT_msan_track_origins,
214 OPT_msan_with_comdat,
215 OPT_msan_xor_mask,
216 OPT_no_pgo_warn_mismatch_comdat_weak,
217 OPT_nsan_check_loads,
218 OPT_nsan_check_ret,
219 OPT_nsan_check_stores,
220 OPT_nsan_instrument_fcmp,
221 OPT_nsan_propagate_non_ft_const_stores_as_ft,
222 OPT_nsan_shadow_type_mapping,
223 OPT_nsan_truncate_fcmp_eq,
224 OPT_offload_pgo_sampling,
225 OPT_pgo_block_coverage,
226 OPT_pgo_cold_instrument_entry_threshold,
227 OPT_pgo_critical_edge_threshold,
228 OPT_pgo_emit_branch_prob,
229 OPT_pgo_fix_entry_count,
230 OPT_pgo_function_entry_coverage,
231 OPT_pgo_function_size_threshold,
232 OPT_pgo_instr_memop,
233 OPT_pgo_instr_select,
234 OPT_pgo_instrument_cold_function_only,
235 OPT_pgo_instrument_entry,
236 OPT_pgo_instrument_loop_entries,
237 OPT_pgo_memop_count_threshold,
238 OPT_pgo_memop_max_version,
239 OPT_pgo_memop_optimize_memcmp_bcmp,
240 OPT_pgo_memop_percent_threshold,
241 OPT_pgo_memop_scale_count,
242 OPT_pgo_temporal_instrumentation,
243 OPT_pgo_test_profile_file,
244 OPT_pgo_test_profile_remapping_file,
245 OPT_pgo_trace_func_hash,
246 OPT_pgo_treat_unknown_as_cold,
247 OPT_pgo_verify_bfi_cutoff,
248 OPT_pgo_verify_bfi_ratio,
249 OPT_pgo_verify_bfi,
250 OPT_pgo_verify_hot_bfi,
251 OPT_pgo_view_block_coverage_graph,
252 OPT_pgo_view_raw_counts,
253 OPT_pgo_warn_missing_function,
254 OPT_profile_context_root,
255 OPT_profile_correlate,
256 OPT_runtime_counter_relocation,
257 OPT_sampled_instr_burst_duration,
258 OPT_sampled_instr_period,
259 OPT_sampled_instrumentation,
260 OPT_sanitizer_coverage_control_flow,
261 OPT_sanitizer_coverage_drop_ctors,
262 OPT_sanitizer_coverage_gated_trace_callbacks,
263 OPT_sanitizer_coverage_inline_8bit_counters,
264 OPT_sanitizer_coverage_inline_bool_flag,
265 OPT_sanitizer_coverage_level,
266 OPT_sanitizer_coverage_pc_table,
267 OPT_sanitizer_coverage_prune_blocks,
268 OPT_sanitizer_coverage_stack_depth_callback_min,
269 OPT_sanitizer_coverage_stack_depth,
270 OPT_sanitizer_coverage_trace_compares,
271 OPT_sanitizer_coverage_trace_divs,
272 OPT_sanitizer_coverage_trace_geps,
273 OPT_sanitizer_coverage_trace_loads,
274 OPT_sanitizer_coverage_trace_pc_entry_exit,
275 OPT_sanitizer_coverage_trace_pc_guard,
276 OPT_sanitizer_coverage_trace_pc,
277 OPT_sanitizer_coverage_trace_stores,
278 OPT_sanitizer_metadata_atomics,
279 OPT_sanitizer_metadata_covered,
280 OPT_sanitizer_metadata_nosanitize_attr,
281 OPT_sanitizer_metadata_uar,
282 OPT_sanitizer_metadata_weak_callbacks,
283 OPT_skip_ret_exit_block,
284 OPT_speculative_counter_promotion_max_exiting,
285 OPT_speculative_counter_promotion_to_loop,
286 OPT_tsan_compound_read_before_write,
287 OPT_tsan_distinguish_volatile,
288 OPT_tsan_handle_cxx_exceptions,
289 OPT_tsan_instrument_atomics,
290 OPT_tsan_instrument_func_entry_exit,
291 OPT_tsan_instrument_memintrinsics,
292 OPT_tsan_instrument_memory_accesses,
293 OPT_tsan_instrument_read_before_write,
294 OPT_tsan_omit_by_pointer_capturing,
295 OPT_tysan_outline_instrumentation,
296 OPT_tysan_verify_outlined_instrumentation,
297 OPT_tysan_writes_always_set_type,
298 OPT_verify_atomic_counter_promoted,
299 OPT_vp_counters_per_site,
300 OPT_vp_static_alloc,
301};
302} // namespace
303
304static llvm::opt::OptTable::Tables optionTables() {
305 using llvm::opt::DefaultVis, llvm::opt::HelpHidden,
306 llvm::opt::RenderAsInput, llvm::opt::RenderJoined,
307 llvm::opt::RenderSeparate;
308
309#ifdef __GNUC__
310#pragma GCC diagnostic push
311#pragma GCC diagnostic ignored "-Woverlength-strings"
312#endif
313static constexpr char OptionStrTableStorage[] =
314 "\0"
315 "-\0"
316 "--\0"
317 "<input>\0"
318 "<unknown>\0"
319 "-alloc-token-cover-replaceable-new\0"
320 "Cover replaceable operator new\0"
321 "-alloc-token-extended\0"
322 "Extend coverage to custom allocation functions\0"
323 "-alloc-token-fallback\0"
324 "The default fallback token where none could be determined\0"
325 "-alloc-token-fast-abi\0"
326 "The token ID is encoded in the function name\0"
327 "-alloc-token-max\0"
328 "Maximum number of tokens (0 = target SIZE_MAX)\0"
329 "-alloc-token-prefix\0"
330 "The allocation function prefix\0"
331 "-asan-always-slow-path\0"
332 "Use instrumentation with slow path for all accesses\0"
333 "-asan-constructor-kind\0"
334 "Sets the ASan constructor kind\0"
335 "<none|global>\0"
336 "none,global\0"
337 "-asan-debug-func\0"
338 "Do not instrument the function with this name\0"
339 "-asan-debug-max\0"
340 "With -asan-debug-min, instrument only the memory accesses whose index within the function is in [min, max]\0"
341 "-asan-debug-min\0"
342 "With -asan-debug-max, instrument only the memory accesses whose index within the function is in [min, max]\0"
343 "-asan-debug-stack\0"
344 "Print each function after stack instrumentation (with -debug-only=asan)\0"
345 "-asan-destructor-kind\0"
346 "Sets the ASan destructor kind. The default is to use the value provided to the pass constructor\0"
347 "-asan-detect-invalid-pointer-cmp\0"
348 "Instrument <, <=, >, >= with pointer operands\0"
349 "-asan-detect-invalid-pointer-pair\0"
350 "Instrument <, <=, >, >=, - with pointer operands\0"
351 "-asan-detect-invalid-pointer-sub\0"
352 "Instrument - operations with pointer operands\0"
353 "-asan-force-dynamic-shadow\0"
354 "Load shadow address into a local variable for each function\0"
355 "-asan-force-experiment\0"
356 "Force optimization experiment (for testing)\0"
357 "-asan-globals-live-support\0"
358 "Use linker features to support dead code stripping of globals\0"
359 "-asan-globals\0"
360 "Handle global objects\0"
361 "-asan-guard-against-version-mismatch\0"
362 "Guard against compiler/runtime version mismatch\0"
363 "-asan-initialization-order\0"
364 "Handle C++ initializer order\0"
365 "-asan-instrument-address-spaces\0"
366 "Only instrument variables in the specified address spaces\0"
367 "-asan-instrument-assume-dereferenceable\0"
368 "Instrument llvm.assume(dereferenceable)\0"
369 "-asan-instrument-atomics\0"
370 "Instrument atomic instructions (rmw, cmpxchg)\0"
371 "-asan-instrument-byval\0"
372 "Instrument byval call arguments\0"
373 "-asan-instrument-dynamic-allocas\0"
374 "Instrument dynamic allocas\0"
375 "-asan-instrument-reads\0"
376 "Instrument read instructions\0"
377 "-asan-instrument-writes\0"
378 "Instrument write instructions\0"
379 "-asan-instrumentation-with-call-threshold\0"
380 "If the function being instrumented contains more than this number of memory accesses, use callbacks instead of inline checks (-1 means never use callbacks)\0"
381 "-asan-kernel-mem-intrinsic-prefix\0"
382 "Use prefix for memory intrinsics in KASAN mode\0"
383 "-asan-kernel\0"
384 "Enable KernelAddressSanitizer instrumentation\0"
385 "-asan-mapping-offset\0"
386 "Offset of asan shadow mapping [EXPERIMENTAL]\0"
387 "-asan-mapping-scale\0"
388 "Scale of asan shadow mapping\0"
389 "-asan-max-inline-poisoning-size\0"
390 "Inline shadow poisoning for blocks up to the given size in bytes\0"
391 "-asan-max-ins-per-bb\0"
392 "Maximal number of instructions to instrument in any given BB\0"
393 "-asan-memory-access-callback-prefix\0"
394 "Prefix for memory access callbacks\0"
395 "-asan-opt-globals\0"
396 "Don't instrument scalar globals\0"
397 "-asan-opt-same-temp\0"
398 "Instrument the same temp just once\0"
399 "-asan-opt-stack\0"
400 "Don't instrument scalar stack variables\0"
401 "-asan-optimize-callbacks\0"
402 "Emit callback checks as llvm.asan.check.memaccess intrinsics\0"
403 "-asan-opt\0"
404 "Enable -asan-opt-globals, -asan-opt-same-temp, and -asan-opt-stack\0"
405 "-asan-realign-stack\0"
406 "Realign stack to the value of this flag (power of two)\0"
407 "-asan-recover\0"
408 "Enable recovery mode (continue-after-error)\0"
409 "-asan-redzone-byval-args\0"
410 "Create redzones for byval arguments (extra copy required)\0"
411 "-asan-shadow-addr-space\0"
412 "Address space for pointers to the shadow map\0"
413 "-asan-skip-promotable-allocas\0"
414 "Do not instrument promotable allocas\0"
415 "-asan-stack-dynamic-alloca\0"
416 "Use dynamic alloca to represent stack variables\0"
417 "-asan-stack\0"
418 "Handle stack memory\0"
419 "-asan-use-after-return\0"
420 "Sets the mode of detection for stack-use-after-return\0"
421 "<never|runtime|always>\0"
422 "never,runtime,always\0"
423 "-asan-use-after-scope\0"
424 "Check stack-use-after-scope\0"
425 "-asan-use-odr-indicator\0"
426 "Use odr indicators to improve ODR reporting\0"
427 "-asan-use-private-alias\0"
428 "Use private aliases for global variables\0"
429 "-asan-use-stack-safety\0"
430 "Use Stack Safety analysis results\0"
431 "-asan-with-comdat\0"
432 "Place ASan constructors in comdat sections\0"
433 "-asan-with-ifunc-suppress-remat\0"
434 "Suppress rematerialization of dynamic shadow address by passing it through inline asm in prologue\0"
435 "-asan-with-ifunc\0"
436 "Access dynamic shadow through an ifunc global on platforms that support this\0"
437 "-atomic-counter-update-promoted\0"
438 "Do counter update using atomic fetch add for promoted counters only\0"
439 "-atomic-first-counter\0"
440 "Use atomic fetch add for first counter in a function (usually the entry counter)\0"
441 "-bounds-checking-single-trap\0"
442 "Use one trap block per function\0"
443 "-check-functions-filter\0"
444 "Only emit checks for arguments of functions whose names match the given regular expression\0"
445 "-chr-bias-threshold\0"
446 "CHR considers a branch bias greater than this ratio as biased\0"
447 "-chr-dup-threshold\0"
448 "Max number of duplications by CHR for a region\0"
449 "-chr-function-list\0"
450 "Specify file to retrieve the list of functions to apply CHR to\0"
451 "-chr-merge-threshold\0"
452 "CHR merges a group of N branches/selects where N >= this value\0"
453 "-chr-module-list\0"
454 "Specify file to retrieve the list of modules to apply CHR to\0"
455 "-conditional-counter-update\0"
456 "Do conditional counter updates in single byte counters mode)\0"
457 "-ctx-prof-skip-callsite-instr\0"
458 "Do not instrument callsites to functions in this list. Intended for testing\0"
459 "-default-gcov-version\0"
460 "\0"
461 "\0"
462 "-dfsan-abilist\0"
463 "File listing native ABI functions and how the pass treats them\0"
464 "-dfsan-add-global-name-suffix\0"
465 "Whether to add .dfsan suffix to global names\0"
466 "-dfsan-combine-offset-labels-on-gep\0"
467 "Combine the label of the offset with the label of the pointer when doing pointer arithmetic\0"
468 "-dfsan-combine-pointer-labels-on-load\0"
469 "Combine the label of the pointer with the label of the data when loading from memory\0"
470 "-dfsan-combine-pointer-labels-on-store\0"
471 "Combine the label of the pointer with the label of the data when storing in memory\0"
472 "-dfsan-combine-taint-lookup-table\0"
473 "When dfsan-combine-offset-labels-on-gep and/or dfsan-combine-pointer-labels-on-load are false, this flag can be used to re-enable combining offset and/or pointer taint when loading specific constant global variables (i.e. lookup tables)\0"
474 "-dfsan-conditional-callbacks\0"
475 "Insert calls to callback functions on conditionals\0"
476 "-dfsan-debug-nonzero-labels\0"
477 "Insert calls to __dfsan_nonzero_label on observing a parameter, load or return with a nonzero label\0"
478 "-dfsan-event-callbacks\0"
479 "Insert calls to __dfsan_*_callback functions on data events\0"
480 "-dfsan-ignore-personality-routine\0"
481 "If a personality routine is marked uninstrumented from the ABI list, do not create a wrapper for it\0"
482 "-dfsan-instrument-with-call-threshold\0"
483 "If the function being instrumented requires more than this number of origin stores, use callbacks instead of inline checks (-1 means never use callbacks)\0"
484 "-dfsan-preserve-alignment\0"
485 "Respect alignment requirements provided by input IR\0"
486 "-dfsan-reaches-function-callbacks\0"
487 "Insert calls to callback functions on data reaching a function\0"
488 "-dfsan-track-origins\0"
489 "Track origins of labels\0"
490 "-dfsan-track-select-control-flow\0"
491 "Propagate labels from condition values of select instructions to results\0"
492 "-disable-chr\0"
493 "Disable CHR for all functions\0"
494 "-disable-icp\0"
495 "Disable indirect call promotion\0"
496 "-disable-memop-opt\0"
497 "Disable optimize\0"
498 "-disable-vp\0"
499 "Disable Value Profiling\0"
500 "-do-comdat-renaming\0"
501 "Append function hash to the name of COMDAT function to avoid function hash mismatch due to the preinliner\0"
502 "-do-counter-promotion\0"
503 "Do counter register promotion\0"
504 "-force-chr\0"
505 "Apply CHR for all functions\0"
506 "-gcov-atomic-counter\0"
507 "Make counter updates atomic\0"
508 "-hash-based-counter-split\0"
509 "Rename counter variable of a comdat function based on cfg hash\0"
510 "-hot-func-cutoff-for-icp\0"
511 "A count is hot for indirect call promotion if it exceeds the minimum count to reach this percentile of total counts.Note that this percentile is specified as percentile * 10000 = HotFuncCutoffForICP.Default value -1 means that if the flag is unspecified then the value of ProfileSummaryCutoffHot will be used instead\0"
512 "-hwasan-all-globals\0"
513 "Instrument globals, even those within user-defined sections. Warning: This may break existing code which walks globals via linker-generated symbols, expects certain globals to be contiguous with each other, or makes other assumptions which are invalidated by HWASan instrumentation\0"
514 "-hwasan-experimental-use-page-aliases\0"
515 "Use page aliasing in HWASan\0"
516 "-hwasan-generate-tags-with-calls\0"
517 "Generate new tags with runtime library calls\0"
518 "-hwasan-globals\0"
519 "Instrument globals\0"
520 "-hwasan-inline-all-checks\0"
521 "Inline all checks\0"
522 "-hwasan-inline-fast-path-checks\0"
523 "-hwasan-instrument-atomics\0"
524 "-hwasan-instrument-byval\0"
525 "Instrument byval arguments\0"
526 "-hwasan-instrument-landing-pads\0"
527 "Instrument landing pads\0"
528 "-hwasan-instrument-mem-intrinsics\0"
529 "Instrument memory intrinsics\0"
530 "-hwasan-instrument-personality-functions\0"
531 "Instrument personality functions\0"
532 "-hwasan-instrument-reads\0"
533 "-hwasan-instrument-stack\0"
534 "Instrument stack (allocas)\0"
535 "-hwasan-instrument-with-calls\0"
536 "Instrument reads and writes with callbacks\0"
537 "-hwasan-instrument-writes\0"
538 "-hwasan-kernel-mem-intrinsic-prefix\0"
539 "-hwasan-kernel\0"
540 "Enable KernelHWAddressSanitizer instrumentation\0"
541 "-hwasan-match-all-tag\0"
542 "Don't report bad accesses via pointers with this tag\0"
543 "-hwasan-max-lifetimes-for-alloca\0"
544 "How many lifetime ends to handle for a single alloca\0"
545 "-hwasan-memory-access-callback-prefix\0"
546 "-hwasan-percentile-cutoff-hot\0"
547 "Hot percentile cutoff\0"
548 "-hwasan-random-rate\0"
549 "Probability value in the range [0.0, 1.0] to keep instrumentation of a function. Note: instrumentation can be skipped randomly OR because of the hot percentile cutoff, if both are supplied\0"
550 "-hwasan-record-stack-history\0"
551 "Record stack frames with tagged allocations in a thread-local ring buffer\0"
552 "<none|instr|libcall>\0"
553 "none,instr,libcall\0"
554 "-hwasan-recover\0"
555 "-hwasan-static-linking\0"
556 "Don't use .note.hwasan.globals section to instrument globals from loadable libraries. Note: in static binaries, the global variables section can be accessed directly via linker-provided __start_hwasan_globals and __stop_hwasan_globals symbols\0"
557 "-hwasan-strict-use-after-scope\0"
558 "For complicated lifetimes, tag both on end and return\0"
559 "-hwasan-tag-bits\0"
560 "Restrict tag to at most N bits. Needs to be > 4\0"
561 "-hwasan-use-after-scope\0"
562 "Detect use after scope within function\0"
563 "-hwasan-use-short-granules\0"
564 "Use short granules in allocas and outlined checks\0"
565 "-hwasan-use-stack-safety\0"
566 "-hwasan-with-frame-record\0"
567 "Use ring buffer for stack allocations\0"
568 "-icp-allow-candidate-skip\0"
569 "Continue with the remaining targets instead of exiting when failing in a candidate\0"
570 "-icp-allow-decls\0"
571 "Promote the target candidate even when the definition is not available\0"
572 "-icp-allow-hot-only\0"
573 "Promote the target candidate only if it is a hot function. Otherwise, warm functions can also be promoted\0"
574 "-icp-call-only\0"
575 "Run indirect-call promotion for call instructions only\0"
576 "-icp-csskip\0"
577 "Skip Callsite up to this number for this compilation\0"
578 "-icp-cutoff\0"
579 "Max number of promotions for this compilation\0"
580 "-icp-dumpafter\0"
581 "Dump IR after transformation happens\0"
582 "-icp-ignored-base-types\0"
583 "A list of mangled vtable type info names. Classes specified by the type info names and their derived ones will not be vtable-ICP'ed. Useful when the profiled types and actual types in the optimized binary could be different due to profiling limitations. Type info names are those string literals used in LLVM type metadata\0"
584 "-icp-invoke-only\0"
585 "Run indirect-call promotion for invoke instruction only\0"
586 "-icp-lto\0"
587 "Run indirect-call promotion in LTO mode\0"
588 "-icp-max-annotations\0"
589 "Max number of annotations for a single indirect call callsite\0"
590 "-icp-max-num-vtable-last-candidate\0"
591 "The maximum number of vtable for the last candidate\0"
592 "-icp-samplepgo\0"
593 "Run indirect-call promotion in SamplePGO mode\0"
594 "-icp-vtable-percentage-threshold\0"
595 "The percentage threshold of vtable-count / function-count for cost-benefit analysis\0"
596 "-instrprof-atomic-counter-update-all\0"
597 "Make all profile counter updates atomic (for testing only)\0"
598 "-iterative-counter-promotion\0"
599 "Allow counter promotion across the whole loop nest\0"
600 "-lower-allow-check-percentile-cutoff-hot\0"
601 "-lower-allow-check-random-rate\0"
602 "Probability value in the range [0.0, 1.0] of unconditional pseudo-random checks\0"
603 "-max-counter-promotions-per-loop\0"
604 "Max number counter promotions per loop to avoid increasing register pressure too much\0"
605 "-max-counter-promotions\0"
606 "Max number of allowed counter promotions\0"
607 "-memop-max-annotations\0"
608 "Max number of precise value annotations for a single memopintrinsic\0"
609 "-memop-value-prof-max-opt-size\0"
610 "Optimize the memop size <= this value\0"
611 "-memprof-annotate-static-data-prefix\0"
612 "If true, annotate the static data section prefix\0"
613 "-memprof-attach-calleeguids\0"
614 "Attach calleeguids as value profile metadata for indirect calls\0"
615 "-memprof-debug-func\0"
616 "Debug func\0"
617 "-memprof-debug-max\0"
618 "Debug max inst\0"
619 "-memprof-debug-min\0"
620 "Debug min inst\0"
621 "-memprof-debug\0"
622 "Debug\0"
623 "-memprof-guard-against-version-mismatch\0"
624 "-memprof-histogram\0"
625 "Collect access count histograms\0"
626 "-memprof-instrument-atomics\0"
627 "-memprof-instrument-reads\0"
628 "-memprof-instrument-stack\0"
629 "Instrument scalar stack variables\0"
630 "-memprof-instrument-writes\0"
631 "-memprof-mapping-granularity\0"
632 "Granularity of memprof shadow mapping\0"
633 "-memprof-mapping-scale\0"
634 "Scale of memprof shadow mapping\0"
635 "-memprof-match-hot-cold-new\0"
636 "Match allocation profiles onto existing hot/cold operator new calls\0"
637 "-memprof-matching-cold-threshold\0"
638 "Min percent of cold bytes matched to hint allocation cold\0"
639 "-memprof-memory-access-callback-prefix\0"
640 "-memprof-print-function-guids\0"
641 "Print function GUIDs computed for matching\0"
642 "-memprof-print-match-info\0"
643 "Print matching stats for each allocation context in this module's profiles\0"
644 "-memprof-print-matched-alloc-stack\0"
645 "Print full stack context for matched allocations with -memprof-print-match-info\0"
646 "-memprof-runtime-default-options\0"
647 "The default memprof options\0"
648 "-memprof-salvage-stale-profile\0"
649 "Salvage stale MemProf profile\0"
650 "-memprof-use-callbacks\0"
651 "Use callbacks instead of inline instrumentation sequences\0"
652 "-msan-and-mask\0"
653 "Define custom MSan AndMask\0"
654 "-msan-check-access-address\0"
655 "Report accesses through a pointer which has poisoned shadow\0"
656 "-msan-check-constant-shadow\0"
657 "Insert checks for constant shadow values\0"
658 "-msan-disable-checks\0"
659 "Apply no_sanitize to the whole file\0"
660 "-msan-disambiguate-warning-threshold\0"
661 "Define threshold for number of checks per debug location to force origin update\0"
662 "-msan-dump-heuristic-instructions\0"
663 "Prints 'unknown' instructions that were handled heuristically. Use -msan-dump-strict-instructions to print instructions that could not be handled explicitly nor heuristically\0"
664 "-msan-dump-strict-instructions\0"
665 "Print out instructions with default strict semantics i.e.,check that all the inputs are fully initialized, and mark the output as fully initialized. These semantics are applied to instructions that could not be handled explicitly nor heuristically\0"
666 "-msan-eager-checks\0"
667 "Check arguments and return values at function call boundaries\0"
668 "-msan-handle-asm-conservative\0"
669 "Conservative handling of inline assembly\0"
670 "-msan-handle-icmp-exact\0"
671 "Exact handling of relational integer ICmp\0"
672 "-msan-handle-icmp\0"
673 "Propagate shadow through ICmpEQ and ICmpNE\0"
674 "-msan-handle-lifetime-intrinsics\0"
675 "When possible, poison scoped variables at the beginning of the scope (slower, but more precise)\0"
676 "-msan-instrumentation-with-call-threshold\0"
677 "If the function being instrumented requires more than this number of checks and origin stores, use callbacks instead of inline checks (-1 means never use callbacks)\0"
678 "-msan-keep-going\0"
679 "Keep going after reporting a UMR\0"
680 "-msan-kernel\0"
681 "Enable KernelMemorySanitizer instrumentation\0"
682 "-msan-origin-base\0"
683 "Define custom MSan OriginBase\0"
684 "-msan-poison-stack-pattern\0"
685 "Poison uninitialized stack variables with the given pattern\0"
686 "-msan-poison-stack-with-call\0"
687 "Poison uninitialized stack variables with a call\0"
688 "-msan-poison-stack\0"
689 "Poison uninitialized stack variables\0"
690 "-msan-poison-undef-vectors\0"
691 "Precisely poison partially undefined constant vectors. If false (legacy behavior), the entire vector is considered fully initialized, which may lead to false negatives. Fully undefined constant vectors are unaffected by this flag (see -msan-poison-undef)\0"
692 "-msan-poison-undef\0"
693 "Poison fully undef temporary values. Partially undefined constant vectors are unaffected by this flag (see -msan-poison-undef-vectors)\0"
694 "-msan-precise-disjoint-or\0"
695 "Precisely poison disjoint OR. If false (legacy behavior), disjointedness is ignored (i.e., 1|1 is initialized)\0"
696 "-msan-print-stack-names\0"
697 "Print name of local stack variable\0"
698 "-msan-shadow-base\0"
699 "Define custom MSan ShadowBase\0"
700 "-msan-switch-precision\0"
701 "Controls the number of cases considered by MSan for LLVM switch instructions. 0 means no UUMs detected. Higher values lead to fewer false negatives but may impact compiler and/or application performance. N.B. LLVM switch instructions do not correspond exactly to C++ switch statements\0"
702 "-msan-track-origins\0"
703 "Track origins (allocation sites) of poisoned memory\0"
704 "-msan-with-comdat\0"
705 "Place MSan constructors in comdat sections\0"
706 "-msan-xor-mask\0"
707 "Define custom MSan XorMask\0"
708 "-no-pgo-warn-mismatch-comdat-weak\0"
709 "The option is used to turn on/off warnings about hash mismatch for comdat or weak functions\0"
710 "-nsan-check-loads\0"
711 "Check floating-point load\0"
712 "-nsan-check-ret\0"
713 "Check floating-point return values\0"
714 "-nsan-check-stores\0"
715 "Check floating-point stores\0"
716 "-nsan-instrument-fcmp\0"
717 "Instrument floating-point comparisons\0"
718 "-nsan-propagate-non-ft-const-stores-as-ft\0"
719 "Propagate non floating-point const stores as floating point values.For debugging purposes only\0"
720 "-nsan-shadow-type-mapping\0"
721 "One shadow type id for each of `float`, `double`, `long double`. `d`,`l`,`q`,`e` mean double, x86_fp80, fp128 (quad) and ppc_fp128 (extended double) respectively. The default is to shadow `float` as `double`, and `double` and `x86_fp80` as `fp128`\0"
722 "-nsan-truncate-fcmp-eq\0"
723 "This flag controls the behaviour of fcmp equality comparisons.For equality comparisons such as `x == 0.0f`, we can perform the shadow check in the shadow (`x_shadow == 0.0) == (x == 0.0f)`) or app domain (`(trunc(x_shadow) == 0.0f) == (x == 0.0f)`). This helps catch the case when `x_shadow` is accurate enough (and therefore close enough to zero) so that `trunc(x_shadow)` is zero even though both `x` and `x_shadow` are not\0"
724 "-offload-pgo-sampling\0"
725 "Log2 of the sampling period for offload PGO instrumentation. Only 1 in every 2^N blocks is instrumented. 0 = all blocks, 1 = 50%, 2 = 25%, 3 = 12.5%. Higher values reduce overhead at the cost of sparser profiles\0"
726 "-pgo-block-coverage\0"
727 "Use this option to enable basic block coverage instrumentation\0"
728 "-pgo-cold-instrument-entry-threshold\0"
729 "For cold function instrumentation, skip instrumenting functions whose entry count is above the given value\0"
730 "-pgo-critical-edge-threshold\0"
731 "Do not instrument functions with the number of critical edges greater than this threshold\0"
732 "-pgo-emit-branch-prob\0"
733 "When this option is on, the annotated branch probability will be emitted as optimization remarks: -{Rpass|pass-remarks}=pgo-instrumentation\0"
734 "-pgo-fix-entry-count\0"
735 "Fix function entry count in profile use\0"
736 "-pgo-function-entry-coverage\0"
737 "Use this option to enable function entry coverage instrumentation\0"
738 "-pgo-function-size-threshold\0"
739 "Do not instrument functions smaller than this threshold\0"
740 "-pgo-instr-memop\0"
741 "Use this option to turn on/off memory intrinsic size profiling\0"
742 "-pgo-instr-select\0"
743 "Use this option to turn on/off SELECT instruction instrumentation\0"
744 "-pgo-instrument-cold-function-only\0"
745 "Enable cold function only instrumentation\0"
746 "-pgo-instrument-entry\0"
747 "Force to instrument function entry basicblock\0"
748 "-pgo-instrument-loop-entries\0"
749 "Force to instrument loop entries\0"
750 "-pgo-memop-count-threshold\0"
751 "The minimum count to optimize memory intrinsic calls\0"
752 "-pgo-memop-max-version\0"
753 "The max version for the optimized memory intrinsic calls\0"
754 "-pgo-memop-optimize-memcmp-bcmp\0"
755 "Size-specialize memcmp and bcmp calls\0"
756 "-pgo-memop-percent-threshold\0"
757 "The percentage threshold for the memory intrinsic calls optimization\0"
758 "-pgo-memop-scale-count\0"
759 "Scale the memop size counts using the basic block count value\0"
760 "-pgo-temporal-instrumentation\0"
761 "Use this option to enable temporal instrumentation\0"
762 "-pgo-test-profile-file\0"
763 "Specify the path of profile data file. This is mainly for test purpose\0"
764 "-pgo-test-profile-remapping-file\0"
765 "Specify the path of profile remapping file. This is mainly for test purpose\0"
766 "-pgo-trace-func-hash\0"
767 "Trace the hash of the function with this name\0"
768 "-pgo-treat-unknown-as-cold\0"
769 "For cold function instrumentation, treat count unknown(e.g. unprofiled) functions as cold\0"
770 "-pgo-verify-bfi-cutoff\0"
771 "Set the threshold for pgo-verify-bfi: skip the counts whose profile count value is below\0"
772 "-pgo-verify-bfi-ratio\0"
773 "Set the threshold for pgo-verify-bfi: only print out mismatched BFI if the difference percentage is greater than this value (in percentage)\0"
774 "-pgo-verify-bfi\0"
775 "Print out mismatched BFI counts after setting profile metadata The print is enabled under -Rpass-analysis=pgo, or internal option -pass-remarks-analysis=pgo\0"
776 "-pgo-verify-hot-bfi\0"
777 "Print out the non-match BFI count if a hot raw profile count becomes non-hot, or a cold raw profile count becomes hot. The print is enabled under -Rpass-analysis=pgo, or internal option -pass-remarks-analysis=pgo\0"
778 "-pgo-view-block-coverage-graph\0"
779 "Create a dot file of CFGs with block coverage inference information\0"
780 "-pgo-view-raw-counts\0"
781 "A boolean option to show CFG dag or text with raw profile counts from profile data. See also option -pgo-view-counts. To limit graph display to only one function, use filtering option -view-bfi-func-name\0"
782 "<none|graph|text>\0"
783 "none,graph,text\0"
784 "-pgo-warn-missing-function\0"
785 "Use this option to turn on/off warnings about missing profile data for functions\0"
786 "-profile-context-root\0"
787 "A function name, assumed to be global, which will be treated as the root of an interesting graph, which will be profiled independently from other similar graphs\0"
788 "-profile-correlate\0"
789 "Use debug info or binary file to correlate profiles\0"
790 "<debug-info|binary>\0"
791 "debug-info,binary\0"
792 "-runtime-counter-relocation\0"
793 "Enable relocating counters at runtime\0"
794 "-sampled-instr-burst-duration\0"
795 "Set the profile instrumentation burst duration, which can range from 1 to the value of 'sampled-instr-period' (0 is invalid). This number of samples will be recorded for each 'sampled-instr-period' count update. Setting to 1 enables simple sampling, in which case it is recommended to set 'sampled-instr-period' to a prime number\0"
796 "-sampled-instr-period\0"
797 "Set the profile instrumentation sample period. A sample period of 0 is invalid. For each sample period, a fixed number of consecutive samples will be recorded. The number is controlled by 'sampled-instr-burst-duration' flag. The default sample period of 65536 is optimized for generating efficient code that leverages unsigned short integer wrapping in overflow, but this is disabled under simple sampling (burst duration = 1)\0"
798 "-sampled-instrumentation\0"
799 "Do PGO instrumentation sampling\0"
800 "-sanitizer-coverage-control-flow\0"
801 "Collect control flow for each function\0"
802 "-sanitizer-coverage-drop-ctors\0"
803 "Do not emit module ctors for global counters\0"
804 "-sanitizer-coverage-gated-trace-callbacks\0"
805 "Gate the invocation of the tracing callbacks on a global variable. Currently only supported for trace-pc-guard and trace-cmp\0"
806 "-sanitizer-coverage-inline-8bit-counters\0"
807 "Increments 8-bit counter for every edge\0"
808 "-sanitizer-coverage-inline-bool-flag\0"
809 "Sets a boolean flag for every edge\0"
810 "-sanitizer-coverage-level\0"
811 "Sanitizer Coverage. 0: none, 1: entry block, 2: all blocks, 3: all blocks and critical edges\0"
812 "-sanitizer-coverage-pc-table\0"
813 "Create a static PC table\0"
814 "-sanitizer-coverage-prune-blocks\0"
815 "Reduce the number of instrumented blocks\0"
816 "-sanitizer-coverage-stack-depth-callback-min\0"
817 "Max stack depth tracing should use callback and only when stack depth more than specified\0"
818 "-sanitizer-coverage-stack-depth\0"
819 "Max stack depth tracing\0"
820 "-sanitizer-coverage-trace-compares\0"
821 "Tracing of CMP and similar instructions\0"
822 "-sanitizer-coverage-trace-divs\0"
823 "Tracing of DIV instructions\0"
824 "-sanitizer-coverage-trace-geps\0"
825 "Tracing of GEP instructions\0"
826 "-sanitizer-coverage-trace-loads\0"
827 "Tracing of load instructions\0"
828 "-sanitizer-coverage-trace-pc-entry-exit\0"
829 "PC tracing with separate entry/exit callbacks\0"
830 "-sanitizer-coverage-trace-pc-guard\0"
831 "PC tracing with a guard\0"
832 "-sanitizer-coverage-trace-pc\0"
833 "Experimental pc tracing\0"
834 "-sanitizer-coverage-trace-stores\0"
835 "Tracing of store instructions\0"
836 "-sanitizer-metadata-atomics\0"
837 "Emit PCs for atomic operations\0"
838 "-sanitizer-metadata-covered\0"
839 "Emit PCs for covered functions\0"
840 "-sanitizer-metadata-nosanitize-attr\0"
841 "Mark some metadata features uncovered in functions with associated no_sanitize attributes\0"
842 "-sanitizer-metadata-uar\0"
843 "Emit PCs for start of functions that are subject for use-after-return checking\0"
844 "-sanitizer-metadata-weak-callbacks\0"
845 "Declare callbacks extern weak, and only call if non-null\0"
846 "-skip-ret-exit-block\0"
847 "Suppress counter promotion if exit blocks contain ret\0"
848 "-speculative-counter-promotion-max-exiting\0"
849 "The max number of exiting blocks of a loop to allow speculative counter promotion\0"
850 "-speculative-counter-promotion-to-loop\0"
851 "When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter update can be further/iteratively promoted into an acyclic region\0"
852 "-tsan-compound-read-before-write\0"
853 "Emit special compound instrumentation for reads-before-writes\0"
854 "-tsan-distinguish-volatile\0"
855 "Emit special instrumentation for accesses to volatiles\0"
856 "-tsan-handle-cxx-exceptions\0"
857 "Handle C++ exceptions (insert cleanup blocks for unwinding)\0"
858 "-tsan-instrument-atomics\0"
859 "Instrument atomics\0"
860 "-tsan-instrument-func-entry-exit\0"
861 "Instrument function entry and exit\0"
862 "-tsan-instrument-memintrinsics\0"
863 "Instrument memintrinsics (memset/memcpy/memmove)\0"
864 "-tsan-instrument-memory-accesses\0"
865 "Instrument memory accesses\0"
866 "-tsan-instrument-read-before-write\0"
867 "Do not eliminate read instrumentation for read-before-writes\0"
868 "-tsan-omit-by-pointer-capturing\0"
869 "Omit accesses due to pointer capturing\0"
870 "-tysan-outline-instrumentation\0"
871 "Uses function calls for all TySan instrumentation, reducing ELF size\0"
872 "-tysan-verify-outlined-instrumentation\0"
873 "Check types twice with both inlined instrumentation and function calls. This verifies that they behave the same\0"
874 "-tysan-writes-always-set-type\0"
875 "Writes always set the type\0"
876 "-verify-atomic-counter-promoted\0"
877 "Check that all profile counter updates were made atomic; no-op if atomic updates are not requested (-fprofile-update=atomic)\0"
878 "-vp-counters-per-site\0"
879 "The average number of profile counters allocated per value profiling site\0"
880 "-vp-static-alloc\0"
881 "Do static counter allocation for value profiler\0"
882 ;
883#ifdef __GNUC__
884#pragma GCC diagnostic pop
885#endif
886
887static constexpr llvm::StringTable
888OptionStrTable = OptionStrTableStorage;
889
890 static constexpr llvm::StringTable::Offset OptionPrefixesTable[] = {
891 0 /* prefixes */,
892 2 /* prefixes */, 1 /* '-' */, 3 /* '--' */
893 };
894
895 static constexpr llvm::opt::OptTable::HelpTextVariant OptionHelpTextVariantsTable[] = {
896 {0, 0},
897 };
898
899 static constexpr unsigned OptionSubCommandIDsTable[] = {
900 0 /* subcommands */
901 };
902
903 static constexpr llvm::opt::OptTable::InfoExtra OptionInfoExtrasTable[] = {
904 {0, 0, 0, 0, 0, 0, 0, 0},
905 {0, 0, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
906 {550, 0, 564, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
907 {3779, 0, 3802, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
908 {9603, 0, 9624, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
909 {21179, 0, 21197, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
910 {21575, 0, 21595, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
911 };
912
913 static constexpr llvm::opt::OptTable::Info OptionInfoTable[] = {
914 {6 /* <input> */, 0, 0, 0, 1, 0, llvm::opt::Option::InputClass},
915 {14 /* <unknown> */, 0, 0, 0, 1, 0, llvm::opt::Option::UnknownClass},
916 {24 /* -alloc-token-cover-replaceable-new */, 59, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
917 {90 /* -alloc-token-extended */, 112, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
918 {159 /* -alloc-token-fallback */, 181, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
919 {239 /* -alloc-token-fast-abi */, 261, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
920 {306 /* -alloc-token-max */, 323, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
921 {370 /* -alloc-token-prefix */, 390, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
922 {421 /* -asan-always-slow-path */, 444, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
923 {496 /* -asan-constructor-kind */, 519, 0, 0, 2, 1, llvm::opt::Option::SeparateOrEqClass},
924 {576 /* -asan-debug-func */, 593, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
925 {639 /* -asan-debug-max */, 655, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
926 {762 /* -asan-debug-min */, 778, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
927 {885 /* -asan-debug-stack */, 903, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
928 {975 /* -asan-destructor-kind */, 997, 0, 0, 2, 1, llvm::opt::Option::SeparateOrEqClass},
929 {1093 /* -asan-detect-invalid-pointer-cmp */, 1126, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
930 {1172 /* -asan-detect-invalid-pointer-pair */, 1206, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
931 {1255 /* -asan-detect-invalid-pointer-sub */, 1288, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
932 {1334 /* -asan-force-dynamic-shadow */, 1361, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
933 {1421 /* -asan-force-experiment */, 1444, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
934 {1488 /* -asan-globals-live-support */, 1515, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
935 {1577 /* -asan-globals */, 1591, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
936 {1613 /* -asan-guard-against-version-mismatch */, 1650, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
937 {1698 /* -asan-initialization-order */, 1725, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
938 {1754 /* -asan-instrument-address-spaces */, 1786, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
939 {1844 /* -asan-instrument-assume-dereferenceable */, 1884, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
940 {1924 /* -asan-instrument-atomics */, 1949, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
941 {1995 /* -asan-instrument-byval */, 2018, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
942 {2050 /* -asan-instrument-dynamic-allocas */, 2083, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
943 {2110 /* -asan-instrument-reads */, 2133, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
944 {2162 /* -asan-instrument-writes */, 2186, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
945 {2216 /* -asan-instrumentation-with-call-threshold */, 2258, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
946 {2414 /* -asan-kernel-mem-intrinsic-prefix */, 2448, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
947 {2495 /* -asan-kernel */, 2508, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
948 {2554 /* -asan-mapping-offset */, 2575, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
949 {2620 /* -asan-mapping-scale */, 2640, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
950 {2669 /* -asan-max-inline-poisoning-size */, 2701, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
951 {2766 /* -asan-max-ins-per-bb */, 2787, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
952 {2848 /* -asan-memory-access-callback-prefix */, 2884, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
953 {2919 /* -asan-opt-globals */, 2937, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
954 {2969 /* -asan-opt-same-temp */, 2989, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
955 {3024 /* -asan-opt-stack */, 3040, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
956 {3080 /* -asan-optimize-callbacks */, 3105, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
957 {3166 /* -asan-opt */, 3176, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
958 {3243 /* -asan-realign-stack */, 3263, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
959 {3318 /* -asan-recover */, 3332, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
960 {3376 /* -asan-redzone-byval-args */, 3401, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
961 {3459 /* -asan-shadow-addr-space */, 3483, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
962 {3528 /* -asan-skip-promotable-allocas */, 3558, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
963 {3595 /* -asan-stack-dynamic-alloca */, 3622, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
964 {3670 /* -asan-stack */, 3682, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
965 {3702 /* -asan-use-after-return */, 3725, 0, 0, 3, 1, llvm::opt::Option::SeparateOrEqClass},
966 {3823 /* -asan-use-after-scope */, 3845, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
967 {3873 /* -asan-use-odr-indicator */, 3897, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
968 {3941 /* -asan-use-private-alias */, 3965, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
969 {4006 /* -asan-use-stack-safety */, 4029, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
970 {4063 /* -asan-with-comdat */, 4081, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
971 {4124 /* -asan-with-ifunc-suppress-remat */, 4156, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
972 {4254 /* -asan-with-ifunc */, 4271, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
973 {4348 /* -atomic-counter-update-promoted */, 4380, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
974 {4449 /* -atomic-first-counter */, 4471, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
975 {4552 /* -bounds-checking-single-trap */, 4581, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
976 {4613 /* -check-functions-filter */, 4637, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
977 {4728 /* -chr-bias-threshold */, 4748, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
978 {4810 /* -chr-dup-threshold */, 4829, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
979 {4876 /* -chr-function-list */, 4895, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
980 {4958 /* -chr-merge-threshold */, 4979, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
981 {5042 /* -chr-module-list */, 5059, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
982 {5120 /* -conditional-counter-update */, 5148, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
983 {5209 /* -ctx-prof-skip-callsite-instr */, 5239, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
984 {5315 /* -default-gcov-version */, 5337, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
985 {5339 /* -dfsan-abilist */, 5354, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
986 {5417 /* -dfsan-add-global-name-suffix */, 5447, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
987 {5492 /* -dfsan-combine-offset-labels-on-gep */, 5528, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
988 {5620 /* -dfsan-combine-pointer-labels-on-load */, 5658, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
989 {5743 /* -dfsan-combine-pointer-labels-on-store */, 5782, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
990 {5865 /* -dfsan-combine-taint-lookup-table */, 5899, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
991 {6136 /* -dfsan-conditional-callbacks */, 6165, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
992 {6216 /* -dfsan-debug-nonzero-labels */, 6244, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
993 {6344 /* -dfsan-event-callbacks */, 6367, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
994 {6427 /* -dfsan-ignore-personality-routine */, 6461, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
995 {6561 /* -dfsan-instrument-with-call-threshold */, 6599, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
996 {6753 /* -dfsan-preserve-alignment */, 6779, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
997 {6831 /* -dfsan-reaches-function-callbacks */, 6865, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
998 {6928 /* -dfsan-track-origins */, 6949, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
999 {6973 /* -dfsan-track-select-control-flow */, 7006, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1000 {7079 /* -disable-chr */, 7092, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1001 {7122 /* -disable-icp */, 7135, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1002 {7167 /* -disable-memop-opt */, 7186, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1003 {7203 /* -disable-vp */, 7215, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1004 {7239 /* -do-comdat-renaming */, 7259, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1005 {7365 /* -do-counter-promotion */, 7387, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1006 {7417 /* -force-chr */, 7428, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1007 {7456 /* -gcov-atomic-counter */, 7477, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1008 {7505 /* -hash-based-counter-split */, 7531, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1009 {7594 /* -hot-func-cutoff-for-icp */, 7619, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1010 {7936 /* -hwasan-all-globals */, 7956, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1011 {8238 /* -hwasan-experimental-use-page-aliases */, 8276, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1012 {8304 /* -hwasan-generate-tags-with-calls */, 8337, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1013 {8382 /* -hwasan-globals */, 8398, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1014 {8417 /* -hwasan-inline-all-checks */, 8443, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1015 {8461 /* -hwasan-inline-fast-path-checks */, 8443, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1016 {8493 /* -hwasan-instrument-atomics */, 1949, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1017 {8520 /* -hwasan-instrument-byval */, 8545, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1018 {8572 /* -hwasan-instrument-landing-pads */, 8604, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1019 {8628 /* -hwasan-instrument-mem-intrinsics */, 8662, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1020 {8691 /* -hwasan-instrument-personality-functions */, 8732, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1021 {8765 /* -hwasan-instrument-reads */, 2133, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1022 {8790 /* -hwasan-instrument-stack */, 8815, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1023 {8842 /* -hwasan-instrument-with-calls */, 8872, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1024 {8915 /* -hwasan-instrument-writes */, 2186, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1025 {8941 /* -hwasan-kernel-mem-intrinsic-prefix */, 2448, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1026 {8977 /* -hwasan-kernel */, 8992, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1027 {9040 /* -hwasan-match-all-tag */, 9062, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1028 {9115 /* -hwasan-max-lifetimes-for-alloca */, 9148, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1029 {9201 /* -hwasan-memory-access-callback-prefix */, 2884, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1030 {9239 /* -hwasan-percentile-cutoff-hot */, 9269, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1031 {9291 /* -hwasan-random-rate */, 9311, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1032 {9500 /* -hwasan-record-stack-history */, 9529, 0, 0, 4, 1, llvm::opt::Option::SeparateOrEqClass},
1033 {9643 /* -hwasan-recover */, 3332, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1034 {9659 /* -hwasan-static-linking */, 9682, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1035 {9925 /* -hwasan-strict-use-after-scope */, 9956, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1036 {10010 /* -hwasan-tag-bits */, 10027, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1037 {10075 /* -hwasan-use-after-scope */, 10099, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1038 {10138 /* -hwasan-use-short-granules */, 10165, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1039 {10215 /* -hwasan-use-stack-safety */, 4029, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1040 {10240 /* -hwasan-with-frame-record */, 10266, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1041 {10304 /* -icp-allow-candidate-skip */, 10330, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1042 {10413 /* -icp-allow-decls */, 10430, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1043 {10502 /* -icp-allow-hot-only */, 10522, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1044 {10628 /* -icp-call-only */, 10643, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1045 {10698 /* -icp-csskip */, 10710, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1046 {10763 /* -icp-cutoff */, 10775, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1047 {10821 /* -icp-dumpafter */, 10836, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1048 {10873 /* -icp-ignored-base-types */, 10897, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1049 {11220 /* -icp-invoke-only */, 11237, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1050 {11293 /* -icp-lto */, 11302, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1051 {11342 /* -icp-max-annotations */, 11363, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1052 {11425 /* -icp-max-num-vtable-last-candidate */, 11460, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1053 {11512 /* -icp-samplepgo */, 11527, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1054 {11573 /* -icp-vtable-percentage-threshold */, 11606, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1055 {11690 /* -instrprof-atomic-counter-update-all */, 11727, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1056 {11786 /* -iterative-counter-promotion */, 11815, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1057 {11866 /* -lower-allow-check-percentile-cutoff-hot */, 9269, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1058 {11907 /* -lower-allow-check-random-rate */, 11938, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1059 {12018 /* -max-counter-promotions-per-loop */, 12051, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1060 {12137 /* -max-counter-promotions */, 12161, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1061 {12202 /* -memop-max-annotations */, 12225, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1062 {12293 /* -memop-value-prof-max-opt-size */, 12324, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1063 {12362 /* -memprof-annotate-static-data-prefix */, 12399, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1064 {12448 /* -memprof-attach-calleeguids */, 12476, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1065 {12540 /* -memprof-debug-func */, 12560, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1066 {12571 /* -memprof-debug-max */, 12590, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1067 {12605 /* -memprof-debug-min */, 12624, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1068 {12639 /* -memprof-debug */, 12654, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1069 {12660 /* -memprof-guard-against-version-mismatch */, 1650, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1070 {12700 /* -memprof-histogram */, 12719, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1071 {12751 /* -memprof-instrument-atomics */, 1949, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1072 {12779 /* -memprof-instrument-reads */, 2133, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1073 {12805 /* -memprof-instrument-stack */, 12831, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1074 {12865 /* -memprof-instrument-writes */, 2186, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1075 {12892 /* -memprof-mapping-granularity */, 12921, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1076 {12959 /* -memprof-mapping-scale */, 12982, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1077 {13014 /* -memprof-match-hot-cold-new */, 13042, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1078 {13110 /* -memprof-matching-cold-threshold */, 13143, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1079 {13201 /* -memprof-memory-access-callback-prefix */, 2884, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1080 {13240 /* -memprof-print-function-guids */, 13270, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1081 {13313 /* -memprof-print-match-info */, 13339, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1082 {13414 /* -memprof-print-matched-alloc-stack */, 13449, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1083 {13529 /* -memprof-runtime-default-options */, 13562, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1084 {13590 /* -memprof-salvage-stale-profile */, 13621, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1085 {13651 /* -memprof-use-callbacks */, 13674, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1086 {13732 /* -msan-and-mask */, 13747, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1087 {13774 /* -msan-check-access-address */, 13801, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1088 {13861 /* -msan-check-constant-shadow */, 13889, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1089 {13930 /* -msan-disable-checks */, 13951, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1090 {13987 /* -msan-disambiguate-warning-threshold */, 14024, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1091 {14104 /* -msan-dump-heuristic-instructions */, 14138, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1092 {14313 /* -msan-dump-strict-instructions */, 14344, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1093 {14592 /* -msan-eager-checks */, 14611, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1094 {14673 /* -msan-handle-asm-conservative */, 14703, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1095 {14744 /* -msan-handle-icmp-exact */, 14768, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1096 {14810 /* -msan-handle-icmp */, 14828, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1097 {14871 /* -msan-handle-lifetime-intrinsics */, 14904, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1098 {15000 /* -msan-instrumentation-with-call-threshold */, 15042, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1099 {15207 /* -msan-keep-going */, 15224, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1100 {15257 /* -msan-kernel */, 15270, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1101 {15315 /* -msan-origin-base */, 15333, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1102 {15363 /* -msan-poison-stack-pattern */, 15390, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1103 {15450 /* -msan-poison-stack-with-call */, 15479, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1104 {15528 /* -msan-poison-stack */, 15547, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1105 {15584 /* -msan-poison-undef-vectors */, 15611, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1106 {15866 /* -msan-poison-undef */, 15885, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1107 {16020 /* -msan-precise-disjoint-or */, 16046, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1108 {16157 /* -msan-print-stack-names */, 16181, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1109 {16216 /* -msan-shadow-base */, 16234, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1110 {16264 /* -msan-switch-precision */, 16287, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1111 {16572 /* -msan-track-origins */, 16592, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1112 {16644 /* -msan-with-comdat */, 16662, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1113 {16705 /* -msan-xor-mask */, 16720, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1114 {16747 /* -no-pgo-warn-mismatch-comdat-weak */, 16781, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1115 {16873 /* -nsan-check-loads */, 16891, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1116 {16917 /* -nsan-check-ret */, 16933, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1117 {16968 /* -nsan-check-stores */, 16987, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1118 {17015 /* -nsan-instrument-fcmp */, 17037, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1119 {17075 /* -nsan-propagate-non-ft-const-stores-as-ft */, 17117, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1120 {17212 /* -nsan-shadow-type-mapping */, 17238, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1121 {17486 /* -nsan-truncate-fcmp-eq */, 17509, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1122 {17936 /* -offload-pgo-sampling */, 17958, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1123 {18170 /* -pgo-block-coverage */, 18190, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1124 {18253 /* -pgo-cold-instrument-entry-threshold */, 18290, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1125 {18397 /* -pgo-critical-edge-threshold */, 18426, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1126 {18517 /* -pgo-emit-branch-prob */, 18539, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1127 {18679 /* -pgo-fix-entry-count */, 18700, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1128 {18740 /* -pgo-function-entry-coverage */, 18769, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1129 {18835 /* -pgo-function-size-threshold */, 18864, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1130 {18920 /* -pgo-instr-memop */, 18937, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1131 {19000 /* -pgo-instr-select */, 19018, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1132 {19084 /* -pgo-instrument-cold-function-only */, 19119, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1133 {19161 /* -pgo-instrument-entry */, 19183, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1134 {19229 /* -pgo-instrument-loop-entries */, 19258, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1135 {19291 /* -pgo-memop-count-threshold */, 19318, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1136 {19371 /* -pgo-memop-max-version */, 19394, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1137 {19452 /* -pgo-memop-optimize-memcmp-bcmp */, 19484, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1138 {19522 /* -pgo-memop-percent-threshold */, 19551, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1139 {19620 /* -pgo-memop-scale-count */, 19643, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1140 {19706 /* -pgo-temporal-instrumentation */, 19736, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1141 {19787 /* -pgo-test-profile-file */, 19810, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1142 {19881 /* -pgo-test-profile-remapping-file */, 19914, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1143 {19990 /* -pgo-trace-func-hash */, 20011, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1144 {20057 /* -pgo-treat-unknown-as-cold */, 20084, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1145 {20174 /* -pgo-verify-bfi-cutoff */, 20197, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1146 {20286 /* -pgo-verify-bfi-ratio */, 20308, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1147 {20449 /* -pgo-verify-bfi */, 20465, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1148 {20622 /* -pgo-verify-hot-bfi */, 20642, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1149 {20855 /* -pgo-view-block-coverage-graph */, 20886, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1150 {20954 /* -pgo-view-raw-counts */, 20975, 0, 0, 5, 1, llvm::opt::Option::SeparateOrEqClass},
1151 {21213 /* -pgo-warn-missing-function */, 21240, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1152 {21321 /* -profile-context-root */, 21343, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1153 {21504 /* -profile-correlate */, 21523, 0, 0, 6, 1, llvm::opt::Option::SeparateOrEqClass},
1154 {21613 /* -runtime-counter-relocation */, 21641, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1155 {21679 /* -sampled-instr-burst-duration */, 21709, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1156 {22039 /* -sampled-instr-period */, 22061, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1157 {22488 /* -sampled-instrumentation */, 22513, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1158 {22545 /* -sanitizer-coverage-control-flow */, 22578, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1159 {22617 /* -sanitizer-coverage-drop-ctors */, 22648, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1160 {22693 /* -sanitizer-coverage-gated-trace-callbacks */, 22735, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1161 {22860 /* -sanitizer-coverage-inline-8bit-counters */, 22901, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1162 {22941 /* -sanitizer-coverage-inline-bool-flag */, 22978, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1163 {23013 /* -sanitizer-coverage-level */, 23039, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1164 {23132 /* -sanitizer-coverage-pc-table */, 23161, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1165 {23186 /* -sanitizer-coverage-prune-blocks */, 23219, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1166 {23260 /* -sanitizer-coverage-stack-depth-callback-min */, 23305, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1167 {23395 /* -sanitizer-coverage-stack-depth */, 23427, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1168 {23451 /* -sanitizer-coverage-trace-compares */, 23486, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1169 {23526 /* -sanitizer-coverage-trace-divs */, 23557, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1170 {23585 /* -sanitizer-coverage-trace-geps */, 23616, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1171 {23644 /* -sanitizer-coverage-trace-loads */, 23676, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1172 {23705 /* -sanitizer-coverage-trace-pc-entry-exit */, 23745, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1173 {23791 /* -sanitizer-coverage-trace-pc-guard */, 23826, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1174 {23850 /* -sanitizer-coverage-trace-pc */, 23879, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1175 {23903 /* -sanitizer-coverage-trace-stores */, 23936, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1176 {23966 /* -sanitizer-metadata-atomics */, 23994, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1177 {24025 /* -sanitizer-metadata-covered */, 24053, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1178 {24084 /* -sanitizer-metadata-nosanitize-attr */, 24120, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1179 {24210 /* -sanitizer-metadata-uar */, 24234, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1180 {24313 /* -sanitizer-metadata-weak-callbacks */, 24348, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1181 {24405 /* -skip-ret-exit-block */, 24426, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1182 {24480 /* -speculative-counter-promotion-max-exiting */, 24523, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1183 {24606 /* -speculative-counter-promotion-to-loop */, 24645, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1184 {24834 /* -tsan-compound-read-before-write */, 24867, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1185 {24929 /* -tsan-distinguish-volatile */, 24956, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1186 {25011 /* -tsan-handle-cxx-exceptions */, 25039, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1187 {25099 /* -tsan-instrument-atomics */, 25124, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1188 {25143 /* -tsan-instrument-func-entry-exit */, 25176, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1189 {25211 /* -tsan-instrument-memintrinsics */, 25242, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1190 {25291 /* -tsan-instrument-memory-accesses */, 25324, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1191 {25351 /* -tsan-instrument-read-before-write */, 25386, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1192 {25447 /* -tsan-omit-by-pointer-capturing */, 25479, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1193 {25518 /* -tysan-outline-instrumentation */, 25549, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1194 {25618 /* -tysan-verify-outlined-instrumentation */, 25657, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1195 {25769 /* -tysan-writes-always-set-type */, 25799, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1196 {25826 /* -verify-atomic-counter-promoted */, 25858, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1197 {25983 /* -vp-counters-per-site */, 26005, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
1198 {26079 /* -vp-static-alloc */, 26096, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
1199 };
1200
1201 return {OptionStrTable, OptionPrefixesTable,
1202 OptionInfoTable, OptionInfoExtrasTable, OptionHelpTextVariantsTable, {}, OptionSubCommandIDsTable};
1203}
1204#undef OPTTABLE_CODE
1205#endif // OPTTABLE_CODE || OPTIONS_STRUCT_DEFS
1206
1207
1208#ifdef OPTIONS_STRUCT_DECL
1209#undef OPTIONS_STRUCT_DECL
1210#include "llvm/ADT/ArrayRef.h"
1211#include "llvm/ADT/BoolOrDefault.h"
1212#include "llvm/ADT/StringRef.h"
1213#include "llvm/Support/Allocator.h"
1214#include "llvm/Support/LibraryOptionsContext.h"
1215
1216namespace llvm {
1217namespace opt {
1218class Arg;
1219class LibraryOptionsParser;
1220class OptTable;
1221} // namespace opt
1222} // namespace llvm
1223
1224namespace llvm {
1225struct InstrumentationOptions {
1226 bool asan_always_slow_path{false};
1227 std::optional<AsanCtorKind> asan_constructor_kind{};
1228 StringRef asan_debug_func{};
1229 int asan_debug_max{-1};
1230 int asan_debug_min{-1};
1231 bool asan_debug_stack{false};
1232 std::optional<AsanDtorKind> asan_destructor_kind{};
1233 bool asan_detect_invalid_pointer_cmp{false};
1234 bool asan_detect_invalid_pointer_pair{false};
1235 bool asan_detect_invalid_pointer_sub{false};
1236 bool asan_force_dynamic_shadow{false};
1237 uint32_t asan_force_experiment{0};
1238 bool asan_globals{true};
1239 bool asan_globals_live_support{true};
1240 llvm::BoolOrDefault asan_guard_against_version_mismatch{llvm::BoolOrDefault::Default};
1241 bool asan_initialization_order{true};
1242 llvm::ArrayRef<unsigned> asan_instrument_address_spaces{};
1243 bool asan_instrument_assume_dereferenceable{false};
1244 bool asan_instrument_atomics{true};
1245 bool asan_instrument_byval{true};
1246 bool asan_instrument_dynamic_allocas{true};
1247 bool asan_instrument_reads{true};
1248 bool asan_instrument_writes{true};
1249 std::optional<int> asan_instrumentation_with_call_threshold{};
1250 llvm::BoolOrDefault asan_kernel{llvm::BoolOrDefault::Default};
1251 bool asan_kernel_mem_intrinsic_prefix{false};
1252 std::optional<uint64_t> asan_mapping_offset{};
1253 std::optional<int> asan_mapping_scale{};
1254 std::optional<uint32_t> asan_max_inline_poisoning_size{};
1255 int asan_max_ins_per_bb{10000};
1256 StringRef asan_memory_access_callback_prefix{"__asan_"};
1257 bool asan_opt{true};
1258 bool asan_opt_globals{true};
1259 bool asan_opt_same_temp{true};
1260 bool asan_opt_stack{false};
1261 bool asan_optimize_callbacks{false};
1262 unsigned asan_realign_stack{32};
1263 llvm::BoolOrDefault asan_recover{llvm::BoolOrDefault::Default};
1264 bool asan_redzone_byval_args{true};
1265 int asan_shadow_addr_space{0};
1266 bool asan_skip_promotable_allocas{true};
1267 bool asan_stack{true};
1268 bool asan_stack_dynamic_alloca{true};
1269 std::optional<AsanDetectStackUseAfterReturnMode> asan_use_after_return{};
1270 bool asan_use_after_scope{false};
1271 llvm::BoolOrDefault asan_use_odr_indicator{llvm::BoolOrDefault::Default};
1272 llvm::BoolOrDefault asan_use_private_alias{llvm::BoolOrDefault::Default};
1273 bool asan_use_stack_safety{true};
1274 bool asan_with_comdat{true};
1275 bool asan_with_ifunc{true};
1276 bool asan_with_ifunc_suppress_remat{true};
1277 bool alloc_token_cover_replaceable_new{true};
1278 llvm::BoolOrDefault alloc_token_extended{llvm::BoolOrDefault::Default};
1279 uint64_t alloc_token_fallback{0};
1280 llvm::BoolOrDefault alloc_token_fast_abi{llvm::BoolOrDefault::Default};
1281 std::optional<uint64_t> alloc_token_max{};
1282 StringRef alloc_token_prefix{"__alloc_token_"};
1283 bool bounds_checking_single_trap{false};
1284 double chr_bias_threshold{0.99};
1285 unsigned chr_dup_threshold{3};
1286 StringRef chr_function_list{};
1287 unsigned chr_merge_threshold{2};
1288 StringRef chr_module_list{};
1289 bool disable_chr{false};
1290 bool force_chr{false};
1291 llvm::ArrayRef<StringRef> dfsan_abilist{};
1292 bool dfsan_add_global_name_suffix{true};
1293 bool dfsan_combine_offset_labels_on_gep{true};
1294 bool dfsan_combine_pointer_labels_on_load{true};
1295 bool dfsan_combine_pointer_labels_on_store{false};
1296 llvm::ArrayRef<StringRef> dfsan_combine_taint_lookup_table{};
1297 bool dfsan_conditional_callbacks{false};
1298 bool dfsan_debug_nonzero_labels{false};
1299 bool dfsan_event_callbacks{false};
1300 bool dfsan_ignore_personality_routine{false};
1301 int dfsan_instrument_with_call_threshold{3500};
1302 bool dfsan_preserve_alignment{false};
1303 bool dfsan_reaches_function_callbacks{false};
1304 int dfsan_track_origins{0};
1305 bool dfsan_track_select_control_flow{true};
1306 StringRef default_gcov_version{"0000"};
1307 bool gcov_atomic_counter{false};
1308 bool hwasan_all_globals{false};
1309 bool hwasan_experimental_use_page_aliases{false};
1310 bool hwasan_generate_tags_with_calls{false};
1311 llvm::BoolOrDefault hwasan_globals{llvm::BoolOrDefault::Default};
1312 llvm::BoolOrDefault hwasan_inline_all_checks{llvm::BoolOrDefault::Default};
1313 llvm::BoolOrDefault hwasan_inline_fast_path_checks{llvm::BoolOrDefault::Default};
1314 bool hwasan_instrument_atomics{true};
1315 bool hwasan_instrument_byval{true};
1316 llvm::BoolOrDefault hwasan_instrument_landing_pads{llvm::BoolOrDefault::Default};
1317 bool hwasan_instrument_mem_intrinsics{true};
1318 llvm::BoolOrDefault hwasan_instrument_personality_functions{llvm::BoolOrDefault::Default};
1319 bool hwasan_instrument_reads{true};
1320 bool hwasan_instrument_stack{true};
1321 llvm::BoolOrDefault hwasan_instrument_with_calls{llvm::BoolOrDefault::Default};
1322 bool hwasan_instrument_writes{true};
1323 llvm::BoolOrDefault hwasan_kernel{llvm::BoolOrDefault::Default};
1324 bool hwasan_kernel_mem_intrinsic_prefix{false};
1325 std::optional<int> hwasan_match_all_tag{};
1326 size_t hwasan_max_lifetimes_for_alloca{3};
1327 StringRef hwasan_memory_access_callback_prefix{"__hwasan_"};
1328 std::optional<int> hwasan_percentile_cutoff_hot{};
1329 std::optional<float> hwasan_random_rate{};
1330 RecordStackHistoryMode hwasan_record_stack_history{RecordStackHistoryMode::instr};
1331 llvm::BoolOrDefault hwasan_recover{llvm::BoolOrDefault::Default};
1332 bool hwasan_static_linking{false};
1333 bool hwasan_strict_use_after_scope{true};
1334 uint64_t hwasan_tag_bits{0};
1335 bool hwasan_use_after_scope{true};
1336 llvm::BoolOrDefault hwasan_use_short_granules{llvm::BoolOrDefault::Default};
1337 llvm::BoolOrDefault hwasan_use_stack_safety{llvm::BoolOrDefault::Default};
1338 llvm::BoolOrDefault hwasan_with_frame_record{llvm::BoolOrDefault::Default};
1339 bool disable_icp{false};
1340 int hot_func_cutoff_for_icp{-1};
1341 bool icp_allow_candidate_skip{false};
1342 bool icp_allow_decls{false};
1343 bool icp_allow_hot_only{true};
1344 bool icp_call_only{false};
1345 unsigned icp_csskip{0};
1346 unsigned icp_cutoff{0};
1347 bool icp_dumpafter{false};
1348 llvm::ArrayRef<StringRef> icp_ignored_base_types{};
1349 bool icp_invoke_only{false};
1350 bool icp_lto{false};
1351 int icp_max_num_vtable_last_candidate{1};
1352 bool icp_samplepgo{false};
1353 float icp_vtable_percentage_threshold{0.995f};
1354 bool atomic_counter_update_promoted{false};
1355 bool atomic_first_counter{false};
1356 bool conditional_counter_update{false};
1357 llvm::BoolOrDefault do_counter_promotion{llvm::BoolOrDefault::Default};
1358 bool hash_based_counter_split{true};
1359 bool instrprof_atomic_counter_update_all{false};
1360 bool iterative_counter_promotion{true};
1361 int max_counter_promotions{-1};
1362 unsigned max_counter_promotions_per_loop{20};
1363 unsigned offload_pgo_sampling{3};
1364 std::optional<ProfCorrelatorKind> profile_correlate{};
1365 llvm::BoolOrDefault runtime_counter_relocation{llvm::BoolOrDefault::Default};
1366 unsigned sampled_instr_burst_duration{200};
1367 unsigned sampled_instr_period{65536};
1368 llvm::BoolOrDefault sampled_instrumentation{llvm::BoolOrDefault::Default};
1369 bool skip_ret_exit_block{true};
1370 unsigned speculative_counter_promotion_max_exiting{3};
1371 bool speculative_counter_promotion_to_loop{false};
1372 bool verify_atomic_counter_promoted{false};
1373 double vp_counters_per_site{1.0};
1374 bool vp_static_alloc{true};
1375 std::optional<int> lower_allow_check_percentile_cutoff_hot{};
1376 std::optional<float> lower_allow_check_random_rate{};
1377 uint64_t msan_and_mask{0};
1378 bool msan_check_access_address{true};
1379 bool msan_check_constant_shadow{true};
1380 bool msan_disable_checks{false};
1381 int msan_disambiguate_warning_threshold{3};
1382 bool msan_dump_heuristic_instructions{false};
1383 bool msan_dump_strict_instructions{false};
1384 llvm::BoolOrDefault msan_eager_checks{llvm::BoolOrDefault::Default};
1385 bool msan_handle_asm_conservative{true};
1386 bool msan_handle_icmp{true};
1387 bool msan_handle_icmp_exact{true};
1388 bool msan_handle_lifetime_intrinsics{true};
1389 int msan_instrumentation_with_call_threshold{3500};
1390 llvm::BoolOrDefault msan_keep_going{llvm::BoolOrDefault::Default};
1391 llvm::BoolOrDefault msan_kernel{llvm::BoolOrDefault::Default};
1392 std::optional<uint64_t> msan_origin_base{};
1393 bool msan_poison_stack{true};
1394 int msan_poison_stack_pattern{0xff};
1395 bool msan_poison_stack_with_call{false};
1396 bool msan_poison_undef{true};
1397 bool msan_poison_undef_vectors{false};
1398 bool msan_precise_disjoint_or{false};
1399 bool msan_print_stack_names{true};
1400 std::optional<uint64_t> msan_shadow_base{};
1401 int msan_switch_precision{99};
1402 std::optional<int> msan_track_origins{};
1403 bool msan_with_comdat{false};
1404 uint64_t msan_xor_mask{0};
1405 int memprof_debug{0};
1406 StringRef memprof_debug_func{};
1407 int memprof_debug_max{-1};
1408 int memprof_debug_min{-1};
1409 bool memprof_guard_against_version_mismatch{true};
1410 bool memprof_histogram{false};
1411 bool memprof_instrument_atomics{true};
1412 bool memprof_instrument_reads{true};
1413 bool memprof_instrument_stack{false};
1414 bool memprof_instrument_writes{true};
1415 int memprof_mapping_granularity{64};
1416 int memprof_mapping_scale{3};
1417 StringRef memprof_memory_access_callback_prefix{"__memprof_"};
1418 StringRef memprof_runtime_default_options{};
1419 bool memprof_use_callbacks{false};
1420 bool memprof_annotate_static_data_prefix{false};
1421 bool memprof_attach_calleeguids{true};
1422 bool memprof_match_hot_cold_new{false};
1423 unsigned memprof_matching_cold_threshold{100};
1424 bool memprof_print_function_guids{false};
1425 bool memprof_print_match_info{false};
1426 bool memprof_print_matched_alloc_stack{false};
1427 bool memprof_salvage_stale_profile{false};
1428 StringRef check_functions_filter{};
1429 bool nsan_check_loads{false};
1430 bool nsan_check_ret{true};
1431 bool nsan_check_stores{true};
1432 bool nsan_instrument_fcmp{true};
1433 bool nsan_propagate_non_ft_const_stores_as_ft{false};
1434 StringRef nsan_shadow_type_mapping{"dqq"};
1435 bool nsan_truncate_fcmp_eq{true};
1436 llvm::ArrayRef<StringRef> profile_context_root{};
1437 llvm::ArrayRef<StringRef> ctx_prof_skip_callsite_instr{};
1438 bool disable_vp{false};
1439 bool do_comdat_renaming{false};
1440 unsigned icp_max_annotations{3};
1441 unsigned memop_max_annotations{4};
1442 bool no_pgo_warn_mismatch_comdat_weak{true};
1443 bool pgo_block_coverage{false};
1444 uint64_t pgo_cold_instrument_entry_threshold{0};
1445 unsigned pgo_critical_edge_threshold{20000};
1446 bool pgo_emit_branch_prob{false};
1447 bool pgo_fix_entry_count{true};
1448 bool pgo_function_entry_coverage{false};
1449 unsigned pgo_function_size_threshold{0};
1450 bool pgo_instr_memop{true};
1451 bool pgo_instr_select{true};
1452 bool pgo_instrument_cold_function_only{false};
1453 llvm::BoolOrDefault pgo_instrument_entry{llvm::BoolOrDefault::Default};
1454 llvm::BoolOrDefault pgo_instrument_loop_entries{llvm::BoolOrDefault::Default};
1455 bool pgo_temporal_instrumentation{false};
1456 StringRef pgo_test_profile_file{};
1457 StringRef pgo_test_profile_remapping_file{};
1458 StringRef pgo_trace_func_hash{"-"};
1459 bool pgo_treat_unknown_as_cold{false};
1460 bool pgo_verify_bfi{false};
1461 unsigned pgo_verify_bfi_cutoff{5};
1462 unsigned pgo_verify_bfi_ratio{2};
1463 bool pgo_verify_hot_bfi{false};
1464 bool pgo_view_block_coverage_graph{false};
1465 PGOViewCountsType pgo_view_raw_counts{PGOVCT_None};
1466 bool pgo_warn_missing_function{false};
1467 bool disable_memop_opt{false};
1468 unsigned memop_value_prof_max_opt_size{128};
1469 unsigned pgo_memop_count_threshold{1000};
1470 unsigned pgo_memop_max_version{3};
1471 bool pgo_memop_optimize_memcmp_bcmp{true};
1472 unsigned pgo_memop_percent_threshold{40};
1473 bool pgo_memop_scale_count{true};
1474 bool sanitizer_metadata_atomics{false};
1475 bool sanitizer_metadata_covered{false};
1476 bool sanitizer_metadata_nosanitize_attr{true};
1477 bool sanitizer_metadata_uar{false};
1478 bool sanitizer_metadata_weak_callbacks{true};
1479 bool sanitizer_coverage_control_flow{false};
1480 bool sanitizer_coverage_drop_ctors{false};
1481 bool sanitizer_coverage_gated_trace_callbacks{false};
1482 bool sanitizer_coverage_inline_8bit_counters{false};
1483 bool sanitizer_coverage_inline_bool_flag{false};
1484 int sanitizer_coverage_level{0};
1485 bool sanitizer_coverage_pc_table{false};
1486 bool sanitizer_coverage_prune_blocks{true};
1487 bool sanitizer_coverage_stack_depth{false};
1488 int sanitizer_coverage_stack_depth_callback_min{0};
1489 bool sanitizer_coverage_trace_compares{false};
1490 bool sanitizer_coverage_trace_divs{false};
1491 bool sanitizer_coverage_trace_geps{false};
1492 bool sanitizer_coverage_trace_loads{false};
1493 bool sanitizer_coverage_trace_pc{false};
1494 bool sanitizer_coverage_trace_pc_entry_exit{false};
1495 bool sanitizer_coverage_trace_pc_guard{false};
1496 bool sanitizer_coverage_trace_stores{false};
1497 bool tsan_compound_read_before_write{false};
1498 bool tsan_distinguish_volatile{false};
1499 bool tsan_handle_cxx_exceptions{true};
1500 bool tsan_instrument_atomics{true};
1501 bool tsan_instrument_func_entry_exit{true};
1502 bool tsan_instrument_memintrinsics{true};
1503 bool tsan_instrument_memory_accesses{true};
1504 bool tsan_instrument_read_before_write{false};
1505 bool tsan_omit_by_pointer_capturing{true};
1506 bool tysan_outline_instrumentation{true};
1507 bool tysan_verify_outlined_instrumentation{false};
1508 bool tysan_writes_always_set_type{false};
1509
1510 static constexpr bool PerContext = true;
1511 static const llvm::opt::OptTable &optTable();
1512 /// Sets the member that \p A names, allocating a list from \p Alloc.
1513 /// Returns false if the value is invalid.
1514 bool apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc);
1515
1516private:
1517 friend class llvm::cl::LibraryOptionsContext;
1518 friend class llvm::opt::LibraryOptionsParser;
1519
1520 static InstrumentationOptions Global;
1521 static const InstrumentationOptions Default;
1522};
1523} // namespace llvm
1524#endif // OPTIONS_STRUCT_DECL
1525
1526#ifdef OPTIONS_STRUCT_DEFS
1527#undef OPTIONS_STRUCT_DEFS
1528llvm::InstrumentationOptions llvm::InstrumentationOptions::Global;
1529LLVM_REQUIRE_CONSTANT_INITIALIZATION const llvm::InstrumentationOptions llvm::InstrumentationOptions::Default;
1530
1531const llvm::opt::OptTable &llvm::InstrumentationOptions::optTable() {
1532 static const llvm::opt::LibraryOptTable T(optionTables());
1533 return T;
1534}
1535
1536bool llvm::InstrumentationOptions::apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc) {
1537 switch (A.getOption().getID()) {
1538 case OPT_alloc_token_cover_replaceable_new:
1539 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", alloc_token_cover_replaceable_new, Alloc);
1540 case OPT_alloc_token_extended:
1541 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", alloc_token_extended, Alloc);
1542 case OPT_alloc_token_fallback:
1543 return llvm::opt::parseArgValue(A.getValue(), alloc_token_fallback, Alloc);
1544 case OPT_alloc_token_fast_abi:
1545 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", alloc_token_fast_abi, Alloc);
1546 case OPT_alloc_token_max:
1547 return llvm::opt::parseArgValue(A.getValue(), alloc_token_max, Alloc);
1548 case OPT_alloc_token_prefix:
1549 return llvm::opt::parseArgValue(A.getValue(), alloc_token_prefix, Alloc);
1550 case OPT_asan_always_slow_path:
1551 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_always_slow_path, Alloc);
1552 case OPT_asan_constructor_kind:
1553 return llvm::opt::parseArgValue(A.getValue(), asan_constructor_kind, Alloc, [](llvm::StringRef V, auto &X) {
1554 if (V == "none") {
1555 X = AsanCtorKind::None;
1556 return true;
1557 }
1558 if (V == "global") {
1559 X = AsanCtorKind::Global;
1560 return true;
1561 }
1562 return false;
1563 });
1564 case OPT_asan_debug_func:
1565 return llvm::opt::parseArgValue(A.getValue(), asan_debug_func, Alloc);
1566 case OPT_asan_debug_max:
1567 return llvm::opt::parseArgValue(A.getValue(), asan_debug_max, Alloc);
1568 case OPT_asan_debug_min:
1569 return llvm::opt::parseArgValue(A.getValue(), asan_debug_min, Alloc);
1570 case OPT_asan_debug_stack:
1571 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_debug_stack, Alloc);
1572 case OPT_asan_destructor_kind:
1573 return llvm::opt::parseArgValue(A.getValue(), asan_destructor_kind, Alloc, [](llvm::StringRef V, auto &X) {
1574 if (V == "none") {
1575 X = AsanDtorKind::None;
1576 return true;
1577 }
1578 if (V == "global") {
1579 X = AsanDtorKind::Global;
1580 return true;
1581 }
1582 return false;
1583 });
1584 case OPT_asan_detect_invalid_pointer_cmp:
1585 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_detect_invalid_pointer_cmp, Alloc);
1586 case OPT_asan_detect_invalid_pointer_pair:
1587 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_detect_invalid_pointer_pair, Alloc);
1588 case OPT_asan_detect_invalid_pointer_sub:
1589 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_detect_invalid_pointer_sub, Alloc);
1590 case OPT_asan_force_dynamic_shadow:
1591 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_force_dynamic_shadow, Alloc);
1592 case OPT_asan_force_experiment:
1593 return llvm::opt::parseArgValue(A.getValue(), asan_force_experiment, Alloc);
1594 case OPT_asan_globals_live_support:
1595 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_globals_live_support, Alloc);
1596 case OPT_asan_globals:
1597 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_globals, Alloc);
1598 case OPT_asan_guard_against_version_mismatch:
1599 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_guard_against_version_mismatch, Alloc);
1600 case OPT_asan_initialization_order:
1601 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_initialization_order, Alloc);
1602 case OPT_asan_instrument_address_spaces:
1603 return llvm::opt::parseArgValue(A.getValue(), asan_instrument_address_spaces, Alloc);
1604 case OPT_asan_instrument_assume_dereferenceable:
1605 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_instrument_assume_dereferenceable, Alloc);
1606 case OPT_asan_instrument_atomics:
1607 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_instrument_atomics, Alloc);
1608 case OPT_asan_instrument_byval:
1609 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_instrument_byval, Alloc);
1610 case OPT_asan_instrument_dynamic_allocas:
1611 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_instrument_dynamic_allocas, Alloc);
1612 case OPT_asan_instrument_reads:
1613 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_instrument_reads, Alloc);
1614 case OPT_asan_instrument_writes:
1615 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_instrument_writes, Alloc);
1616 case OPT_asan_instrumentation_with_call_threshold:
1617 return llvm::opt::parseArgValue(A.getValue(), asan_instrumentation_with_call_threshold, Alloc);
1618 case OPT_asan_kernel_mem_intrinsic_prefix:
1619 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_kernel_mem_intrinsic_prefix, Alloc);
1620 case OPT_asan_kernel:
1621 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_kernel, Alloc);
1622 case OPT_asan_mapping_offset:
1623 return llvm::opt::parseArgValue(A.getValue(), asan_mapping_offset, Alloc);
1624 case OPT_asan_mapping_scale:
1625 return llvm::opt::parseArgValue(A.getValue(), asan_mapping_scale, Alloc);
1626 case OPT_asan_max_inline_poisoning_size:
1627 return llvm::opt::parseArgValue(A.getValue(), asan_max_inline_poisoning_size, Alloc);
1628 case OPT_asan_max_ins_per_bb:
1629 return llvm::opt::parseArgValue(A.getValue(), asan_max_ins_per_bb, Alloc);
1630 case OPT_asan_memory_access_callback_prefix:
1631 return llvm::opt::parseArgValue(A.getValue(), asan_memory_access_callback_prefix, Alloc);
1632 case OPT_asan_opt_globals:
1633 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_opt_globals, Alloc);
1634 case OPT_asan_opt_same_temp:
1635 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_opt_same_temp, Alloc);
1636 case OPT_asan_opt_stack:
1637 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_opt_stack, Alloc);
1638 case OPT_asan_optimize_callbacks:
1639 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_optimize_callbacks, Alloc);
1640 case OPT_asan_opt:
1641 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_opt, Alloc);
1642 case OPT_asan_realign_stack:
1643 return llvm::opt::parseArgValue(A.getValue(), asan_realign_stack, Alloc);
1644 case OPT_asan_recover:
1645 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_recover, Alloc);
1646 case OPT_asan_redzone_byval_args:
1647 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_redzone_byval_args, Alloc);
1648 case OPT_asan_shadow_addr_space:
1649 return llvm::opt::parseArgValue(A.getValue(), asan_shadow_addr_space, Alloc);
1650 case OPT_asan_skip_promotable_allocas:
1651 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_skip_promotable_allocas, Alloc);
1652 case OPT_asan_stack_dynamic_alloca:
1653 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_stack_dynamic_alloca, Alloc);
1654 case OPT_asan_stack:
1655 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_stack, Alloc);
1656 case OPT_asan_use_after_return:
1657 return llvm::opt::parseArgValue(A.getValue(), asan_use_after_return, Alloc, [](llvm::StringRef V, auto &X) {
1658 if (V == "never") {
1659 X = AsanDetectStackUseAfterReturnMode::Never;
1660 return true;
1661 }
1662 if (V == "runtime") {
1663 X = AsanDetectStackUseAfterReturnMode::Runtime;
1664 return true;
1665 }
1666 if (V == "always") {
1667 X = AsanDetectStackUseAfterReturnMode::Always;
1668 return true;
1669 }
1670 return false;
1671 });
1672 case OPT_asan_use_after_scope:
1673 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_use_after_scope, Alloc);
1674 case OPT_asan_use_odr_indicator:
1675 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_use_odr_indicator, Alloc);
1676 case OPT_asan_use_private_alias:
1677 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_use_private_alias, Alloc);
1678 case OPT_asan_use_stack_safety:
1679 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_use_stack_safety, Alloc);
1680 case OPT_asan_with_comdat:
1681 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_with_comdat, Alloc);
1682 case OPT_asan_with_ifunc_suppress_remat:
1683 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_with_ifunc_suppress_remat, Alloc);
1684 case OPT_asan_with_ifunc:
1685 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", asan_with_ifunc, Alloc);
1686 case OPT_atomic_counter_update_promoted:
1687 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", atomic_counter_update_promoted, Alloc);
1688 case OPT_atomic_first_counter:
1689 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", atomic_first_counter, Alloc);
1690 case OPT_bounds_checking_single_trap:
1691 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", bounds_checking_single_trap, Alloc);
1692 case OPT_check_functions_filter:
1693 return llvm::opt::parseArgValue(A.getValue(), check_functions_filter, Alloc);
1694 case OPT_chr_bias_threshold:
1695 return llvm::opt::parseArgValue(A.getValue(), chr_bias_threshold, Alloc);
1696 case OPT_chr_dup_threshold:
1697 return llvm::opt::parseArgValue(A.getValue(), chr_dup_threshold, Alloc);
1698 case OPT_chr_function_list:
1699 return llvm::opt::parseArgValue(A.getValue(), chr_function_list, Alloc);
1700 case OPT_chr_merge_threshold:
1701 return llvm::opt::parseArgValue(A.getValue(), chr_merge_threshold, Alloc);
1702 case OPT_chr_module_list:
1703 return llvm::opt::parseArgValue(A.getValue(), chr_module_list, Alloc);
1704 case OPT_conditional_counter_update:
1705 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", conditional_counter_update, Alloc);
1706 case OPT_ctx_prof_skip_callsite_instr:
1707 return llvm::opt::parseArgValue(A.getValue(), ctx_prof_skip_callsite_instr, Alloc);
1708 case OPT_default_gcov_version:
1709 return llvm::opt::parseArgValue(A.getValue(), default_gcov_version, Alloc);
1710 case OPT_dfsan_abilist:
1711 return llvm::opt::parseArgValue(A.getValue(), dfsan_abilist, Alloc);
1712 case OPT_dfsan_add_global_name_suffix:
1713 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfsan_add_global_name_suffix, Alloc);
1714 case OPT_dfsan_combine_offset_labels_on_gep:
1715 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfsan_combine_offset_labels_on_gep, Alloc);
1716 case OPT_dfsan_combine_pointer_labels_on_load:
1717 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfsan_combine_pointer_labels_on_load, Alloc);
1718 case OPT_dfsan_combine_pointer_labels_on_store:
1719 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfsan_combine_pointer_labels_on_store, Alloc);
1720 case OPT_dfsan_combine_taint_lookup_table:
1721 return llvm::opt::parseArgValue(A.getValue(), dfsan_combine_taint_lookup_table, Alloc);
1722 case OPT_dfsan_conditional_callbacks:
1723 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfsan_conditional_callbacks, Alloc);
1724 case OPT_dfsan_debug_nonzero_labels:
1725 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfsan_debug_nonzero_labels, Alloc);
1726 case OPT_dfsan_event_callbacks:
1727 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfsan_event_callbacks, Alloc);
1728 case OPT_dfsan_ignore_personality_routine:
1729 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfsan_ignore_personality_routine, Alloc);
1730 case OPT_dfsan_instrument_with_call_threshold:
1731 return llvm::opt::parseArgValue(A.getValue(), dfsan_instrument_with_call_threshold, Alloc);
1732 case OPT_dfsan_preserve_alignment:
1733 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfsan_preserve_alignment, Alloc);
1734 case OPT_dfsan_reaches_function_callbacks:
1735 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfsan_reaches_function_callbacks, Alloc);
1736 case OPT_dfsan_track_origins:
1737 return llvm::opt::parseArgValue(A.getValue(), dfsan_track_origins, Alloc);
1738 case OPT_dfsan_track_select_control_flow:
1739 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfsan_track_select_control_flow, Alloc);
1740 case OPT_disable_chr:
1741 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_chr, Alloc);
1742 case OPT_disable_icp:
1743 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_icp, Alloc);
1744 case OPT_disable_memop_opt:
1745 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_memop_opt, Alloc);
1746 case OPT_disable_vp:
1747 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_vp, Alloc);
1748 case OPT_do_comdat_renaming:
1749 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", do_comdat_renaming, Alloc);
1750 case OPT_do_counter_promotion:
1751 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", do_counter_promotion, Alloc);
1752 case OPT_force_chr:
1753 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", force_chr, Alloc);
1754 case OPT_gcov_atomic_counter:
1755 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", gcov_atomic_counter, Alloc);
1756 case OPT_hash_based_counter_split:
1757 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hash_based_counter_split, Alloc);
1758 case OPT_hot_func_cutoff_for_icp:
1759 return llvm::opt::parseArgValue(A.getValue(), hot_func_cutoff_for_icp, Alloc);
1760 case OPT_hwasan_all_globals:
1761 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_all_globals, Alloc);
1762 case OPT_hwasan_experimental_use_page_aliases:
1763 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_experimental_use_page_aliases, Alloc);
1764 case OPT_hwasan_generate_tags_with_calls:
1765 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_generate_tags_with_calls, Alloc);
1766 case OPT_hwasan_globals:
1767 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_globals, Alloc);
1768 case OPT_hwasan_inline_all_checks:
1769 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_inline_all_checks, Alloc);
1770 case OPT_hwasan_inline_fast_path_checks:
1771 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_inline_fast_path_checks, Alloc);
1772 case OPT_hwasan_instrument_atomics:
1773 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_instrument_atomics, Alloc);
1774 case OPT_hwasan_instrument_byval:
1775 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_instrument_byval, Alloc);
1776 case OPT_hwasan_instrument_landing_pads:
1777 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_instrument_landing_pads, Alloc);
1778 case OPT_hwasan_instrument_mem_intrinsics:
1779 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_instrument_mem_intrinsics, Alloc);
1780 case OPT_hwasan_instrument_personality_functions:
1781 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_instrument_personality_functions, Alloc);
1782 case OPT_hwasan_instrument_reads:
1783 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_instrument_reads, Alloc);
1784 case OPT_hwasan_instrument_stack:
1785 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_instrument_stack, Alloc);
1786 case OPT_hwasan_instrument_with_calls:
1787 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_instrument_with_calls, Alloc);
1788 case OPT_hwasan_instrument_writes:
1789 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_instrument_writes, Alloc);
1790 case OPT_hwasan_kernel_mem_intrinsic_prefix:
1791 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_kernel_mem_intrinsic_prefix, Alloc);
1792 case OPT_hwasan_kernel:
1793 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_kernel, Alloc);
1794 case OPT_hwasan_match_all_tag:
1795 return llvm::opt::parseArgValue(A.getValue(), hwasan_match_all_tag, Alloc);
1796 case OPT_hwasan_max_lifetimes_for_alloca:
1797 return llvm::opt::parseArgValue(A.getValue(), hwasan_max_lifetimes_for_alloca, Alloc);
1798 case OPT_hwasan_memory_access_callback_prefix:
1799 return llvm::opt::parseArgValue(A.getValue(), hwasan_memory_access_callback_prefix, Alloc);
1800 case OPT_hwasan_percentile_cutoff_hot:
1801 return llvm::opt::parseArgValue(A.getValue(), hwasan_percentile_cutoff_hot, Alloc);
1802 case OPT_hwasan_random_rate:
1803 return llvm::opt::parseArgValue(A.getValue(), hwasan_random_rate, Alloc);
1804 case OPT_hwasan_record_stack_history:
1805 return llvm::opt::parseArgValue(A.getValue(), hwasan_record_stack_history, Alloc, [](llvm::StringRef V, auto &X) {
1806 if (V == "none") {
1807 X = RecordStackHistoryMode::none;
1808 return true;
1809 }
1810 if (V == "instr") {
1811 X = RecordStackHistoryMode::instr;
1812 return true;
1813 }
1814 if (V == "libcall") {
1815 X = RecordStackHistoryMode::libcall;
1816 return true;
1817 }
1818 return false;
1819 });
1820 case OPT_hwasan_recover:
1821 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_recover, Alloc);
1822 case OPT_hwasan_static_linking:
1823 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_static_linking, Alloc);
1824 case OPT_hwasan_strict_use_after_scope:
1825 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_strict_use_after_scope, Alloc);
1826 case OPT_hwasan_tag_bits:
1827 return llvm::opt::parseArgValue(A.getValue(), hwasan_tag_bits, Alloc);
1828 case OPT_hwasan_use_after_scope:
1829 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_use_after_scope, Alloc);
1830 case OPT_hwasan_use_short_granules:
1831 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_use_short_granules, Alloc);
1832 case OPT_hwasan_use_stack_safety:
1833 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_use_stack_safety, Alloc);
1834 case OPT_hwasan_with_frame_record:
1835 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hwasan_with_frame_record, Alloc);
1836 case OPT_icp_allow_candidate_skip:
1837 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", icp_allow_candidate_skip, Alloc);
1838 case OPT_icp_allow_decls:
1839 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", icp_allow_decls, Alloc);
1840 case OPT_icp_allow_hot_only:
1841 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", icp_allow_hot_only, Alloc);
1842 case OPT_icp_call_only:
1843 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", icp_call_only, Alloc);
1844 case OPT_icp_csskip:
1845 return llvm::opt::parseArgValue(A.getValue(), icp_csskip, Alloc);
1846 case OPT_icp_cutoff:
1847 return llvm::opt::parseArgValue(A.getValue(), icp_cutoff, Alloc);
1848 case OPT_icp_dumpafter:
1849 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", icp_dumpafter, Alloc);
1850 case OPT_icp_ignored_base_types:
1851 return llvm::opt::parseArgValue(A.getValue(), icp_ignored_base_types, Alloc);
1852 case OPT_icp_invoke_only:
1853 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", icp_invoke_only, Alloc);
1854 case OPT_icp_lto:
1855 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", icp_lto, Alloc);
1856 case OPT_icp_max_annotations:
1857 return llvm::opt::parseArgValue(A.getValue(), icp_max_annotations, Alloc);
1858 case OPT_icp_max_num_vtable_last_candidate:
1859 return llvm::opt::parseArgValue(A.getValue(), icp_max_num_vtable_last_candidate, Alloc);
1860 case OPT_icp_samplepgo:
1861 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", icp_samplepgo, Alloc);
1862 case OPT_icp_vtable_percentage_threshold:
1863 return llvm::opt::parseArgValue(A.getValue(), icp_vtable_percentage_threshold, Alloc);
1864 case OPT_instrprof_atomic_counter_update_all:
1865 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", instrprof_atomic_counter_update_all, Alloc);
1866 case OPT_iterative_counter_promotion:
1867 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", iterative_counter_promotion, Alloc);
1868 case OPT_lower_allow_check_percentile_cutoff_hot:
1869 return llvm::opt::parseArgValue(A.getValue(), lower_allow_check_percentile_cutoff_hot, Alloc);
1870 case OPT_lower_allow_check_random_rate:
1871 return llvm::opt::parseArgValue(A.getValue(), lower_allow_check_random_rate, Alloc);
1872 case OPT_max_counter_promotions_per_loop:
1873 return llvm::opt::parseArgValue(A.getValue(), max_counter_promotions_per_loop, Alloc);
1874 case OPT_max_counter_promotions:
1875 return llvm::opt::parseArgValue(A.getValue(), max_counter_promotions, Alloc);
1876 case OPT_memop_max_annotations:
1877 return llvm::opt::parseArgValue(A.getValue(), memop_max_annotations, Alloc);
1878 case OPT_memop_value_prof_max_opt_size:
1879 return llvm::opt::parseArgValue(A.getValue(), memop_value_prof_max_opt_size, Alloc);
1880 case OPT_memprof_annotate_static_data_prefix:
1881 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_annotate_static_data_prefix, Alloc);
1882 case OPT_memprof_attach_calleeguids:
1883 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_attach_calleeguids, Alloc);
1884 case OPT_memprof_debug_func:
1885 return llvm::opt::parseArgValue(A.getValue(), memprof_debug_func, Alloc);
1886 case OPT_memprof_debug_max:
1887 return llvm::opt::parseArgValue(A.getValue(), memprof_debug_max, Alloc);
1888 case OPT_memprof_debug_min:
1889 return llvm::opt::parseArgValue(A.getValue(), memprof_debug_min, Alloc);
1890 case OPT_memprof_debug:
1891 return llvm::opt::parseArgValue(A.getValue(), memprof_debug, Alloc);
1892 case OPT_memprof_guard_against_version_mismatch:
1893 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_guard_against_version_mismatch, Alloc);
1894 case OPT_memprof_histogram:
1895 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_histogram, Alloc);
1896 case OPT_memprof_instrument_atomics:
1897 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_instrument_atomics, Alloc);
1898 case OPT_memprof_instrument_reads:
1899 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_instrument_reads, Alloc);
1900 case OPT_memprof_instrument_stack:
1901 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_instrument_stack, Alloc);
1902 case OPT_memprof_instrument_writes:
1903 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_instrument_writes, Alloc);
1904 case OPT_memprof_mapping_granularity:
1905 return llvm::opt::parseArgValue(A.getValue(), memprof_mapping_granularity, Alloc);
1906 case OPT_memprof_mapping_scale:
1907 return llvm::opt::parseArgValue(A.getValue(), memprof_mapping_scale, Alloc);
1908 case OPT_memprof_match_hot_cold_new:
1909 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_match_hot_cold_new, Alloc);
1910 case OPT_memprof_matching_cold_threshold:
1911 return llvm::opt::parseArgValue(A.getValue(), memprof_matching_cold_threshold, Alloc);
1912 case OPT_memprof_memory_access_callback_prefix:
1913 return llvm::opt::parseArgValue(A.getValue(), memprof_memory_access_callback_prefix, Alloc);
1914 case OPT_memprof_print_function_guids:
1915 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_print_function_guids, Alloc);
1916 case OPT_memprof_print_match_info:
1917 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_print_match_info, Alloc);
1918 case OPT_memprof_print_matched_alloc_stack:
1919 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_print_matched_alloc_stack, Alloc);
1920 case OPT_memprof_runtime_default_options:
1921 return llvm::opt::parseArgValue(A.getValue(), memprof_runtime_default_options, Alloc);
1922 case OPT_memprof_salvage_stale_profile:
1923 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_salvage_stale_profile, Alloc);
1924 case OPT_memprof_use_callbacks:
1925 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", memprof_use_callbacks, Alloc);
1926 case OPT_msan_and_mask:
1927 return llvm::opt::parseArgValue(A.getValue(), msan_and_mask, Alloc);
1928 case OPT_msan_check_access_address:
1929 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_check_access_address, Alloc);
1930 case OPT_msan_check_constant_shadow:
1931 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_check_constant_shadow, Alloc);
1932 case OPT_msan_disable_checks:
1933 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_disable_checks, Alloc);
1934 case OPT_msan_disambiguate_warning_threshold:
1935 return llvm::opt::parseArgValue(A.getValue(), msan_disambiguate_warning_threshold, Alloc);
1936 case OPT_msan_dump_heuristic_instructions:
1937 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_dump_heuristic_instructions, Alloc);
1938 case OPT_msan_dump_strict_instructions:
1939 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_dump_strict_instructions, Alloc);
1940 case OPT_msan_eager_checks:
1941 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_eager_checks, Alloc);
1942 case OPT_msan_handle_asm_conservative:
1943 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_handle_asm_conservative, Alloc);
1944 case OPT_msan_handle_icmp_exact:
1945 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_handle_icmp_exact, Alloc);
1946 case OPT_msan_handle_icmp:
1947 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_handle_icmp, Alloc);
1948 case OPT_msan_handle_lifetime_intrinsics:
1949 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_handle_lifetime_intrinsics, Alloc);
1950 case OPT_msan_instrumentation_with_call_threshold:
1951 return llvm::opt::parseArgValue(A.getValue(), msan_instrumentation_with_call_threshold, Alloc);
1952 case OPT_msan_keep_going:
1953 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_keep_going, Alloc);
1954 case OPT_msan_kernel:
1955 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_kernel, Alloc);
1956 case OPT_msan_origin_base:
1957 return llvm::opt::parseArgValue(A.getValue(), msan_origin_base, Alloc);
1958 case OPT_msan_poison_stack_pattern:
1959 return llvm::opt::parseArgValue(A.getValue(), msan_poison_stack_pattern, Alloc);
1960 case OPT_msan_poison_stack_with_call:
1961 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_poison_stack_with_call, Alloc);
1962 case OPT_msan_poison_stack:
1963 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_poison_stack, Alloc);
1964 case OPT_msan_poison_undef_vectors:
1965 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_poison_undef_vectors, Alloc);
1966 case OPT_msan_poison_undef:
1967 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_poison_undef, Alloc);
1968 case OPT_msan_precise_disjoint_or:
1969 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_precise_disjoint_or, Alloc);
1970 case OPT_msan_print_stack_names:
1971 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_print_stack_names, Alloc);
1972 case OPT_msan_shadow_base:
1973 return llvm::opt::parseArgValue(A.getValue(), msan_shadow_base, Alloc);
1974 case OPT_msan_switch_precision:
1975 return llvm::opt::parseArgValue(A.getValue(), msan_switch_precision, Alloc);
1976 case OPT_msan_track_origins:
1977 return llvm::opt::parseArgValue(A.getValue(), msan_track_origins, Alloc);
1978 case OPT_msan_with_comdat:
1979 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", msan_with_comdat, Alloc);
1980 case OPT_msan_xor_mask:
1981 return llvm::opt::parseArgValue(A.getValue(), msan_xor_mask, Alloc);
1982 case OPT_no_pgo_warn_mismatch_comdat_weak:
1983 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", no_pgo_warn_mismatch_comdat_weak, Alloc);
1984 case OPT_nsan_check_loads:
1985 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", nsan_check_loads, Alloc);
1986 case OPT_nsan_check_ret:
1987 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", nsan_check_ret, Alloc);
1988 case OPT_nsan_check_stores:
1989 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", nsan_check_stores, Alloc);
1990 case OPT_nsan_instrument_fcmp:
1991 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", nsan_instrument_fcmp, Alloc);
1992 case OPT_nsan_propagate_non_ft_const_stores_as_ft:
1993 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", nsan_propagate_non_ft_const_stores_as_ft, Alloc);
1994 case OPT_nsan_shadow_type_mapping:
1995 return llvm::opt::parseArgValue(A.getValue(), nsan_shadow_type_mapping, Alloc);
1996 case OPT_nsan_truncate_fcmp_eq:
1997 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", nsan_truncate_fcmp_eq, Alloc);
1998 case OPT_offload_pgo_sampling:
1999 return llvm::opt::parseArgValue(A.getValue(), offload_pgo_sampling, Alloc);
2000 case OPT_pgo_block_coverage:
2001 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_block_coverage, Alloc);
2002 case OPT_pgo_cold_instrument_entry_threshold:
2003 return llvm::opt::parseArgValue(A.getValue(), pgo_cold_instrument_entry_threshold, Alloc);
2004 case OPT_pgo_critical_edge_threshold:
2005 return llvm::opt::parseArgValue(A.getValue(), pgo_critical_edge_threshold, Alloc);
2006 case OPT_pgo_emit_branch_prob:
2007 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_emit_branch_prob, Alloc);
2008 case OPT_pgo_fix_entry_count:
2009 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_fix_entry_count, Alloc);
2010 case OPT_pgo_function_entry_coverage:
2011 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_function_entry_coverage, Alloc);
2012 case OPT_pgo_function_size_threshold:
2013 return llvm::opt::parseArgValue(A.getValue(), pgo_function_size_threshold, Alloc);
2014 case OPT_pgo_instr_memop:
2015 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_instr_memop, Alloc);
2016 case OPT_pgo_instr_select:
2017 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_instr_select, Alloc);
2018 case OPT_pgo_instrument_cold_function_only:
2019 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_instrument_cold_function_only, Alloc);
2020 case OPT_pgo_instrument_entry:
2021 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_instrument_entry, Alloc);
2022 case OPT_pgo_instrument_loop_entries:
2023 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_instrument_loop_entries, Alloc);
2024 case OPT_pgo_memop_count_threshold:
2025 return llvm::opt::parseArgValue(A.getValue(), pgo_memop_count_threshold, Alloc);
2026 case OPT_pgo_memop_max_version:
2027 return llvm::opt::parseArgValue(A.getValue(), pgo_memop_max_version, Alloc);
2028 case OPT_pgo_memop_optimize_memcmp_bcmp:
2029 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_memop_optimize_memcmp_bcmp, Alloc);
2030 case OPT_pgo_memop_percent_threshold:
2031 return llvm::opt::parseArgValue(A.getValue(), pgo_memop_percent_threshold, Alloc);
2032 case OPT_pgo_memop_scale_count:
2033 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_memop_scale_count, Alloc);
2034 case OPT_pgo_temporal_instrumentation:
2035 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_temporal_instrumentation, Alloc);
2036 case OPT_pgo_test_profile_file:
2037 return llvm::opt::parseArgValue(A.getValue(), pgo_test_profile_file, Alloc);
2038 case OPT_pgo_test_profile_remapping_file:
2039 return llvm::opt::parseArgValue(A.getValue(), pgo_test_profile_remapping_file, Alloc);
2040 case OPT_pgo_trace_func_hash:
2041 return llvm::opt::parseArgValue(A.getValue(), pgo_trace_func_hash, Alloc);
2042 case OPT_pgo_treat_unknown_as_cold:
2043 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_treat_unknown_as_cold, Alloc);
2044 case OPT_pgo_verify_bfi_cutoff:
2045 return llvm::opt::parseArgValue(A.getValue(), pgo_verify_bfi_cutoff, Alloc);
2046 case OPT_pgo_verify_bfi_ratio:
2047 return llvm::opt::parseArgValue(A.getValue(), pgo_verify_bfi_ratio, Alloc);
2048 case OPT_pgo_verify_bfi:
2049 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_verify_bfi, Alloc);
2050 case OPT_pgo_verify_hot_bfi:
2051 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_verify_hot_bfi, Alloc);
2052 case OPT_pgo_view_block_coverage_graph:
2053 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_view_block_coverage_graph, Alloc);
2054 case OPT_pgo_view_raw_counts:
2055 return llvm::opt::parseArgValue(A.getValue(), pgo_view_raw_counts, Alloc, [](llvm::StringRef V, auto &X) {
2056 if (V == "none") {
2057 X = PGOVCT_None;
2058 return true;
2059 }
2060 if (V == "graph") {
2061 X = PGOVCT_Graph;
2062 return true;
2063 }
2064 if (V == "text") {
2065 X = PGOVCT_Text;
2066 return true;
2067 }
2068 return false;
2069 });
2070 case OPT_pgo_warn_missing_function:
2071 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", pgo_warn_missing_function, Alloc);
2072 case OPT_profile_context_root:
2073 return llvm::opt::parseArgValue(A.getValue(), profile_context_root, Alloc);
2074 case OPT_profile_correlate:
2075 return llvm::opt::parseArgValue(A.getValue(), profile_correlate, Alloc, [](llvm::StringRef V, auto &X) {
2076 if (V == "debug-info") {
2077 X = ProfCorrelatorKind::DebugInfo;
2078 return true;
2079 }
2080 if (V == "binary") {
2081 X = ProfCorrelatorKind::Binary;
2082 return true;
2083 }
2084 return false;
2085 });
2086 case OPT_runtime_counter_relocation:
2087 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", runtime_counter_relocation, Alloc);
2088 case OPT_sampled_instr_burst_duration:
2089 return llvm::opt::parseArgValue(A.getValue(), sampled_instr_burst_duration, Alloc);
2090 case OPT_sampled_instr_period:
2091 return llvm::opt::parseArgValue(A.getValue(), sampled_instr_period, Alloc);
2092 case OPT_sampled_instrumentation:
2093 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sampled_instrumentation, Alloc);
2094 case OPT_sanitizer_coverage_control_flow:
2095 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_control_flow, Alloc);
2096 case OPT_sanitizer_coverage_drop_ctors:
2097 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_drop_ctors, Alloc);
2098 case OPT_sanitizer_coverage_gated_trace_callbacks:
2099 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_gated_trace_callbacks, Alloc);
2100 case OPT_sanitizer_coverage_inline_8bit_counters:
2101 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_inline_8bit_counters, Alloc);
2102 case OPT_sanitizer_coverage_inline_bool_flag:
2103 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_inline_bool_flag, Alloc);
2104 case OPT_sanitizer_coverage_level:
2105 return llvm::opt::parseArgValue(A.getValue(), sanitizer_coverage_level, Alloc);
2106 case OPT_sanitizer_coverage_pc_table:
2107 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_pc_table, Alloc);
2108 case OPT_sanitizer_coverage_prune_blocks:
2109 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_prune_blocks, Alloc);
2110 case OPT_sanitizer_coverage_stack_depth_callback_min:
2111 return llvm::opt::parseArgValue(A.getValue(), sanitizer_coverage_stack_depth_callback_min, Alloc);
2112 case OPT_sanitizer_coverage_stack_depth:
2113 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_stack_depth, Alloc);
2114 case OPT_sanitizer_coverage_trace_compares:
2115 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_trace_compares, Alloc);
2116 case OPT_sanitizer_coverage_trace_divs:
2117 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_trace_divs, Alloc);
2118 case OPT_sanitizer_coverage_trace_geps:
2119 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_trace_geps, Alloc);
2120 case OPT_sanitizer_coverage_trace_loads:
2121 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_trace_loads, Alloc);
2122 case OPT_sanitizer_coverage_trace_pc_entry_exit:
2123 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_trace_pc_entry_exit, Alloc);
2124 case OPT_sanitizer_coverage_trace_pc_guard:
2125 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_trace_pc_guard, Alloc);
2126 case OPT_sanitizer_coverage_trace_pc:
2127 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_trace_pc, Alloc);
2128 case OPT_sanitizer_coverage_trace_stores:
2129 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_coverage_trace_stores, Alloc);
2130 case OPT_sanitizer_metadata_atomics:
2131 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_metadata_atomics, Alloc);
2132 case OPT_sanitizer_metadata_covered:
2133 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_metadata_covered, Alloc);
2134 case OPT_sanitizer_metadata_nosanitize_attr:
2135 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_metadata_nosanitize_attr, Alloc);
2136 case OPT_sanitizer_metadata_uar:
2137 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_metadata_uar, Alloc);
2138 case OPT_sanitizer_metadata_weak_callbacks:
2139 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sanitizer_metadata_weak_callbacks, Alloc);
2140 case OPT_skip_ret_exit_block:
2141 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", skip_ret_exit_block, Alloc);
2142 case OPT_speculative_counter_promotion_max_exiting:
2143 return llvm::opt::parseArgValue(A.getValue(), speculative_counter_promotion_max_exiting, Alloc);
2144 case OPT_speculative_counter_promotion_to_loop:
2145 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", speculative_counter_promotion_to_loop, Alloc);
2146 case OPT_tsan_compound_read_before_write:
2147 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tsan_compound_read_before_write, Alloc);
2148 case OPT_tsan_distinguish_volatile:
2149 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tsan_distinguish_volatile, Alloc);
2150 case OPT_tsan_handle_cxx_exceptions:
2151 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tsan_handle_cxx_exceptions, Alloc);
2152 case OPT_tsan_instrument_atomics:
2153 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tsan_instrument_atomics, Alloc);
2154 case OPT_tsan_instrument_func_entry_exit:
2155 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tsan_instrument_func_entry_exit, Alloc);
2156 case OPT_tsan_instrument_memintrinsics:
2157 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tsan_instrument_memintrinsics, Alloc);
2158 case OPT_tsan_instrument_memory_accesses:
2159 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tsan_instrument_memory_accesses, Alloc);
2160 case OPT_tsan_instrument_read_before_write:
2161 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tsan_instrument_read_before_write, Alloc);
2162 case OPT_tsan_omit_by_pointer_capturing:
2163 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tsan_omit_by_pointer_capturing, Alloc);
2164 case OPT_tysan_outline_instrumentation:
2165 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tysan_outline_instrumentation, Alloc);
2166 case OPT_tysan_verify_outlined_instrumentation:
2167 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tysan_verify_outlined_instrumentation, Alloc);
2168 case OPT_tysan_writes_always_set_type:
2169 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tysan_writes_always_set_type, Alloc);
2170 case OPT_verify_atomic_counter_promoted:
2171 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", verify_atomic_counter_promoted, Alloc);
2172 case OPT_vp_counters_per_site:
2173 return llvm::opt::parseArgValue(A.getValue(), vp_counters_per_site, Alloc);
2174 case OPT_vp_static_alloc:
2175 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", vp_static_alloc, Alloc);
2176 }
2177 llvm_unreachable("option without a member");
2178}
2179#endif // OPTIONS_STRUCT_DEFS
2180/////////
2181// ValuesCode
2182
2183#ifdef OPTTABLE_VALUES_CODE
2184static llvm::StringRef getOptionValuesCode(unsigned ID) {
2185 switch (ID) {
2186 }
2187 return {};
2188}
2189#undef OPTTABLE_VALUES_CODE
2190#endif // OPTTABLE_VALUES_CODE
2191/////////
2192// Groups
2193
2194#ifdef OPTION
2195
2196//////////
2197// Options
2198
2199OPTION(0, 6 /* <input> */, INPUT, Input, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0)
2200OPTION(0, 14 /* <unknown> */, UNKNOWN, Unknown, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0)
2201OPTION(1, 24 /* -alloc-token-cover-replaceable-new */, anonymous_51, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 59, 0, 0, 0, 0)
2202OPTION(1, 90 /* -alloc-token-extended */, anonymous_52, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 112, 0, 0, 0, 0)
2203OPTION(1, 159 /* -alloc-token-fallback */, anonymous_53, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 181, 0, 0, 0, 0)
2204OPTION(1, 239 /* -alloc-token-fast-abi */, anonymous_54, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 261, 0, 0, 0, 0)
2205OPTION(1, 306 /* -alloc-token-max */, anonymous_55, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 323, 0, 0, 0, 0)
2206OPTION(1, 370 /* -alloc-token-prefix */, anonymous_56, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 390, 0, 0, 0, 0)
2207OPTION(1, 421 /* -asan-always-slow-path */, anonymous_0, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 444, 0, 0, 0, 0)
2208OPTION(1, 496 /* -asan-constructor-kind */, anonymous_1, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 519, 0, 550, 564, 0)
2209OPTION(1, 576 /* -asan-debug-func */, anonymous_2, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 593, 0, 0, 0, 0)
2210OPTION(1, 639 /* -asan-debug-max */, anonymous_3, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 655, 0, 0, 0, 0)
2211OPTION(1, 762 /* -asan-debug-min */, anonymous_4, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 778, 0, 0, 0, 0)
2212OPTION(1, 885 /* -asan-debug-stack */, anonymous_5, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 903, 0, 0, 0, 0)
2213OPTION(1, 975 /* -asan-destructor-kind */, anonymous_6, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 997, 0, 550, 564, 0)
2214OPTION(1, 1093 /* -asan-detect-invalid-pointer-cmp */, anonymous_7, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1126, 0, 0, 0, 0)
2215OPTION(1, 1172 /* -asan-detect-invalid-pointer-pair */, anonymous_8, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1206, 0, 0, 0, 0)
2216OPTION(1, 1255 /* -asan-detect-invalid-pointer-sub */, anonymous_9, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1288, 0, 0, 0, 0)
2217OPTION(1, 1334 /* -asan-force-dynamic-shadow */, anonymous_10, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1361, 0, 0, 0, 0)
2218OPTION(1, 1421 /* -asan-force-experiment */, anonymous_11, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1444, 0, 0, 0, 0)
2219OPTION(1, 1488 /* -asan-globals-live-support */, anonymous_13, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1515, 0, 0, 0, 0)
2220OPTION(1, 1577 /* -asan-globals */, anonymous_12, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1591, 0, 0, 0, 0)
2221OPTION(1, 1613 /* -asan-guard-against-version-mismatch */, anonymous_14, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1650, 0, 0, 0, 0)
2222OPTION(1, 1698 /* -asan-initialization-order */, anonymous_15, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1725, 0, 0, 0, 0)
2223OPTION(1, 1754 /* -asan-instrument-address-spaces */, anonymous_16, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1786, 0, 0, 0, 0)
2224OPTION(1, 1844 /* -asan-instrument-assume-dereferenceable */, anonymous_17, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1884, 0, 0, 0, 0)
2225OPTION(1, 1924 /* -asan-instrument-atomics */, anonymous_18, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1949, 0, 0, 0, 0)
2226OPTION(1, 1995 /* -asan-instrument-byval */, anonymous_19, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2018, 0, 0, 0, 0)
2227OPTION(1, 2050 /* -asan-instrument-dynamic-allocas */, anonymous_20, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2083, 0, 0, 0, 0)
2228OPTION(1, 2110 /* -asan-instrument-reads */, anonymous_21, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2133, 0, 0, 0, 0)
2229OPTION(1, 2162 /* -asan-instrument-writes */, anonymous_22, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2186, 0, 0, 0, 0)
2230OPTION(1, 2216 /* -asan-instrumentation-with-call-threshold */, anonymous_23, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2258, 0, 0, 0, 0)
2231OPTION(1, 2414 /* -asan-kernel-mem-intrinsic-prefix */, anonymous_25, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2448, 0, 0, 0, 0)
2232OPTION(1, 2495 /* -asan-kernel */, anonymous_24, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2508, 0, 0, 0, 0)
2233OPTION(1, 2554 /* -asan-mapping-offset */, anonymous_26, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2575, 0, 0, 0, 0)
2234OPTION(1, 2620 /* -asan-mapping-scale */, anonymous_27, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2640, 0, 0, 0, 0)
2235OPTION(1, 2669 /* -asan-max-inline-poisoning-size */, anonymous_28, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2701, 0, 0, 0, 0)
2236OPTION(1, 2766 /* -asan-max-ins-per-bb */, anonymous_29, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2787, 0, 0, 0, 0)
2237OPTION(1, 2848 /* -asan-memory-access-callback-prefix */, anonymous_30, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2884, 0, 0, 0, 0)
2238OPTION(1, 2919 /* -asan-opt-globals */, anonymous_32, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2937, 0, 0, 0, 0)
2239OPTION(1, 2969 /* -asan-opt-same-temp */, anonymous_33, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2989, 0, 0, 0, 0)
2240OPTION(1, 3024 /* -asan-opt-stack */, anonymous_34, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3040, 0, 0, 0, 0)
2241OPTION(1, 3080 /* -asan-optimize-callbacks */, anonymous_35, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3105, 0, 0, 0, 0)
2242OPTION(1, 3166 /* -asan-opt */, anonymous_31, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3176, 0, 0, 0, 0)
2243OPTION(1, 3243 /* -asan-realign-stack */, anonymous_36, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3263, 0, 0, 0, 0)
2244OPTION(1, 3318 /* -asan-recover */, anonymous_37, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3332, 0, 0, 0, 0)
2245OPTION(1, 3376 /* -asan-redzone-byval-args */, anonymous_38, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3401, 0, 0, 0, 0)
2246OPTION(1, 3459 /* -asan-shadow-addr-space */, anonymous_39, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3483, 0, 0, 0, 0)
2247OPTION(1, 3528 /* -asan-skip-promotable-allocas */, anonymous_40, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3558, 0, 0, 0, 0)
2248OPTION(1, 3595 /* -asan-stack-dynamic-alloca */, anonymous_42, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3622, 0, 0, 0, 0)
2249OPTION(1, 3670 /* -asan-stack */, anonymous_41, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3682, 0, 0, 0, 0)
2250OPTION(1, 3702 /* -asan-use-after-return */, anonymous_43, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3725, 0, 3779, 3802, 0)
2251OPTION(1, 3823 /* -asan-use-after-scope */, anonymous_44, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3845, 0, 0, 0, 0)
2252OPTION(1, 3873 /* -asan-use-odr-indicator */, anonymous_45, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3897, 0, 0, 0, 0)
2253OPTION(1, 3941 /* -asan-use-private-alias */, anonymous_46, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3965, 0, 0, 0, 0)
2254OPTION(1, 4006 /* -asan-use-stack-safety */, anonymous_47, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4029, 0, 0, 0, 0)
2255OPTION(1, 4063 /* -asan-with-comdat */, anonymous_48, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4081, 0, 0, 0, 0)
2256OPTION(1, 4124 /* -asan-with-ifunc-suppress-remat */, anonymous_50, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4156, 0, 0, 0, 0)
2257OPTION(1, 4254 /* -asan-with-ifunc */, anonymous_49, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4271, 0, 0, 0, 0)
2258OPTION(1, 4348 /* -atomic-counter-update-promoted */, anonymous_128, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4380, 0, 0, 0, 0)
2259OPTION(1, 4449 /* -atomic-first-counter */, anonymous_129, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4471, 0, 0, 0, 0)
2260OPTION(1, 4552 /* -bounds-checking-single-trap */, anonymous_57, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4581, 0, 0, 0, 0)
2261OPTION(1, 4613 /* -check-functions-filter */, anonymous_202, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4637, 0, 0, 0, 0)
2262OPTION(1, 4728 /* -chr-bias-threshold */, anonymous_58, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4748, 0, 0, 0, 0)
2263OPTION(1, 4810 /* -chr-dup-threshold */, anonymous_59, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4829, 0, 0, 0, 0)
2264OPTION(1, 4876 /* -chr-function-list */, anonymous_60, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4895, 0, 0, 0, 0)
2265OPTION(1, 4958 /* -chr-merge-threshold */, anonymous_61, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4979, 0, 0, 0, 0)
2266OPTION(1, 5042 /* -chr-module-list */, anonymous_62, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5059, 0, 0, 0, 0)
2267OPTION(1, 5120 /* -conditional-counter-update */, anonymous_130, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5148, 0, 0, 0, 0)
2268OPTION(1, 5209 /* -ctx-prof-skip-callsite-instr */, anonymous_211, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5239, 0, 0, 0, 0)
2269OPTION(1, 5315 /* -default-gcov-version */, anonymous_80, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5337, 0, 0, 0, 0)
2270OPTION(1, 5339 /* -dfsan-abilist */, anonymous_65, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5354, 0, 0, 0, 0)
2271OPTION(1, 5417 /* -dfsan-add-global-name-suffix */, anonymous_66, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5447, 0, 0, 0, 0)
2272OPTION(1, 5492 /* -dfsan-combine-offset-labels-on-gep */, anonymous_67, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5528, 0, 0, 0, 0)
2273OPTION(1, 5620 /* -dfsan-combine-pointer-labels-on-load */, anonymous_68, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5658, 0, 0, 0, 0)
2274OPTION(1, 5743 /* -dfsan-combine-pointer-labels-on-store */, anonymous_69, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5782, 0, 0, 0, 0)
2275OPTION(1, 5865 /* -dfsan-combine-taint-lookup-table */, anonymous_70, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5899, 0, 0, 0, 0)
2276OPTION(1, 6136 /* -dfsan-conditional-callbacks */, anonymous_71, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6165, 0, 0, 0, 0)
2277OPTION(1, 6216 /* -dfsan-debug-nonzero-labels */, anonymous_72, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6244, 0, 0, 0, 0)
2278OPTION(1, 6344 /* -dfsan-event-callbacks */, anonymous_73, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6367, 0, 0, 0, 0)
2279OPTION(1, 6427 /* -dfsan-ignore-personality-routine */, anonymous_74, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6461, 0, 0, 0, 0)
2280OPTION(1, 6561 /* -dfsan-instrument-with-call-threshold */, anonymous_75, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6599, 0, 0, 0, 0)
2281OPTION(1, 6753 /* -dfsan-preserve-alignment */, anonymous_76, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6779, 0, 0, 0, 0)
2282OPTION(1, 6831 /* -dfsan-reaches-function-callbacks */, anonymous_77, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6865, 0, 0, 0, 0)
2283OPTION(1, 6928 /* -dfsan-track-origins */, anonymous_78, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6949, 0, 0, 0, 0)
2284OPTION(1, 6973 /* -dfsan-track-select-control-flow */, anonymous_79, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7006, 0, 0, 0, 0)
2285OPTION(1, 7079 /* -disable-chr */, anonymous_63, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7092, 0, 0, 0, 0)
2286OPTION(1, 7122 /* -disable-icp */, anonymous_113, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7135, 0, 0, 0, 0)
2287OPTION(1, 7167 /* -disable-memop-opt */, anonymous_241, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7186, 0, 0, 0, 0)
2288OPTION(1, 7203 /* -disable-vp */, anonymous_212, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7215, 0, 0, 0, 0)
2289OPTION(1, 7239 /* -do-comdat-renaming */, anonymous_213, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7259, 0, 0, 0, 0)
2290OPTION(1, 7365 /* -do-counter-promotion */, anonymous_131, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7387, 0, 0, 0, 0)
2291OPTION(1, 7417 /* -force-chr */, anonymous_64, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7428, 0, 0, 0, 0)
2292OPTION(1, 7456 /* -gcov-atomic-counter */, anonymous_81, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7477, 0, 0, 0, 0)
2293OPTION(1, 7505 /* -hash-based-counter-split */, anonymous_132, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7531, 0, 0, 0, 0)
2294OPTION(1, 7594 /* -hot-func-cutoff-for-icp */, anonymous_114, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7619, 0, 0, 0, 0)
2295OPTION(1, 7936 /* -hwasan-all-globals */, anonymous_82, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7956, 0, 0, 0, 0)
2296OPTION(1, 8238 /* -hwasan-experimental-use-page-aliases */, anonymous_83, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8276, 0, 0, 0, 0)
2297OPTION(1, 8304 /* -hwasan-generate-tags-with-calls */, anonymous_84, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8337, 0, 0, 0, 0)
2298OPTION(1, 8382 /* -hwasan-globals */, anonymous_85, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8398, 0, 0, 0, 0)
2299OPTION(1, 8417 /* -hwasan-inline-all-checks */, anonymous_86, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8443, 0, 0, 0, 0)
2300OPTION(1, 8461 /* -hwasan-inline-fast-path-checks */, anonymous_87, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8443, 0, 0, 0, 0)
2301OPTION(1, 8493 /* -hwasan-instrument-atomics */, anonymous_88, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1949, 0, 0, 0, 0)
2302OPTION(1, 8520 /* -hwasan-instrument-byval */, anonymous_89, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8545, 0, 0, 0, 0)
2303OPTION(1, 8572 /* -hwasan-instrument-landing-pads */, anonymous_90, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8604, 0, 0, 0, 0)
2304OPTION(1, 8628 /* -hwasan-instrument-mem-intrinsics */, anonymous_91, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8662, 0, 0, 0, 0)
2305OPTION(1, 8691 /* -hwasan-instrument-personality-functions */, anonymous_92, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8732, 0, 0, 0, 0)
2306OPTION(1, 8765 /* -hwasan-instrument-reads */, anonymous_93, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2133, 0, 0, 0, 0)
2307OPTION(1, 8790 /* -hwasan-instrument-stack */, anonymous_94, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8815, 0, 0, 0, 0)
2308OPTION(1, 8842 /* -hwasan-instrument-with-calls */, anonymous_95, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8872, 0, 0, 0, 0)
2309OPTION(1, 8915 /* -hwasan-instrument-writes */, anonymous_96, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2186, 0, 0, 0, 0)
2310OPTION(1, 8941 /* -hwasan-kernel-mem-intrinsic-prefix */, anonymous_98, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2448, 0, 0, 0, 0)
2311OPTION(1, 8977 /* -hwasan-kernel */, anonymous_97, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8992, 0, 0, 0, 0)
2312OPTION(1, 9040 /* -hwasan-match-all-tag */, anonymous_99, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9062, 0, 0, 0, 0)
2313OPTION(1, 9115 /* -hwasan-max-lifetimes-for-alloca */, anonymous_100, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9148, 0, 0, 0, 0)
2314OPTION(1, 9201 /* -hwasan-memory-access-callback-prefix */, anonymous_101, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2884, 0, 0, 0, 0)
2315OPTION(1, 9239 /* -hwasan-percentile-cutoff-hot */, anonymous_102, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9269, 0, 0, 0, 0)
2316OPTION(1, 9291 /* -hwasan-random-rate */, anonymous_103, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9311, 0, 0, 0, 0)
2317OPTION(1, 9500 /* -hwasan-record-stack-history */, anonymous_104, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9529, 0, 9603, 9624, 0)
2318OPTION(1, 9643 /* -hwasan-recover */, anonymous_105, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3332, 0, 0, 0, 0)
2319OPTION(1, 9659 /* -hwasan-static-linking */, anonymous_106, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9682, 0, 0, 0, 0)
2320OPTION(1, 9925 /* -hwasan-strict-use-after-scope */, anonymous_107, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9956, 0, 0, 0, 0)
2321OPTION(1, 10010 /* -hwasan-tag-bits */, anonymous_108, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10027, 0, 0, 0, 0)
2322OPTION(1, 10075 /* -hwasan-use-after-scope */, anonymous_109, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10099, 0, 0, 0, 0)
2323OPTION(1, 10138 /* -hwasan-use-short-granules */, anonymous_110, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10165, 0, 0, 0, 0)
2324OPTION(1, 10215 /* -hwasan-use-stack-safety */, anonymous_111, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4029, 0, 0, 0, 0)
2325OPTION(1, 10240 /* -hwasan-with-frame-record */, anonymous_112, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10266, 0, 0, 0, 0)
2326OPTION(1, 10304 /* -icp-allow-candidate-skip */, anonymous_115, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10330, 0, 0, 0, 0)
2327OPTION(1, 10413 /* -icp-allow-decls */, anonymous_116, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10430, 0, 0, 0, 0)
2328OPTION(1, 10502 /* -icp-allow-hot-only */, anonymous_117, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10522, 0, 0, 0, 0)
2329OPTION(1, 10628 /* -icp-call-only */, anonymous_118, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10643, 0, 0, 0, 0)
2330OPTION(1, 10698 /* -icp-csskip */, anonymous_119, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10710, 0, 0, 0, 0)
2331OPTION(1, 10763 /* -icp-cutoff */, anonymous_120, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10775, 0, 0, 0, 0)
2332OPTION(1, 10821 /* -icp-dumpafter */, anonymous_121, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10836, 0, 0, 0, 0)
2333OPTION(1, 10873 /* -icp-ignored-base-types */, anonymous_122, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10897, 0, 0, 0, 0)
2334OPTION(1, 11220 /* -icp-invoke-only */, anonymous_123, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11237, 0, 0, 0, 0)
2335OPTION(1, 11293 /* -icp-lto */, anonymous_124, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11302, 0, 0, 0, 0)
2336OPTION(1, 11342 /* -icp-max-annotations */, anonymous_214, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11363, 0, 0, 0, 0)
2337OPTION(1, 11425 /* -icp-max-num-vtable-last-candidate */, anonymous_125, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11460, 0, 0, 0, 0)
2338OPTION(1, 11512 /* -icp-samplepgo */, anonymous_126, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11527, 0, 0, 0, 0)
2339OPTION(1, 11573 /* -icp-vtable-percentage-threshold */, anonymous_127, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11606, 0, 0, 0, 0)
2340OPTION(1, 11690 /* -instrprof-atomic-counter-update-all */, anonymous_133, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11727, 0, 0, 0, 0)
2341OPTION(1, 11786 /* -iterative-counter-promotion */, anonymous_134, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11815, 0, 0, 0, 0)
2342OPTION(1, 11866 /* -lower-allow-check-percentile-cutoff-hot */, anonymous_149, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9269, 0, 0, 0, 0)
2343OPTION(1, 11907 /* -lower-allow-check-random-rate */, anonymous_150, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11938, 0, 0, 0, 0)
2344OPTION(1, 12018 /* -max-counter-promotions-per-loop */, anonymous_136, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12051, 0, 0, 0, 0)
2345OPTION(1, 12137 /* -max-counter-promotions */, anonymous_135, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12161, 0, 0, 0, 0)
2346OPTION(1, 12202 /* -memop-max-annotations */, anonymous_215, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12225, 0, 0, 0, 0)
2347OPTION(1, 12293 /* -memop-value-prof-max-opt-size */, anonymous_242, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12324, 0, 0, 0, 0)
2348OPTION(1, 12362 /* -memprof-annotate-static-data-prefix */, anonymous_194, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12399, 0, 0, 0, 0)
2349OPTION(1, 12448 /* -memprof-attach-calleeguids */, anonymous_195, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12476, 0, 0, 0, 0)
2350OPTION(1, 12540 /* -memprof-debug-func */, anonymous_180, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12560, 0, 0, 0, 0)
2351OPTION(1, 12571 /* -memprof-debug-max */, anonymous_181, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12590, 0, 0, 0, 0)
2352OPTION(1, 12605 /* -memprof-debug-min */, anonymous_182, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12624, 0, 0, 0, 0)
2353OPTION(1, 12639 /* -memprof-debug */, anonymous_179, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12654, 0, 0, 0, 0)
2354OPTION(1, 12660 /* -memprof-guard-against-version-mismatch */, anonymous_183, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1650, 0, 0, 0, 0)
2355OPTION(1, 12700 /* -memprof-histogram */, anonymous_184, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12719, 0, 0, 0, 0)
2356OPTION(1, 12751 /* -memprof-instrument-atomics */, anonymous_185, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1949, 0, 0, 0, 0)
2357OPTION(1, 12779 /* -memprof-instrument-reads */, anonymous_186, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2133, 0, 0, 0, 0)
2358OPTION(1, 12805 /* -memprof-instrument-stack */, anonymous_187, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12831, 0, 0, 0, 0)
2359OPTION(1, 12865 /* -memprof-instrument-writes */, anonymous_188, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2186, 0, 0, 0, 0)
2360OPTION(1, 12892 /* -memprof-mapping-granularity */, anonymous_189, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12921, 0, 0, 0, 0)
2361OPTION(1, 12959 /* -memprof-mapping-scale */, anonymous_190, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12982, 0, 0, 0, 0)
2362OPTION(1, 13014 /* -memprof-match-hot-cold-new */, anonymous_196, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13042, 0, 0, 0, 0)
2363OPTION(1, 13110 /* -memprof-matching-cold-threshold */, anonymous_197, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13143, 0, 0, 0, 0)
2364OPTION(1, 13201 /* -memprof-memory-access-callback-prefix */, anonymous_191, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2884, 0, 0, 0, 0)
2365OPTION(1, 13240 /* -memprof-print-function-guids */, anonymous_198, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13270, 0, 0, 0, 0)
2366OPTION(1, 13313 /* -memprof-print-match-info */, anonymous_199, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13339, 0, 0, 0, 0)
2367OPTION(1, 13414 /* -memprof-print-matched-alloc-stack */, anonymous_200, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13449, 0, 0, 0, 0)
2368OPTION(1, 13529 /* -memprof-runtime-default-options */, anonymous_192, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13562, 0, 0, 0, 0)
2369OPTION(1, 13590 /* -memprof-salvage-stale-profile */, anonymous_201, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13621, 0, 0, 0, 0)
2370OPTION(1, 13651 /* -memprof-use-callbacks */, anonymous_193, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13674, 0, 0, 0, 0)
2371OPTION(1, 13732 /* -msan-and-mask */, anonymous_151, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13747, 0, 0, 0, 0)
2372OPTION(1, 13774 /* -msan-check-access-address */, anonymous_152, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13801, 0, 0, 0, 0)
2373OPTION(1, 13861 /* -msan-check-constant-shadow */, anonymous_153, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13889, 0, 0, 0, 0)
2374OPTION(1, 13930 /* -msan-disable-checks */, anonymous_154, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13951, 0, 0, 0, 0)
2375OPTION(1, 13987 /* -msan-disambiguate-warning-threshold */, anonymous_155, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14024, 0, 0, 0, 0)
2376OPTION(1, 14104 /* -msan-dump-heuristic-instructions */, anonymous_156, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14138, 0, 0, 0, 0)
2377OPTION(1, 14313 /* -msan-dump-strict-instructions */, anonymous_157, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14344, 0, 0, 0, 0)
2378OPTION(1, 14592 /* -msan-eager-checks */, anonymous_158, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14611, 0, 0, 0, 0)
2379OPTION(1, 14673 /* -msan-handle-asm-conservative */, anonymous_159, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14703, 0, 0, 0, 0)
2380OPTION(1, 14744 /* -msan-handle-icmp-exact */, anonymous_161, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14768, 0, 0, 0, 0)
2381OPTION(1, 14810 /* -msan-handle-icmp */, anonymous_160, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14828, 0, 0, 0, 0)
2382OPTION(1, 14871 /* -msan-handle-lifetime-intrinsics */, anonymous_162, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14904, 0, 0, 0, 0)
2383OPTION(1, 15000 /* -msan-instrumentation-with-call-threshold */, anonymous_163, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15042, 0, 0, 0, 0)
2384OPTION(1, 15207 /* -msan-keep-going */, anonymous_164, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15224, 0, 0, 0, 0)
2385OPTION(1, 15257 /* -msan-kernel */, anonymous_165, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15270, 0, 0, 0, 0)
2386OPTION(1, 15315 /* -msan-origin-base */, anonymous_166, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15333, 0, 0, 0, 0)
2387OPTION(1, 15363 /* -msan-poison-stack-pattern */, anonymous_168, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15390, 0, 0, 0, 0)
2388OPTION(1, 15450 /* -msan-poison-stack-with-call */, anonymous_169, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15479, 0, 0, 0, 0)
2389OPTION(1, 15528 /* -msan-poison-stack */, anonymous_167, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15547, 0, 0, 0, 0)
2390OPTION(1, 15584 /* -msan-poison-undef-vectors */, anonymous_171, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15611, 0, 0, 0, 0)
2391OPTION(1, 15866 /* -msan-poison-undef */, anonymous_170, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15885, 0, 0, 0, 0)
2392OPTION(1, 16020 /* -msan-precise-disjoint-or */, anonymous_172, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16046, 0, 0, 0, 0)
2393OPTION(1, 16157 /* -msan-print-stack-names */, anonymous_173, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16181, 0, 0, 0, 0)
2394OPTION(1, 16216 /* -msan-shadow-base */, anonymous_174, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16234, 0, 0, 0, 0)
2395OPTION(1, 16264 /* -msan-switch-precision */, anonymous_175, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16287, 0, 0, 0, 0)
2396OPTION(1, 16572 /* -msan-track-origins */, anonymous_176, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16592, 0, 0, 0, 0)
2397OPTION(1, 16644 /* -msan-with-comdat */, anonymous_177, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16662, 0, 0, 0, 0)
2398OPTION(1, 16705 /* -msan-xor-mask */, anonymous_178, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16720, 0, 0, 0, 0)
2399OPTION(1, 16747 /* -no-pgo-warn-mismatch-comdat-weak */, anonymous_216, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16781, 0, 0, 0, 0)
2400OPTION(1, 16873 /* -nsan-check-loads */, anonymous_203, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16891, 0, 0, 0, 0)
2401OPTION(1, 16917 /* -nsan-check-ret */, anonymous_204, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16933, 0, 0, 0, 0)
2402OPTION(1, 16968 /* -nsan-check-stores */, anonymous_205, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16987, 0, 0, 0, 0)
2403OPTION(1, 17015 /* -nsan-instrument-fcmp */, anonymous_206, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17037, 0, 0, 0, 0)
2404OPTION(1, 17075 /* -nsan-propagate-non-ft-const-stores-as-ft */, anonymous_207, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17117, 0, 0, 0, 0)
2405OPTION(1, 17212 /* -nsan-shadow-type-mapping */, anonymous_208, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17238, 0, 0, 0, 0)
2406OPTION(1, 17486 /* -nsan-truncate-fcmp-eq */, anonymous_209, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17509, 0, 0, 0, 0)
2407OPTION(1, 17936 /* -offload-pgo-sampling */, anonymous_137, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17958, 0, 0, 0, 0)
2408OPTION(1, 18170 /* -pgo-block-coverage */, anonymous_217, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18190, 0, 0, 0, 0)
2409OPTION(1, 18253 /* -pgo-cold-instrument-entry-threshold */, anonymous_218, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18290, 0, 0, 0, 0)
2410OPTION(1, 18397 /* -pgo-critical-edge-threshold */, anonymous_219, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18426, 0, 0, 0, 0)
2411OPTION(1, 18517 /* -pgo-emit-branch-prob */, anonymous_220, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18539, 0, 0, 0, 0)
2412OPTION(1, 18679 /* -pgo-fix-entry-count */, anonymous_221, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18700, 0, 0, 0, 0)
2413OPTION(1, 18740 /* -pgo-function-entry-coverage */, anonymous_222, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18769, 0, 0, 0, 0)
2414OPTION(1, 18835 /* -pgo-function-size-threshold */, anonymous_223, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18864, 0, 0, 0, 0)
2415OPTION(1, 18920 /* -pgo-instr-memop */, anonymous_224, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18937, 0, 0, 0, 0)
2416OPTION(1, 19000 /* -pgo-instr-select */, anonymous_225, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19018, 0, 0, 0, 0)
2417OPTION(1, 19084 /* -pgo-instrument-cold-function-only */, anonymous_226, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19119, 0, 0, 0, 0)
2418OPTION(1, 19161 /* -pgo-instrument-entry */, anonymous_227, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19183, 0, 0, 0, 0)
2419OPTION(1, 19229 /* -pgo-instrument-loop-entries */, anonymous_228, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19258, 0, 0, 0, 0)
2420OPTION(1, 19291 /* -pgo-memop-count-threshold */, anonymous_243, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19318, 0, 0, 0, 0)
2421OPTION(1, 19371 /* -pgo-memop-max-version */, anonymous_244, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19394, 0, 0, 0, 0)
2422OPTION(1, 19452 /* -pgo-memop-optimize-memcmp-bcmp */, anonymous_245, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19484, 0, 0, 0, 0)
2423OPTION(1, 19522 /* -pgo-memop-percent-threshold */, anonymous_246, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19551, 0, 0, 0, 0)
2424OPTION(1, 19620 /* -pgo-memop-scale-count */, anonymous_247, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19643, 0, 0, 0, 0)
2425OPTION(1, 19706 /* -pgo-temporal-instrumentation */, anonymous_229, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19736, 0, 0, 0, 0)
2426OPTION(1, 19787 /* -pgo-test-profile-file */, anonymous_230, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19810, 0, 0, 0, 0)
2427OPTION(1, 19881 /* -pgo-test-profile-remapping-file */, anonymous_231, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19914, 0, 0, 0, 0)
2428OPTION(1, 19990 /* -pgo-trace-func-hash */, anonymous_232, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20011, 0, 0, 0, 0)
2429OPTION(1, 20057 /* -pgo-treat-unknown-as-cold */, anonymous_233, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20084, 0, 0, 0, 0)
2430OPTION(1, 20174 /* -pgo-verify-bfi-cutoff */, anonymous_235, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20197, 0, 0, 0, 0)
2431OPTION(1, 20286 /* -pgo-verify-bfi-ratio */, anonymous_236, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20308, 0, 0, 0, 0)
2432OPTION(1, 20449 /* -pgo-verify-bfi */, anonymous_234, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20465, 0, 0, 0, 0)
2433OPTION(1, 20622 /* -pgo-verify-hot-bfi */, anonymous_237, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20642, 0, 0, 0, 0)
2434OPTION(1, 20855 /* -pgo-view-block-coverage-graph */, anonymous_238, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20886, 0, 0, 0, 0)
2435OPTION(1, 20954 /* -pgo-view-raw-counts */, anonymous_239, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20975, 0, 21179, 21197, 0)
2436OPTION(1, 21213 /* -pgo-warn-missing-function */, anonymous_240, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 21240, 0, 0, 0, 0)
2437OPTION(1, 21321 /* -profile-context-root */, anonymous_210, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 21343, 0, 0, 0, 0)
2438OPTION(1, 21504 /* -profile-correlate */, anonymous_138, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 21523, 0, 21575, 21595, 0)
2439OPTION(1, 21613 /* -runtime-counter-relocation */, anonymous_139, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 21641, 0, 0, 0, 0)
2440OPTION(1, 21679 /* -sampled-instr-burst-duration */, anonymous_140, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 21709, 0, 0, 0, 0)
2441OPTION(1, 22039 /* -sampled-instr-period */, anonymous_141, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22061, 0, 0, 0, 0)
2442OPTION(1, 22488 /* -sampled-instrumentation */, anonymous_142, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22513, 0, 0, 0, 0)
2443OPTION(1, 22545 /* -sanitizer-coverage-control-flow */, anonymous_253, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22578, 0, 0, 0, 0)
2444OPTION(1, 22617 /* -sanitizer-coverage-drop-ctors */, anonymous_254, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22648, 0, 0, 0, 0)
2445OPTION(1, 22693 /* -sanitizer-coverage-gated-trace-callbacks */, anonymous_255, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22735, 0, 0, 0, 0)
2446OPTION(1, 22860 /* -sanitizer-coverage-inline-8bit-counters */, anonymous_256, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22901, 0, 0, 0, 0)
2447OPTION(1, 22941 /* -sanitizer-coverage-inline-bool-flag */, anonymous_257, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22978, 0, 0, 0, 0)
2448OPTION(1, 23013 /* -sanitizer-coverage-level */, anonymous_258, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23039, 0, 0, 0, 0)
2449OPTION(1, 23132 /* -sanitizer-coverage-pc-table */, anonymous_259, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23161, 0, 0, 0, 0)
2450OPTION(1, 23186 /* -sanitizer-coverage-prune-blocks */, anonymous_260, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23219, 0, 0, 0, 0)
2451OPTION(1, 23260 /* -sanitizer-coverage-stack-depth-callback-min */, anonymous_262, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23305, 0, 0, 0, 0)
2452OPTION(1, 23395 /* -sanitizer-coverage-stack-depth */, anonymous_261, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23427, 0, 0, 0, 0)
2453OPTION(1, 23451 /* -sanitizer-coverage-trace-compares */, anonymous_263, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23486, 0, 0, 0, 0)
2454OPTION(1, 23526 /* -sanitizer-coverage-trace-divs */, anonymous_264, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23557, 0, 0, 0, 0)
2455OPTION(1, 23585 /* -sanitizer-coverage-trace-geps */, anonymous_265, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23616, 0, 0, 0, 0)
2456OPTION(1, 23644 /* -sanitizer-coverage-trace-loads */, anonymous_266, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23676, 0, 0, 0, 0)
2457OPTION(1, 23705 /* -sanitizer-coverage-trace-pc-entry-exit */, anonymous_268, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23745, 0, 0, 0, 0)
2458OPTION(1, 23791 /* -sanitizer-coverage-trace-pc-guard */, anonymous_269, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23826, 0, 0, 0, 0)
2459OPTION(1, 23850 /* -sanitizer-coverage-trace-pc */, anonymous_267, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23879, 0, 0, 0, 0)
2460OPTION(1, 23903 /* -sanitizer-coverage-trace-stores */, anonymous_270, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23936, 0, 0, 0, 0)
2461OPTION(1, 23966 /* -sanitizer-metadata-atomics */, anonymous_248, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23994, 0, 0, 0, 0)
2462OPTION(1, 24025 /* -sanitizer-metadata-covered */, anonymous_249, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24053, 0, 0, 0, 0)
2463OPTION(1, 24084 /* -sanitizer-metadata-nosanitize-attr */, anonymous_250, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24120, 0, 0, 0, 0)
2464OPTION(1, 24210 /* -sanitizer-metadata-uar */, anonymous_251, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24234, 0, 0, 0, 0)
2465OPTION(1, 24313 /* -sanitizer-metadata-weak-callbacks */, anonymous_252, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24348, 0, 0, 0, 0)
2466OPTION(1, 24405 /* -skip-ret-exit-block */, anonymous_143, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24426, 0, 0, 0, 0)
2467OPTION(1, 24480 /* -speculative-counter-promotion-max-exiting */, anonymous_144, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24523, 0, 0, 0, 0)
2468OPTION(1, 24606 /* -speculative-counter-promotion-to-loop */, anonymous_145, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24645, 0, 0, 0, 0)
2469OPTION(1, 24834 /* -tsan-compound-read-before-write */, anonymous_271, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24867, 0, 0, 0, 0)
2470OPTION(1, 24929 /* -tsan-distinguish-volatile */, anonymous_272, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24956, 0, 0, 0, 0)
2471OPTION(1, 25011 /* -tsan-handle-cxx-exceptions */, anonymous_273, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25039, 0, 0, 0, 0)
2472OPTION(1, 25099 /* -tsan-instrument-atomics */, anonymous_274, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25124, 0, 0, 0, 0)
2473OPTION(1, 25143 /* -tsan-instrument-func-entry-exit */, anonymous_275, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25176, 0, 0, 0, 0)
2474OPTION(1, 25211 /* -tsan-instrument-memintrinsics */, anonymous_276, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25242, 0, 0, 0, 0)
2475OPTION(1, 25291 /* -tsan-instrument-memory-accesses */, anonymous_277, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25324, 0, 0, 0, 0)
2476OPTION(1, 25351 /* -tsan-instrument-read-before-write */, anonymous_278, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25386, 0, 0, 0, 0)
2477OPTION(1, 25447 /* -tsan-omit-by-pointer-capturing */, anonymous_279, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25479, 0, 0, 0, 0)
2478OPTION(1, 25518 /* -tysan-outline-instrumentation */, anonymous_280, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25549, 0, 0, 0, 0)
2479OPTION(1, 25618 /* -tysan-verify-outlined-instrumentation */, anonymous_281, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25657, 0, 0, 0, 0)
2480OPTION(1, 25769 /* -tysan-writes-always-set-type */, anonymous_282, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25799, 0, 0, 0, 0)
2481OPTION(1, 25826 /* -verify-atomic-counter-promoted */, anonymous_146, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25858, 0, 0, 0, 0)
2482OPTION(1, 25983 /* -vp-counters-per-site */, anonymous_147, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 26005, 0, 0, 0, 0)
2483OPTION(1, 26079 /* -vp-static-alloc */, anonymous_148, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 26096, 0, 0, 0, 0)
2484#endif // OPTION
2485
2486#ifdef SIMPLE_ENUM_VALUE_TABLE
2487
2488struct SimpleEnumValue {
2489 const char *Name;
2490 unsigned Value;
2491};
2492
2493struct SimpleEnumValueTable {
2494 const SimpleEnumValue *Table;
2495 unsigned Size;
2496};
2497static const SimpleEnumValueTable SimpleEnumValueTables[] = {};
2498static const unsigned SimpleEnumValueTablesSize = std::size(SimpleEnumValueTables);
2499#endif // SIMPLE_ENUM_VALUE_TABLE
2500