| 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) |
| 13 | namespace { |
| 14 | enum 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 | |
| 304 | static 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 |
| 313 | static 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 | |
| 887 | static constexpr llvm::StringTable |
| 888 | OptionStrTable = 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 | |
| 1216 | namespace llvm { |
| 1217 | namespace opt { |
| 1218 | class Arg; |
| 1219 | class LibraryOptionsParser; |
| 1220 | class OptTable; |
| 1221 | } // namespace opt |
| 1222 | } // namespace llvm |
| 1223 | |
| 1224 | namespace llvm { |
| 1225 | struct 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 | |
| 1516 | private: |
| 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 |
| 1528 | llvm::InstrumentationOptions llvm::InstrumentationOptions::Global; |
| 1529 | LLVM_REQUIRE_CONSTANT_INITIALIZATION const llvm::InstrumentationOptions llvm::InstrumentationOptions::Default; |
| 1530 | |
| 1531 | const llvm::opt::OptTable &llvm::InstrumentationOptions::optTable() { |
| 1532 | static const llvm::opt::LibraryOptTable T(optionTables()); |
| 1533 | return T; |
| 1534 | } |
| 1535 | |
| 1536 | bool 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 |
| 2184 | static 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 | |
| 2199 | OPTION(0, 6 /* <input> */, INPUT, Input, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0) |
| 2200 | OPTION(0, 14 /* <unknown> */, UNKNOWN, Unknown, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0) |
| 2201 | OPTION(1, 24 /* -alloc-token-cover-replaceable-new */, anonymous_51, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 59, 0, 0, 0, 0) |
| 2202 | OPTION(1, 90 /* -alloc-token-extended */, anonymous_52, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 112, 0, 0, 0, 0) |
| 2203 | OPTION(1, 159 /* -alloc-token-fallback */, anonymous_53, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 181, 0, 0, 0, 0) |
| 2204 | OPTION(1, 239 /* -alloc-token-fast-abi */, anonymous_54, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 261, 0, 0, 0, 0) |
| 2205 | OPTION(1, 306 /* -alloc-token-max */, anonymous_55, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 323, 0, 0, 0, 0) |
| 2206 | OPTION(1, 370 /* -alloc-token-prefix */, anonymous_56, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 390, 0, 0, 0, 0) |
| 2207 | OPTION(1, 421 /* -asan-always-slow-path */, anonymous_0, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 444, 0, 0, 0, 0) |
| 2208 | OPTION(1, 496 /* -asan-constructor-kind */, anonymous_1, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 519, 0, 550, 564, 0) |
| 2209 | OPTION(1, 576 /* -asan-debug-func */, anonymous_2, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 593, 0, 0, 0, 0) |
| 2210 | OPTION(1, 639 /* -asan-debug-max */, anonymous_3, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 655, 0, 0, 0, 0) |
| 2211 | OPTION(1, 762 /* -asan-debug-min */, anonymous_4, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 778, 0, 0, 0, 0) |
| 2212 | OPTION(1, 885 /* -asan-debug-stack */, anonymous_5, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 903, 0, 0, 0, 0) |
| 2213 | OPTION(1, 975 /* -asan-destructor-kind */, anonymous_6, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 997, 0, 550, 564, 0) |
| 2214 | OPTION(1, 1093 /* -asan-detect-invalid-pointer-cmp */, anonymous_7, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1126, 0, 0, 0, 0) |
| 2215 | OPTION(1, 1172 /* -asan-detect-invalid-pointer-pair */, anonymous_8, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1206, 0, 0, 0, 0) |
| 2216 | OPTION(1, 1255 /* -asan-detect-invalid-pointer-sub */, anonymous_9, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1288, 0, 0, 0, 0) |
| 2217 | OPTION(1, 1334 /* -asan-force-dynamic-shadow */, anonymous_10, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1361, 0, 0, 0, 0) |
| 2218 | OPTION(1, 1421 /* -asan-force-experiment */, anonymous_11, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1444, 0, 0, 0, 0) |
| 2219 | OPTION(1, 1488 /* -asan-globals-live-support */, anonymous_13, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1515, 0, 0, 0, 0) |
| 2220 | OPTION(1, 1577 /* -asan-globals */, anonymous_12, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1591, 0, 0, 0, 0) |
| 2221 | OPTION(1, 1613 /* -asan-guard-against-version-mismatch */, anonymous_14, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1650, 0, 0, 0, 0) |
| 2222 | OPTION(1, 1698 /* -asan-initialization-order */, anonymous_15, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1725, 0, 0, 0, 0) |
| 2223 | OPTION(1, 1754 /* -asan-instrument-address-spaces */, anonymous_16, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1786, 0, 0, 0, 0) |
| 2224 | OPTION(1, 1844 /* -asan-instrument-assume-dereferenceable */, anonymous_17, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1884, 0, 0, 0, 0) |
| 2225 | OPTION(1, 1924 /* -asan-instrument-atomics */, anonymous_18, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1949, 0, 0, 0, 0) |
| 2226 | OPTION(1, 1995 /* -asan-instrument-byval */, anonymous_19, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2018, 0, 0, 0, 0) |
| 2227 | OPTION(1, 2050 /* -asan-instrument-dynamic-allocas */, anonymous_20, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2083, 0, 0, 0, 0) |
| 2228 | OPTION(1, 2110 /* -asan-instrument-reads */, anonymous_21, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2133, 0, 0, 0, 0) |
| 2229 | OPTION(1, 2162 /* -asan-instrument-writes */, anonymous_22, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2186, 0, 0, 0, 0) |
| 2230 | OPTION(1, 2216 /* -asan-instrumentation-with-call-threshold */, anonymous_23, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2258, 0, 0, 0, 0) |
| 2231 | OPTION(1, 2414 /* -asan-kernel-mem-intrinsic-prefix */, anonymous_25, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2448, 0, 0, 0, 0) |
| 2232 | OPTION(1, 2495 /* -asan-kernel */, anonymous_24, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2508, 0, 0, 0, 0) |
| 2233 | OPTION(1, 2554 /* -asan-mapping-offset */, anonymous_26, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2575, 0, 0, 0, 0) |
| 2234 | OPTION(1, 2620 /* -asan-mapping-scale */, anonymous_27, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2640, 0, 0, 0, 0) |
| 2235 | OPTION(1, 2669 /* -asan-max-inline-poisoning-size */, anonymous_28, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2701, 0, 0, 0, 0) |
| 2236 | OPTION(1, 2766 /* -asan-max-ins-per-bb */, anonymous_29, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2787, 0, 0, 0, 0) |
| 2237 | OPTION(1, 2848 /* -asan-memory-access-callback-prefix */, anonymous_30, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2884, 0, 0, 0, 0) |
| 2238 | OPTION(1, 2919 /* -asan-opt-globals */, anonymous_32, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2937, 0, 0, 0, 0) |
| 2239 | OPTION(1, 2969 /* -asan-opt-same-temp */, anonymous_33, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2989, 0, 0, 0, 0) |
| 2240 | OPTION(1, 3024 /* -asan-opt-stack */, anonymous_34, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3040, 0, 0, 0, 0) |
| 2241 | OPTION(1, 3080 /* -asan-optimize-callbacks */, anonymous_35, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3105, 0, 0, 0, 0) |
| 2242 | OPTION(1, 3166 /* -asan-opt */, anonymous_31, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3176, 0, 0, 0, 0) |
| 2243 | OPTION(1, 3243 /* -asan-realign-stack */, anonymous_36, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3263, 0, 0, 0, 0) |
| 2244 | OPTION(1, 3318 /* -asan-recover */, anonymous_37, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3332, 0, 0, 0, 0) |
| 2245 | OPTION(1, 3376 /* -asan-redzone-byval-args */, anonymous_38, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3401, 0, 0, 0, 0) |
| 2246 | OPTION(1, 3459 /* -asan-shadow-addr-space */, anonymous_39, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3483, 0, 0, 0, 0) |
| 2247 | OPTION(1, 3528 /* -asan-skip-promotable-allocas */, anonymous_40, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3558, 0, 0, 0, 0) |
| 2248 | OPTION(1, 3595 /* -asan-stack-dynamic-alloca */, anonymous_42, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3622, 0, 0, 0, 0) |
| 2249 | OPTION(1, 3670 /* -asan-stack */, anonymous_41, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3682, 0, 0, 0, 0) |
| 2250 | OPTION(1, 3702 /* -asan-use-after-return */, anonymous_43, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3725, 0, 3779, 3802, 0) |
| 2251 | OPTION(1, 3823 /* -asan-use-after-scope */, anonymous_44, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3845, 0, 0, 0, 0) |
| 2252 | OPTION(1, 3873 /* -asan-use-odr-indicator */, anonymous_45, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3897, 0, 0, 0, 0) |
| 2253 | OPTION(1, 3941 /* -asan-use-private-alias */, anonymous_46, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3965, 0, 0, 0, 0) |
| 2254 | OPTION(1, 4006 /* -asan-use-stack-safety */, anonymous_47, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4029, 0, 0, 0, 0) |
| 2255 | OPTION(1, 4063 /* -asan-with-comdat */, anonymous_48, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4081, 0, 0, 0, 0) |
| 2256 | OPTION(1, 4124 /* -asan-with-ifunc-suppress-remat */, anonymous_50, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4156, 0, 0, 0, 0) |
| 2257 | OPTION(1, 4254 /* -asan-with-ifunc */, anonymous_49, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4271, 0, 0, 0, 0) |
| 2258 | OPTION(1, 4348 /* -atomic-counter-update-promoted */, anonymous_128, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4380, 0, 0, 0, 0) |
| 2259 | OPTION(1, 4449 /* -atomic-first-counter */, anonymous_129, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4471, 0, 0, 0, 0) |
| 2260 | OPTION(1, 4552 /* -bounds-checking-single-trap */, anonymous_57, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4581, 0, 0, 0, 0) |
| 2261 | OPTION(1, 4613 /* -check-functions-filter */, anonymous_202, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4637, 0, 0, 0, 0) |
| 2262 | OPTION(1, 4728 /* -chr-bias-threshold */, anonymous_58, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4748, 0, 0, 0, 0) |
| 2263 | OPTION(1, 4810 /* -chr-dup-threshold */, anonymous_59, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4829, 0, 0, 0, 0) |
| 2264 | OPTION(1, 4876 /* -chr-function-list */, anonymous_60, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4895, 0, 0, 0, 0) |
| 2265 | OPTION(1, 4958 /* -chr-merge-threshold */, anonymous_61, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4979, 0, 0, 0, 0) |
| 2266 | OPTION(1, 5042 /* -chr-module-list */, anonymous_62, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5059, 0, 0, 0, 0) |
| 2267 | OPTION(1, 5120 /* -conditional-counter-update */, anonymous_130, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5148, 0, 0, 0, 0) |
| 2268 | OPTION(1, 5209 /* -ctx-prof-skip-callsite-instr */, anonymous_211, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5239, 0, 0, 0, 0) |
| 2269 | OPTION(1, 5315 /* -default-gcov-version */, anonymous_80, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5337, 0, 0, 0, 0) |
| 2270 | OPTION(1, 5339 /* -dfsan-abilist */, anonymous_65, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5354, 0, 0, 0, 0) |
| 2271 | OPTION(1, 5417 /* -dfsan-add-global-name-suffix */, anonymous_66, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5447, 0, 0, 0, 0) |
| 2272 | OPTION(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) |
| 2273 | OPTION(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) |
| 2274 | OPTION(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) |
| 2275 | OPTION(1, 5865 /* -dfsan-combine-taint-lookup-table */, anonymous_70, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5899, 0, 0, 0, 0) |
| 2276 | OPTION(1, 6136 /* -dfsan-conditional-callbacks */, anonymous_71, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6165, 0, 0, 0, 0) |
| 2277 | OPTION(1, 6216 /* -dfsan-debug-nonzero-labels */, anonymous_72, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6244, 0, 0, 0, 0) |
| 2278 | OPTION(1, 6344 /* -dfsan-event-callbacks */, anonymous_73, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6367, 0, 0, 0, 0) |
| 2279 | OPTION(1, 6427 /* -dfsan-ignore-personality-routine */, anonymous_74, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6461, 0, 0, 0, 0) |
| 2280 | OPTION(1, 6561 /* -dfsan-instrument-with-call-threshold */, anonymous_75, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6599, 0, 0, 0, 0) |
| 2281 | OPTION(1, 6753 /* -dfsan-preserve-alignment */, anonymous_76, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6779, 0, 0, 0, 0) |
| 2282 | OPTION(1, 6831 /* -dfsan-reaches-function-callbacks */, anonymous_77, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6865, 0, 0, 0, 0) |
| 2283 | OPTION(1, 6928 /* -dfsan-track-origins */, anonymous_78, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6949, 0, 0, 0, 0) |
| 2284 | OPTION(1, 6973 /* -dfsan-track-select-control-flow */, anonymous_79, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7006, 0, 0, 0, 0) |
| 2285 | OPTION(1, 7079 /* -disable-chr */, anonymous_63, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7092, 0, 0, 0, 0) |
| 2286 | OPTION(1, 7122 /* -disable-icp */, anonymous_113, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7135, 0, 0, 0, 0) |
| 2287 | OPTION(1, 7167 /* -disable-memop-opt */, anonymous_241, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7186, 0, 0, 0, 0) |
| 2288 | OPTION(1, 7203 /* -disable-vp */, anonymous_212, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7215, 0, 0, 0, 0) |
| 2289 | OPTION(1, 7239 /* -do-comdat-renaming */, anonymous_213, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7259, 0, 0, 0, 0) |
| 2290 | OPTION(1, 7365 /* -do-counter-promotion */, anonymous_131, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7387, 0, 0, 0, 0) |
| 2291 | OPTION(1, 7417 /* -force-chr */, anonymous_64, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7428, 0, 0, 0, 0) |
| 2292 | OPTION(1, 7456 /* -gcov-atomic-counter */, anonymous_81, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7477, 0, 0, 0, 0) |
| 2293 | OPTION(1, 7505 /* -hash-based-counter-split */, anonymous_132, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7531, 0, 0, 0, 0) |
| 2294 | OPTION(1, 7594 /* -hot-func-cutoff-for-icp */, anonymous_114, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7619, 0, 0, 0, 0) |
| 2295 | OPTION(1, 7936 /* -hwasan-all-globals */, anonymous_82, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7956, 0, 0, 0, 0) |
| 2296 | OPTION(1, 8238 /* -hwasan-experimental-use-page-aliases */, anonymous_83, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8276, 0, 0, 0, 0) |
| 2297 | OPTION(1, 8304 /* -hwasan-generate-tags-with-calls */, anonymous_84, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8337, 0, 0, 0, 0) |
| 2298 | OPTION(1, 8382 /* -hwasan-globals */, anonymous_85, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8398, 0, 0, 0, 0) |
| 2299 | OPTION(1, 8417 /* -hwasan-inline-all-checks */, anonymous_86, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8443, 0, 0, 0, 0) |
| 2300 | OPTION(1, 8461 /* -hwasan-inline-fast-path-checks */, anonymous_87, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8443, 0, 0, 0, 0) |
| 2301 | OPTION(1, 8493 /* -hwasan-instrument-atomics */, anonymous_88, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1949, 0, 0, 0, 0) |
| 2302 | OPTION(1, 8520 /* -hwasan-instrument-byval */, anonymous_89, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8545, 0, 0, 0, 0) |
| 2303 | OPTION(1, 8572 /* -hwasan-instrument-landing-pads */, anonymous_90, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8604, 0, 0, 0, 0) |
| 2304 | OPTION(1, 8628 /* -hwasan-instrument-mem-intrinsics */, anonymous_91, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8662, 0, 0, 0, 0) |
| 2305 | OPTION(1, 8691 /* -hwasan-instrument-personality-functions */, anonymous_92, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8732, 0, 0, 0, 0) |
| 2306 | OPTION(1, 8765 /* -hwasan-instrument-reads */, anonymous_93, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2133, 0, 0, 0, 0) |
| 2307 | OPTION(1, 8790 /* -hwasan-instrument-stack */, anonymous_94, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8815, 0, 0, 0, 0) |
| 2308 | OPTION(1, 8842 /* -hwasan-instrument-with-calls */, anonymous_95, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8872, 0, 0, 0, 0) |
| 2309 | OPTION(1, 8915 /* -hwasan-instrument-writes */, anonymous_96, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2186, 0, 0, 0, 0) |
| 2310 | OPTION(1, 8941 /* -hwasan-kernel-mem-intrinsic-prefix */, anonymous_98, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2448, 0, 0, 0, 0) |
| 2311 | OPTION(1, 8977 /* -hwasan-kernel */, anonymous_97, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8992, 0, 0, 0, 0) |
| 2312 | OPTION(1, 9040 /* -hwasan-match-all-tag */, anonymous_99, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9062, 0, 0, 0, 0) |
| 2313 | OPTION(1, 9115 /* -hwasan-max-lifetimes-for-alloca */, anonymous_100, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9148, 0, 0, 0, 0) |
| 2314 | OPTION(1, 9201 /* -hwasan-memory-access-callback-prefix */, anonymous_101, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2884, 0, 0, 0, 0) |
| 2315 | OPTION(1, 9239 /* -hwasan-percentile-cutoff-hot */, anonymous_102, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9269, 0, 0, 0, 0) |
| 2316 | OPTION(1, 9291 /* -hwasan-random-rate */, anonymous_103, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9311, 0, 0, 0, 0) |
| 2317 | OPTION(1, 9500 /* -hwasan-record-stack-history */, anonymous_104, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9529, 0, 9603, 9624, 0) |
| 2318 | OPTION(1, 9643 /* -hwasan-recover */, anonymous_105, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3332, 0, 0, 0, 0) |
| 2319 | OPTION(1, 9659 /* -hwasan-static-linking */, anonymous_106, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9682, 0, 0, 0, 0) |
| 2320 | OPTION(1, 9925 /* -hwasan-strict-use-after-scope */, anonymous_107, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9956, 0, 0, 0, 0) |
| 2321 | OPTION(1, 10010 /* -hwasan-tag-bits */, anonymous_108, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10027, 0, 0, 0, 0) |
| 2322 | OPTION(1, 10075 /* -hwasan-use-after-scope */, anonymous_109, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10099, 0, 0, 0, 0) |
| 2323 | OPTION(1, 10138 /* -hwasan-use-short-granules */, anonymous_110, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10165, 0, 0, 0, 0) |
| 2324 | OPTION(1, 10215 /* -hwasan-use-stack-safety */, anonymous_111, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4029, 0, 0, 0, 0) |
| 2325 | OPTION(1, 10240 /* -hwasan-with-frame-record */, anonymous_112, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10266, 0, 0, 0, 0) |
| 2326 | OPTION(1, 10304 /* -icp-allow-candidate-skip */, anonymous_115, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10330, 0, 0, 0, 0) |
| 2327 | OPTION(1, 10413 /* -icp-allow-decls */, anonymous_116, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10430, 0, 0, 0, 0) |
| 2328 | OPTION(1, 10502 /* -icp-allow-hot-only */, anonymous_117, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10522, 0, 0, 0, 0) |
| 2329 | OPTION(1, 10628 /* -icp-call-only */, anonymous_118, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10643, 0, 0, 0, 0) |
| 2330 | OPTION(1, 10698 /* -icp-csskip */, anonymous_119, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10710, 0, 0, 0, 0) |
| 2331 | OPTION(1, 10763 /* -icp-cutoff */, anonymous_120, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10775, 0, 0, 0, 0) |
| 2332 | OPTION(1, 10821 /* -icp-dumpafter */, anonymous_121, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10836, 0, 0, 0, 0) |
| 2333 | OPTION(1, 10873 /* -icp-ignored-base-types */, anonymous_122, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10897, 0, 0, 0, 0) |
| 2334 | OPTION(1, 11220 /* -icp-invoke-only */, anonymous_123, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11237, 0, 0, 0, 0) |
| 2335 | OPTION(1, 11293 /* -icp-lto */, anonymous_124, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11302, 0, 0, 0, 0) |
| 2336 | OPTION(1, 11342 /* -icp-max-annotations */, anonymous_214, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11363, 0, 0, 0, 0) |
| 2337 | OPTION(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) |
| 2338 | OPTION(1, 11512 /* -icp-samplepgo */, anonymous_126, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11527, 0, 0, 0, 0) |
| 2339 | OPTION(1, 11573 /* -icp-vtable-percentage-threshold */, anonymous_127, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11606, 0, 0, 0, 0) |
| 2340 | OPTION(1, 11690 /* -instrprof-atomic-counter-update-all */, anonymous_133, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11727, 0, 0, 0, 0) |
| 2341 | OPTION(1, 11786 /* -iterative-counter-promotion */, anonymous_134, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11815, 0, 0, 0, 0) |
| 2342 | OPTION(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) |
| 2343 | OPTION(1, 11907 /* -lower-allow-check-random-rate */, anonymous_150, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11938, 0, 0, 0, 0) |
| 2344 | OPTION(1, 12018 /* -max-counter-promotions-per-loop */, anonymous_136, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12051, 0, 0, 0, 0) |
| 2345 | OPTION(1, 12137 /* -max-counter-promotions */, anonymous_135, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12161, 0, 0, 0, 0) |
| 2346 | OPTION(1, 12202 /* -memop-max-annotations */, anonymous_215, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12225, 0, 0, 0, 0) |
| 2347 | OPTION(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) |
| 2348 | OPTION(1, 12362 /* -memprof-annotate-static-data-prefix */, anonymous_194, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12399, 0, 0, 0, 0) |
| 2349 | OPTION(1, 12448 /* -memprof-attach-calleeguids */, anonymous_195, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12476, 0, 0, 0, 0) |
| 2350 | OPTION(1, 12540 /* -memprof-debug-func */, anonymous_180, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12560, 0, 0, 0, 0) |
| 2351 | OPTION(1, 12571 /* -memprof-debug-max */, anonymous_181, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12590, 0, 0, 0, 0) |
| 2352 | OPTION(1, 12605 /* -memprof-debug-min */, anonymous_182, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12624, 0, 0, 0, 0) |
| 2353 | OPTION(1, 12639 /* -memprof-debug */, anonymous_179, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12654, 0, 0, 0, 0) |
| 2354 | OPTION(1, 12660 /* -memprof-guard-against-version-mismatch */, anonymous_183, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1650, 0, 0, 0, 0) |
| 2355 | OPTION(1, 12700 /* -memprof-histogram */, anonymous_184, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12719, 0, 0, 0, 0) |
| 2356 | OPTION(1, 12751 /* -memprof-instrument-atomics */, anonymous_185, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1949, 0, 0, 0, 0) |
| 2357 | OPTION(1, 12779 /* -memprof-instrument-reads */, anonymous_186, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2133, 0, 0, 0, 0) |
| 2358 | OPTION(1, 12805 /* -memprof-instrument-stack */, anonymous_187, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12831, 0, 0, 0, 0) |
| 2359 | OPTION(1, 12865 /* -memprof-instrument-writes */, anonymous_188, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2186, 0, 0, 0, 0) |
| 2360 | OPTION(1, 12892 /* -memprof-mapping-granularity */, anonymous_189, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12921, 0, 0, 0, 0) |
| 2361 | OPTION(1, 12959 /* -memprof-mapping-scale */, anonymous_190, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12982, 0, 0, 0, 0) |
| 2362 | OPTION(1, 13014 /* -memprof-match-hot-cold-new */, anonymous_196, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13042, 0, 0, 0, 0) |
| 2363 | OPTION(1, 13110 /* -memprof-matching-cold-threshold */, anonymous_197, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13143, 0, 0, 0, 0) |
| 2364 | OPTION(1, 13201 /* -memprof-memory-access-callback-prefix */, anonymous_191, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2884, 0, 0, 0, 0) |
| 2365 | OPTION(1, 13240 /* -memprof-print-function-guids */, anonymous_198, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13270, 0, 0, 0, 0) |
| 2366 | OPTION(1, 13313 /* -memprof-print-match-info */, anonymous_199, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13339, 0, 0, 0, 0) |
| 2367 | OPTION(1, 13414 /* -memprof-print-matched-alloc-stack */, anonymous_200, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13449, 0, 0, 0, 0) |
| 2368 | OPTION(1, 13529 /* -memprof-runtime-default-options */, anonymous_192, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13562, 0, 0, 0, 0) |
| 2369 | OPTION(1, 13590 /* -memprof-salvage-stale-profile */, anonymous_201, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13621, 0, 0, 0, 0) |
| 2370 | OPTION(1, 13651 /* -memprof-use-callbacks */, anonymous_193, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13674, 0, 0, 0, 0) |
| 2371 | OPTION(1, 13732 /* -msan-and-mask */, anonymous_151, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13747, 0, 0, 0, 0) |
| 2372 | OPTION(1, 13774 /* -msan-check-access-address */, anonymous_152, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13801, 0, 0, 0, 0) |
| 2373 | OPTION(1, 13861 /* -msan-check-constant-shadow */, anonymous_153, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13889, 0, 0, 0, 0) |
| 2374 | OPTION(1, 13930 /* -msan-disable-checks */, anonymous_154, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13951, 0, 0, 0, 0) |
| 2375 | OPTION(1, 13987 /* -msan-disambiguate-warning-threshold */, anonymous_155, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14024, 0, 0, 0, 0) |
| 2376 | OPTION(1, 14104 /* -msan-dump-heuristic-instructions */, anonymous_156, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14138, 0, 0, 0, 0) |
| 2377 | OPTION(1, 14313 /* -msan-dump-strict-instructions */, anonymous_157, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14344, 0, 0, 0, 0) |
| 2378 | OPTION(1, 14592 /* -msan-eager-checks */, anonymous_158, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14611, 0, 0, 0, 0) |
| 2379 | OPTION(1, 14673 /* -msan-handle-asm-conservative */, anonymous_159, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14703, 0, 0, 0, 0) |
| 2380 | OPTION(1, 14744 /* -msan-handle-icmp-exact */, anonymous_161, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14768, 0, 0, 0, 0) |
| 2381 | OPTION(1, 14810 /* -msan-handle-icmp */, anonymous_160, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14828, 0, 0, 0, 0) |
| 2382 | OPTION(1, 14871 /* -msan-handle-lifetime-intrinsics */, anonymous_162, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14904, 0, 0, 0, 0) |
| 2383 | OPTION(1, 15000 /* -msan-instrumentation-with-call-threshold */, anonymous_163, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15042, 0, 0, 0, 0) |
| 2384 | OPTION(1, 15207 /* -msan-keep-going */, anonymous_164, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15224, 0, 0, 0, 0) |
| 2385 | OPTION(1, 15257 /* -msan-kernel */, anonymous_165, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15270, 0, 0, 0, 0) |
| 2386 | OPTION(1, 15315 /* -msan-origin-base */, anonymous_166, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15333, 0, 0, 0, 0) |
| 2387 | OPTION(1, 15363 /* -msan-poison-stack-pattern */, anonymous_168, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15390, 0, 0, 0, 0) |
| 2388 | OPTION(1, 15450 /* -msan-poison-stack-with-call */, anonymous_169, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15479, 0, 0, 0, 0) |
| 2389 | OPTION(1, 15528 /* -msan-poison-stack */, anonymous_167, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15547, 0, 0, 0, 0) |
| 2390 | OPTION(1, 15584 /* -msan-poison-undef-vectors */, anonymous_171, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15611, 0, 0, 0, 0) |
| 2391 | OPTION(1, 15866 /* -msan-poison-undef */, anonymous_170, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15885, 0, 0, 0, 0) |
| 2392 | OPTION(1, 16020 /* -msan-precise-disjoint-or */, anonymous_172, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16046, 0, 0, 0, 0) |
| 2393 | OPTION(1, 16157 /* -msan-print-stack-names */, anonymous_173, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16181, 0, 0, 0, 0) |
| 2394 | OPTION(1, 16216 /* -msan-shadow-base */, anonymous_174, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16234, 0, 0, 0, 0) |
| 2395 | OPTION(1, 16264 /* -msan-switch-precision */, anonymous_175, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16287, 0, 0, 0, 0) |
| 2396 | OPTION(1, 16572 /* -msan-track-origins */, anonymous_176, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16592, 0, 0, 0, 0) |
| 2397 | OPTION(1, 16644 /* -msan-with-comdat */, anonymous_177, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16662, 0, 0, 0, 0) |
| 2398 | OPTION(1, 16705 /* -msan-xor-mask */, anonymous_178, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16720, 0, 0, 0, 0) |
| 2399 | OPTION(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) |
| 2400 | OPTION(1, 16873 /* -nsan-check-loads */, anonymous_203, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16891, 0, 0, 0, 0) |
| 2401 | OPTION(1, 16917 /* -nsan-check-ret */, anonymous_204, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16933, 0, 0, 0, 0) |
| 2402 | OPTION(1, 16968 /* -nsan-check-stores */, anonymous_205, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16987, 0, 0, 0, 0) |
| 2403 | OPTION(1, 17015 /* -nsan-instrument-fcmp */, anonymous_206, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17037, 0, 0, 0, 0) |
| 2404 | OPTION(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) |
| 2405 | OPTION(1, 17212 /* -nsan-shadow-type-mapping */, anonymous_208, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17238, 0, 0, 0, 0) |
| 2406 | OPTION(1, 17486 /* -nsan-truncate-fcmp-eq */, anonymous_209, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17509, 0, 0, 0, 0) |
| 2407 | OPTION(1, 17936 /* -offload-pgo-sampling */, anonymous_137, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17958, 0, 0, 0, 0) |
| 2408 | OPTION(1, 18170 /* -pgo-block-coverage */, anonymous_217, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18190, 0, 0, 0, 0) |
| 2409 | OPTION(1, 18253 /* -pgo-cold-instrument-entry-threshold */, anonymous_218, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18290, 0, 0, 0, 0) |
| 2410 | OPTION(1, 18397 /* -pgo-critical-edge-threshold */, anonymous_219, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18426, 0, 0, 0, 0) |
| 2411 | OPTION(1, 18517 /* -pgo-emit-branch-prob */, anonymous_220, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18539, 0, 0, 0, 0) |
| 2412 | OPTION(1, 18679 /* -pgo-fix-entry-count */, anonymous_221, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18700, 0, 0, 0, 0) |
| 2413 | OPTION(1, 18740 /* -pgo-function-entry-coverage */, anonymous_222, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18769, 0, 0, 0, 0) |
| 2414 | OPTION(1, 18835 /* -pgo-function-size-threshold */, anonymous_223, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18864, 0, 0, 0, 0) |
| 2415 | OPTION(1, 18920 /* -pgo-instr-memop */, anonymous_224, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18937, 0, 0, 0, 0) |
| 2416 | OPTION(1, 19000 /* -pgo-instr-select */, anonymous_225, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19018, 0, 0, 0, 0) |
| 2417 | OPTION(1, 19084 /* -pgo-instrument-cold-function-only */, anonymous_226, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19119, 0, 0, 0, 0) |
| 2418 | OPTION(1, 19161 /* -pgo-instrument-entry */, anonymous_227, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19183, 0, 0, 0, 0) |
| 2419 | OPTION(1, 19229 /* -pgo-instrument-loop-entries */, anonymous_228, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19258, 0, 0, 0, 0) |
| 2420 | OPTION(1, 19291 /* -pgo-memop-count-threshold */, anonymous_243, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19318, 0, 0, 0, 0) |
| 2421 | OPTION(1, 19371 /* -pgo-memop-max-version */, anonymous_244, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19394, 0, 0, 0, 0) |
| 2422 | OPTION(1, 19452 /* -pgo-memop-optimize-memcmp-bcmp */, anonymous_245, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19484, 0, 0, 0, 0) |
| 2423 | OPTION(1, 19522 /* -pgo-memop-percent-threshold */, anonymous_246, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19551, 0, 0, 0, 0) |
| 2424 | OPTION(1, 19620 /* -pgo-memop-scale-count */, anonymous_247, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19643, 0, 0, 0, 0) |
| 2425 | OPTION(1, 19706 /* -pgo-temporal-instrumentation */, anonymous_229, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19736, 0, 0, 0, 0) |
| 2426 | OPTION(1, 19787 /* -pgo-test-profile-file */, anonymous_230, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19810, 0, 0, 0, 0) |
| 2427 | OPTION(1, 19881 /* -pgo-test-profile-remapping-file */, anonymous_231, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19914, 0, 0, 0, 0) |
| 2428 | OPTION(1, 19990 /* -pgo-trace-func-hash */, anonymous_232, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20011, 0, 0, 0, 0) |
| 2429 | OPTION(1, 20057 /* -pgo-treat-unknown-as-cold */, anonymous_233, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20084, 0, 0, 0, 0) |
| 2430 | OPTION(1, 20174 /* -pgo-verify-bfi-cutoff */, anonymous_235, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20197, 0, 0, 0, 0) |
| 2431 | OPTION(1, 20286 /* -pgo-verify-bfi-ratio */, anonymous_236, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20308, 0, 0, 0, 0) |
| 2432 | OPTION(1, 20449 /* -pgo-verify-bfi */, anonymous_234, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20465, 0, 0, 0, 0) |
| 2433 | OPTION(1, 20622 /* -pgo-verify-hot-bfi */, anonymous_237, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20642, 0, 0, 0, 0) |
| 2434 | OPTION(1, 20855 /* -pgo-view-block-coverage-graph */, anonymous_238, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20886, 0, 0, 0, 0) |
| 2435 | OPTION(1, 20954 /* -pgo-view-raw-counts */, anonymous_239, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 20975, 0, 21179, 21197, 0) |
| 2436 | OPTION(1, 21213 /* -pgo-warn-missing-function */, anonymous_240, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 21240, 0, 0, 0, 0) |
| 2437 | OPTION(1, 21321 /* -profile-context-root */, anonymous_210, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 21343, 0, 0, 0, 0) |
| 2438 | OPTION(1, 21504 /* -profile-correlate */, anonymous_138, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 21523, 0, 21575, 21595, 0) |
| 2439 | OPTION(1, 21613 /* -runtime-counter-relocation */, anonymous_139, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 21641, 0, 0, 0, 0) |
| 2440 | OPTION(1, 21679 /* -sampled-instr-burst-duration */, anonymous_140, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 21709, 0, 0, 0, 0) |
| 2441 | OPTION(1, 22039 /* -sampled-instr-period */, anonymous_141, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22061, 0, 0, 0, 0) |
| 2442 | OPTION(1, 22488 /* -sampled-instrumentation */, anonymous_142, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22513, 0, 0, 0, 0) |
| 2443 | OPTION(1, 22545 /* -sanitizer-coverage-control-flow */, anonymous_253, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22578, 0, 0, 0, 0) |
| 2444 | OPTION(1, 22617 /* -sanitizer-coverage-drop-ctors */, anonymous_254, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22648, 0, 0, 0, 0) |
| 2445 | OPTION(1, 22693 /* -sanitizer-coverage-gated-trace-callbacks */, anonymous_255, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22735, 0, 0, 0, 0) |
| 2446 | OPTION(1, 22860 /* -sanitizer-coverage-inline-8bit-counters */, anonymous_256, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22901, 0, 0, 0, 0) |
| 2447 | OPTION(1, 22941 /* -sanitizer-coverage-inline-bool-flag */, anonymous_257, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 22978, 0, 0, 0, 0) |
| 2448 | OPTION(1, 23013 /* -sanitizer-coverage-level */, anonymous_258, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23039, 0, 0, 0, 0) |
| 2449 | OPTION(1, 23132 /* -sanitizer-coverage-pc-table */, anonymous_259, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23161, 0, 0, 0, 0) |
| 2450 | OPTION(1, 23186 /* -sanitizer-coverage-prune-blocks */, anonymous_260, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23219, 0, 0, 0, 0) |
| 2451 | OPTION(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) |
| 2452 | OPTION(1, 23395 /* -sanitizer-coverage-stack-depth */, anonymous_261, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23427, 0, 0, 0, 0) |
| 2453 | OPTION(1, 23451 /* -sanitizer-coverage-trace-compares */, anonymous_263, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23486, 0, 0, 0, 0) |
| 2454 | OPTION(1, 23526 /* -sanitizer-coverage-trace-divs */, anonymous_264, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23557, 0, 0, 0, 0) |
| 2455 | OPTION(1, 23585 /* -sanitizer-coverage-trace-geps */, anonymous_265, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23616, 0, 0, 0, 0) |
| 2456 | OPTION(1, 23644 /* -sanitizer-coverage-trace-loads */, anonymous_266, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23676, 0, 0, 0, 0) |
| 2457 | OPTION(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) |
| 2458 | OPTION(1, 23791 /* -sanitizer-coverage-trace-pc-guard */, anonymous_269, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23826, 0, 0, 0, 0) |
| 2459 | OPTION(1, 23850 /* -sanitizer-coverage-trace-pc */, anonymous_267, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23879, 0, 0, 0, 0) |
| 2460 | OPTION(1, 23903 /* -sanitizer-coverage-trace-stores */, anonymous_270, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23936, 0, 0, 0, 0) |
| 2461 | OPTION(1, 23966 /* -sanitizer-metadata-atomics */, anonymous_248, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 23994, 0, 0, 0, 0) |
| 2462 | OPTION(1, 24025 /* -sanitizer-metadata-covered */, anonymous_249, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24053, 0, 0, 0, 0) |
| 2463 | OPTION(1, 24084 /* -sanitizer-metadata-nosanitize-attr */, anonymous_250, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24120, 0, 0, 0, 0) |
| 2464 | OPTION(1, 24210 /* -sanitizer-metadata-uar */, anonymous_251, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24234, 0, 0, 0, 0) |
| 2465 | OPTION(1, 24313 /* -sanitizer-metadata-weak-callbacks */, anonymous_252, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24348, 0, 0, 0, 0) |
| 2466 | OPTION(1, 24405 /* -skip-ret-exit-block */, anonymous_143, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24426, 0, 0, 0, 0) |
| 2467 | OPTION(1, 24480 /* -speculative-counter-promotion-max-exiting */, anonymous_144, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24523, 0, 0, 0, 0) |
| 2468 | OPTION(1, 24606 /* -speculative-counter-promotion-to-loop */, anonymous_145, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24645, 0, 0, 0, 0) |
| 2469 | OPTION(1, 24834 /* -tsan-compound-read-before-write */, anonymous_271, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24867, 0, 0, 0, 0) |
| 2470 | OPTION(1, 24929 /* -tsan-distinguish-volatile */, anonymous_272, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 24956, 0, 0, 0, 0) |
| 2471 | OPTION(1, 25011 /* -tsan-handle-cxx-exceptions */, anonymous_273, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25039, 0, 0, 0, 0) |
| 2472 | OPTION(1, 25099 /* -tsan-instrument-atomics */, anonymous_274, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25124, 0, 0, 0, 0) |
| 2473 | OPTION(1, 25143 /* -tsan-instrument-func-entry-exit */, anonymous_275, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25176, 0, 0, 0, 0) |
| 2474 | OPTION(1, 25211 /* -tsan-instrument-memintrinsics */, anonymous_276, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25242, 0, 0, 0, 0) |
| 2475 | OPTION(1, 25291 /* -tsan-instrument-memory-accesses */, anonymous_277, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25324, 0, 0, 0, 0) |
| 2476 | OPTION(1, 25351 /* -tsan-instrument-read-before-write */, anonymous_278, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25386, 0, 0, 0, 0) |
| 2477 | OPTION(1, 25447 /* -tsan-omit-by-pointer-capturing */, anonymous_279, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25479, 0, 0, 0, 0) |
| 2478 | OPTION(1, 25518 /* -tysan-outline-instrumentation */, anonymous_280, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25549, 0, 0, 0, 0) |
| 2479 | OPTION(1, 25618 /* -tysan-verify-outlined-instrumentation */, anonymous_281, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25657, 0, 0, 0, 0) |
| 2480 | OPTION(1, 25769 /* -tysan-writes-always-set-type */, anonymous_282, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25799, 0, 0, 0, 0) |
| 2481 | OPTION(1, 25826 /* -verify-atomic-counter-promoted */, anonymous_146, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 25858, 0, 0, 0, 0) |
| 2482 | OPTION(1, 25983 /* -vp-counters-per-site */, anonymous_147, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 26005, 0, 0, 0, 0) |
| 2483 | OPTION(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 | |
| 2488 | struct SimpleEnumValue { |
| 2489 | const char *Name; |
| 2490 | unsigned Value; |
| 2491 | }; |
| 2492 | |
| 2493 | struct SimpleEnumValueTable { |
| 2494 | const SimpleEnumValue *Table; |
| 2495 | unsigned Size; |
| 2496 | }; |
| 2497 | static const SimpleEnumValueTable SimpleEnumValueTables[] = {}; |
| 2498 | static const unsigned SimpleEnumValueTablesSize = std::size(SimpleEnumValueTables); |
| 2499 | #endif // SIMPLE_ENUM_VALUE_TABLE |
| 2500 | |