1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Option Parsing Definitions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9/////////
10// Tables
11
12#if defined(OPTTABLE_CODE) || defined(OPTIONS_STRUCT_DEFS)
13namespace {
14enum ID : unsigned {
15 OPT_INVALID = 0,
16 OPT_INPUT,
17 OPT_UNKNOWN,
18 OPT_adce_remove_control_flow,
19 OPT_adce_remove_loops,
20 OPT_allow_unroll_and_jam,
21 OPT_bonus_inst_threshold,
22 OPT_callsite_splitting_duplication_threshold,
23 OPT_consthoist_gep,
24 OPT_consthoist_min_num_to_rebase,
25 OPT_consthoist_with_block_frequency,
26 OPT_constraint_elimination_dump_reproducers,
27 OPT_constraint_elimination_max_rows,
28 OPT_dfa_cost_threshold,
29 OPT_dfa_early_exit_heuristic,
30 OPT_dfa_jump_view_cfg_before,
31 OPT_dfa_max_cloned_rate,
32 OPT_dfa_max_num_paths,
33 OPT_dfa_max_num_visited_paths,
34 OPT_dfa_max_out_use_blocks,
35 OPT_dfa_max_path_length,
36 OPT_disable_lftr,
37 OPT_disable_licm_promotion,
38 OPT_disable_separate_const_offset_from_gep,
39 OPT_disable_tail_call_elim_for_cold_calls,
40 OPT_dse_max_dom_cond_depth,
41 OPT_dse_memoryssa_defs_per_block_limit,
42 OPT_dse_memoryssa_otherbb_cost,
43 OPT_dse_memoryssa_partial_store_limit,
44 OPT_dse_memoryssa_path_check_limit,
45 OPT_dse_memoryssa_samebb_cost,
46 OPT_dse_memoryssa_scanlimit,
47 OPT_dse_memoryssa_walklimit,
48 OPT_dse_optimize_memoryssa,
49 OPT_earlycse_debug_hash,
50 OPT_earlycse_mssa_optimization_cap,
51 OPT_enable_dse_initializes_attr_improvement,
52 OPT_enable_dse_partial_overwrite_tracking,
53 OPT_enable_dse_partial_store_merging,
54 OPT_enable_gvn_memdep,
55 OPT_enable_gvn_memoryssa,
56 OPT_enable_load_in_loop_pre,
57 OPT_enable_load_pre,
58 OPT_enable_loop_distribute,
59 OPT_enable_loop_header_duplication_at_minsize,
60 OPT_enable_loop_simplifycfg_term_folding,
61 OPT_enable_lsr_phielim,
62 OPT_enable_nontrivial_unswitch,
63 OPT_enable_phi_of_ops,
64 OPT_enable_poison_reuse_guard,
65 OPT_enable_scalar_pre,
66 OPT_enable_split_backedge_in_load_pre,
67 OPT_enable_store_refinement,
68 OPT_enable_unswitch_cost_multiplier,
69 OPT_flat_loop_tripcount_threshold,
70 OPT_float2int_max_integer_bw,
71 OPT_force_fuse_matrix,
72 OPT_forget_scev_loop_unroll,
73 OPT_forward_switch_cond,
74 OPT_freeze_loop_unswitch_cond,
75 OPT_fuse_matrix_loops_threshold,
76 OPT_fuse_matrix_tile_size,
77 OPT_fuse_matrix,
78 OPT_guard_widening_widen_branch_guards,
79 OPT_gvn_hoist_max_bbs,
80 OPT_gvn_hoist_max_chain_length,
81 OPT_gvn_hoist_max_depth,
82 OPT_gvn_max_block_speculations,
83 OPT_gvn_max_hoisted,
84 OPT_gvn_max_num_deps,
85 OPT_gvn_max_num_insns,
86 OPT_gvn_max_num_reaching_blocks,
87 OPT_gvn_max_num_visited_insts,
88 OPT_gvn_scan_users_limit,
89 OPT_hoist_common_insts,
90 OPT_hoist_loads_stores_with_cond_faulting,
91 OPT_indvars_post_increment_ranges,
92 OPT_indvars_predicate_loop_traps,
93 OPT_indvars_predicate_loops,
94 OPT_indvars_widen_indvars,
95 OPT_irce_allow_narrow_latch,
96 OPT_irce_allow_unsigned_latch,
97 OPT_irce_loop_size_cutoff,
98 OPT_irce_max_type_size_for_overflow_check,
99 OPT_irce_min_eliminated_checks,
100 OPT_irce_print_changed_loops,
101 OPT_irce_print_range_checks,
102 OPT_irce_print_scaled_boundary_range_checks,
103 OPT_irce_skip_profitability_checks,
104 OPT_jump_table_to_switch_function_size_threshold,
105 OPT_jump_table_to_switch_size_threshold,
106 OPT_jump_threading_across_loop_headers,
107 OPT_jump_threading_implication_search_threshold,
108 OPT_jump_threading_phi_threshold,
109 OPT_jump_threading_threshold,
110 OPT_keep_loops,
111 OPT_licm_max_num_fp_reassociations,
112 OPT_licm_max_num_int_reassociations,
113 OPT_licm_max_num_uses_traversed,
114 OPT_licm_mssa_max_acc_promotion,
115 OPT_licm_mssa_optimization_cap,
116 OPT_licm_versioning_invariant_threshold,
117 OPT_licm_versioning_max_depth_threshold,
118 OPT_likely_branch_weight,
119 OPT_loop_deletion_enable_symbolic_execution,
120 OPT_loop_distribute_non_if_convertible,
121 OPT_loop_distribute_scev_check_threshold_with_pragma,
122 OPT_loop_distribute_scev_check_threshold,
123 OPT_loop_distribute_verify,
124 OPT_loop_flatten_assume_no_overflow,
125 OPT_loop_flatten_cost_threshold,
126 OPT_loop_flatten_version_loops,
127 OPT_loop_flatten_widen_iv,
128 OPT_loop_fusion_disable_cost_model,
129 OPT_loop_fusion_min_reused_values,
130 OPT_loop_fusion_peel_max_count,
131#if !defined(NDEBUG)
132 OPT_loop_fusion_verbose_debug,
133#endif
134 OPT_loop_idiom_crc_strategy,
135 OPT_loop_idiom_force_memset_pattern_intrinsic,
136 OPT_loop_interchange_max_loop_nest_depth,
137 OPT_loop_interchange_max_mem_instr_ratio,
138 OPT_loop_interchange_min_loop_nest_depth,
139 OPT_loop_interchange_profitabilities,
140 OPT_loop_interchange_reduction_to_mem,
141 OPT_loop_interchange_threshold,
142 OPT_loop_load_elimination_scev_check_threshold,
143 OPT_loop_predication_enable_count_down_loop,
144 OPT_loop_predication_enable_iv_truncation,
145 OPT_loop_predication_insert_assumes_of_predicated_guards_conditions,
146 OPT_loop_predication_latch_probability_scale,
147 OPT_loop_predication_predicate_widenable_branches_to_deopt,
148 OPT_loop_predication_skip_profitability_checks,
149 OPT_loop_prefetch_writes,
150 OPT_lsr_complexity_limit,
151 OPT_lsr_drop_scaled_reg_for_vscale,
152 OPT_lsr_drop_solution,
153 OPT_lsr_enable_vscale_immediates,
154 OPT_lsr_exp_narrow,
155 OPT_lsr_filter_same_scaled_reg,
156 OPT_lsr_insns_cost,
157 OPT_lsr_preferred_addressing_mode,
158 OPT_lsr_setupcost_depth_limit,
159 OPT_matrix_allow_contract,
160 OPT_matrix_default_layout,
161 OPT_matrix_print_after_transpose_opt,
162 OPT_matrix_split_matmul_remainder_over_threshold,
163 OPT_max_loads_per_memcmp_opt_size,
164 OPT_max_loads_per_memcmp,
165 OPT_max_prefetch_iters_ahead,
166 OPT_max_uses_for_sinking,
167 OPT_memcmp_num_loads_per_block,
168 OPT_min_prefetch_stride,
169 OPT_pragma_unroll_and_jam_threshold,
170 OPT_pragma_unroll_full_max_iterations,
171 OPT_pragma_unroll_threshold,
172 OPT_prefetch_distance,
173 OPT_reassociate_geps_verify_no_dead_code,
174 OPT_reassociate_use_cse_local,
175 OPT_replexitval,
176 OPT_rotation_max_header_size,
177 OPT_rotation_prepare_for_lto,
178 OPT_rs4gc_allow_statepoint_with_no_deopt_info,
179 OPT_rs4gc_remat_derived_at_uses,
180 OPT_runtime_check_per_loop_load_elim,
181 OPT_simple_loop_unswitch_drop_non_trivial_implicit_null_checks,
182 OPT_simple_loop_unswitch_estimate_profile,
183 OPT_simple_loop_unswitch_guards,
184 OPT_simple_loop_unswitch_inject_invariant_condition_hotness_threshold,
185 OPT_simple_loop_unswitch_inject_invariant_conditions,
186 OPT_simple_loop_unswitch_memoryssa_threshold,
187 OPT_sink_common_insts,
188 OPT_sink_freq_percent_threshold,
189 OPT_spec_exec_max_not_hoisted,
190 OPT_spec_exec_max_speculation_cost,
191 OPT_spec_exec_only_if_divergent_target,
192 OPT_speculate_unpredictables,
193 OPT_spp_all_backedges,
194 OPT_spp_counted_loop_trip_width,
195 OPT_spp_no_backedge,
196 OPT_spp_no_call,
197 OPT_spp_no_entry,
198 OPT_spp_print_base_pointers,
199 OPT_spp_print_liveset_size,
200 OPT_spp_print_liveset,
201 OPT_spp_rematerialization_threshold,
202 OPT_spp_split_backedge,
203 OPT_sroa_skip_mem2reg,
204#if !defined(NDEBUG)
205 OPT_stress_ivchain,
206#endif
207 OPT_structurizecfg_skip_uniform_regions,
208 OPT_switch_range_to_icmp,
209 OPT_switch_to_lookup,
210 OPT_tre_disable_entrycount_recompute,
211 OPT_unlikely_branch_weight,
212 OPT_unroll_allow_partial,
213 OPT_unroll_allow_remainder,
214 OPT_unroll_and_jam_count,
215 OPT_unroll_and_jam_threshold,
216 OPT_unroll_count,
217 OPT_unroll_full_max_count,
218 OPT_unroll_max_count,
219 OPT_unroll_max_iteration_count_to_analyze,
220 OPT_unroll_max_percent_threshold_boost,
221 OPT_unroll_max_upperbound,
222 OPT_unroll_optsize_threshold,
223 OPT_unroll_partial_threshold,
224 OPT_unroll_remainder,
225 OPT_unroll_revisit_child_loops,
226 OPT_unroll_runtime,
227 OPT_unroll_threshold_aggressive,
228 OPT_unroll_threshold_default,
229 OPT_unroll_threshold,
230 OPT_unswitch_num_initial_unscaled_candidates,
231 OPT_unswitch_parent_blocks_div,
232 OPT_unswitch_siblings_toplevel_div,
233 OPT_unswitch_threshold,
234 OPT_use_lir_code_size_heurs,
235 OPT_verify_matrix_shapes,
236};
237} // namespace
238
239static llvm::opt::OptTable::Tables optionTables() {
240 using llvm::opt::DefaultVis, llvm::opt::HelpHidden,
241 llvm::opt::RenderAsInput, llvm::opt::RenderJoined,
242 llvm::opt::RenderSeparate;
243
244#ifdef __GNUC__
245#pragma GCC diagnostic push
246#pragma GCC diagnostic ignored "-Woverlength-strings"
247#endif
248static constexpr char OptionStrTableStorage[] =
249 "\0"
250 "-\0"
251 "--\0"
252 "<input>\0"
253 "<unknown>\0"
254 "-adce-remove-control-flow\0"
255 "\0"
256 "\0"
257 "-adce-remove-loops\0"
258 "-allow-unroll-and-jam\0"
259 "Allows loops to be unroll-and-jammed\0"
260 "-bonus-inst-threshold\0"
261 "Control the number of bonus instructions\0"
262 "-callsite-splitting-duplication-threshold\0"
263 "Only allow instructions before a call, if their cost is below DuplicationThreshold\0"
264 "-consthoist-gep\0"
265 "Try hoisting constant gep expressions\0"
266 "-consthoist-min-num-to-rebase\0"
267 "Do not rebase if number of dependent constants of a Base is less than this number\0"
268 "-consthoist-with-block-frequency\0"
269 "Enable the use of the block frequency analysis to reduce the chance to execute const materialization more frequently than without hoisting\0"
270 "-constraint-elimination-dump-reproducers\0"
271 "Dump IR to reproduce successful transformations\0"
272 "-constraint-elimination-max-rows\0"
273 "Maximum number of rows to keep in constraint system\0"
274 "-dfa-cost-threshold\0"
275 "Maximum cost accepted for the transformation\0"
276 "-dfa-early-exit-heuristic\0"
277 "Exit early if an unpredictable value come from the same loop\0"
278 "-dfa-jump-view-cfg-before\0"
279 "View the CFG before DFA Jump Threading\0"
280 "-dfa-max-cloned-rate\0"
281 "Maximum cloned instructions rate accepted for the transformation\0"
282 "-dfa-max-num-paths\0"
283 "Max number of paths enumerated around a switch\0"
284 "-dfa-max-num-visited-paths\0"
285 "Max number of blocks visited while enumerating paths around a switch\0"
286 "-dfa-max-out-use-blocks\0"
287 "Maximum unduplicated blocks with outer uses accepted for the transformation\0"
288 "-dfa-max-path-length\0"
289 "Max number of blocks searched to find a threading path\0"
290 "-disable-lftr\0"
291 "Disable Linear Function Test Replace optimization\0"
292 "-disable-licm-promotion\0"
293 "Disable memory promotion in LICM pass\0"
294 "-disable-separate-const-offset-from-gep\0"
295 "Do not separate the constant offset from a GEP instruction\0"
296 "-disable-tail-call-elim-for-cold-calls\0"
297 "Disable tail call elimination and optimization for cold calls or in cold functions\0"
298 "-dse-max-dom-cond-depth\0"
299 "Max dominator tree recursion depth for eliminating redundant stores via dominating conditions\0"
300 "-dse-memoryssa-defs-per-block-limit\0"
301 "The number of MemoryDefs we consider as candidates to eliminated other stores per basic block\0"
302 "-dse-memoryssa-otherbb-cost\0"
303 "The cost of a step in a different basic block than the killing MemoryDef\0"
304 "-dse-memoryssa-partial-store-limit\0"
305 "The maximum number candidates that only partially overwrite the killing MemoryDef to consider\0"
306 "-dse-memoryssa-path-check-limit\0"
307 "The maximum number of blocks to check when trying to prove that all paths to an exit go through a killing block\0"
308 "-dse-memoryssa-samebb-cost\0"
309 "The cost of a step in the same basic block as the killing MemoryDef\0"
310 "-dse-memoryssa-scanlimit\0"
311 "The number of memory instructions to scan for dead store elimination\0"
312 "-dse-memoryssa-walklimit\0"
313 "The maximum number of steps while walking upwards to find MemoryDefs that may be killed\0"
314 "-dse-optimize-memoryssa\0"
315 "Allow DSE to optimize memory accesses\0"
316 "-earlycse-debug-hash\0"
317 "Perform extra assertion checking to verify that SimpleValue's hash function is well-behaved w.r.t. its isEqual predicate\0"
318 "-earlycse-mssa-optimization-cap\0"
319 "Enable imprecision in EarlyCSE in pathological cases, in exchange for faster compile. Caps the MemorySSA clobbering calls\0"
320 "-enable-dse-initializes-attr-improvement\0"
321 "Enable the initializes attr improvement in DSE\0"
322 "-enable-dse-partial-overwrite-tracking\0"
323 "Enable partial-overwrite tracking in DSE\0"
324 "-enable-dse-partial-store-merging\0"
325 "Enable partial store merging in DSE\0"
326 "-enable-gvn-memdep\0"
327 "-enable-gvn-memoryssa\0"
328 "-enable-load-in-loop-pre\0"
329 "-enable-load-pre\0"
330 "-enable-loop-distribute\0"
331 "Enable the new, experimental LoopDistribution Pass\0"
332 "-enable-loop-header-duplication-at-minsize\0"
333 "Enable loop header duplication even for minsize\0"
334 "-enable-loop-simplifycfg-term-folding\0"
335 "-enable-lsr-phielim\0"
336 "Enable LSR phi elimination\0"
337 "-enable-nontrivial-unswitch\0"
338 "Forcibly enables non-trivial loop unswitching rather than following the configuration passed into the pass\0"
339 "-enable-phi-of-ops\0"
340 "-enable-poison-reuse-guard\0"
341 "Enable poison-reuse guard\0"
342 "-enable-scalar-pre\0"
343 "-enable-split-backedge-in-load-pre\0"
344 "-enable-store-refinement\0"
345 "-enable-unswitch-cost-multiplier\0"
346 "Enable unswitch cost multiplier that prohibits exponential explosion in nontrivial unswitch\0"
347 "-flat-loop-tripcount-threshold\0"
348 "If the runtime tripcount for the loop is lower than the threshold, the loop is considered as flat and will be less aggressively unrolled\0"
349 "-float2int-max-integer-bw\0"
350 "Max integer bitwidth to consider in float2int\0"
351 "-force-fuse-matrix\0"
352 "Force matrix instruction fusion even if not profitable\0"
353 "-forget-scev-loop-unroll\0"
354 "Forget everything in SCEV when doing LoopUnroll, instead of just the current top-most loop. This is sometimes preferred to reduce compile time\0"
355 "-forward-switch-cond\0"
356 "Forward switch condition to phi ops\0"
357 "-freeze-loop-unswitch-cond\0"
358 "If enabled, the freeze instruction will be added to condition of loop unswitch to prevent miscompilation\0"
359 "-fuse-matrix-loops-threshold\0"
360 "Generate loop nests for tiling when expected number of operations exceeds threshold\0"
361 "-fuse-matrix-tile-size\0"
362 "Tile size for matrix instruction fusion using square-shaped tiles\0"
363 "-fuse-matrix\0"
364 "Enable/disable fusing matrix instructions\0"
365 "-guard-widening-widen-branch-guards\0"
366 "Whether or not we should widen guards expressed as branches by widenable conditions\0"
367 "-gvn-hoist-max-bbs\0"
368 "Max number of basic blocks on the path between hoisting locations (unlimited = -1)\0"
369 "-gvn-hoist-max-chain-length\0"
370 "Maximum length of dependent chains to hoist (unlimited = -1)\0"
371 "-gvn-hoist-max-depth\0"
372 "Hoist instructions from the beginning of the BB up to the maximum specified depth (unlimited = -1)\0"
373 "-gvn-max-block-speculations\0"
374 "Max number of blocks we're willing to speculate on (and recurse into) when deducing if a value is fully available or not in GVN\0"
375 "-gvn-max-hoisted\0"
376 "Max number of instructions to hoist (unlimited = -1)\0"
377 "-gvn-max-num-deps\0"
378 "Max number of dependences to attempt Load PRE\0"
379 "-gvn-max-num-insns\0"
380 "Max number of instructions to scan in each basic block in GVN\0"
381 "-gvn-max-num-reaching-blocks\0"
382 "Max number of blocks scanned per load in the MemorySSA reaching-value analysis\0"
383 "-gvn-max-num-visited-insts\0"
384 "Max number of visited instructions when trying to find dominating value of select dependency\0"
385 "-gvn-scan-users-limit\0"
386 "The number of memory accesses to scan in a block in reaching memory values analysis\0"
387 "-hoist-common-insts\0"
388 "hoist common instructions\0"
389 "-hoist-loads-stores-with-cond-faulting\0"
390 "Hoist loads/stores if the target supports conditional faulting\0"
391 "-indvars-post-increment-ranges\0"
392 "Use post increment control-dependent ranges in IndVarSimplify\0"
393 "-indvars-predicate-loop-traps\0"
394 "Predicate conditions that trap in loops with only local writes\0"
395 "-indvars-predicate-loops\0"
396 "Predicate conditions in read only loops\0"
397 "-indvars-widen-indvars\0"
398 "Allow widening of indvars to eliminate s/zext\0"
399 "-irce-allow-narrow-latch\0"
400 "If set to true, IRCE may eliminate wide range checks in loops with narrow latch condition\0"
401 "-irce-allow-unsigned-latch\0"
402 "-irce-loop-size-cutoff\0"
403 "-irce-max-type-size-for-overflow-check\0"
404 "Maximum size of range check type for which can be produced runtime overflow check of its limit's computation\0"
405 "-irce-min-eliminated-checks\0"
406 "-irce-print-changed-loops\0"
407 "-irce-print-range-checks\0"
408 "-irce-print-scaled-boundary-range-checks\0"
409 "-irce-skip-profitability-checks\0"
410 "-jump-table-to-switch-function-size-threshold\0"
411 "Only split jump tables containing functions whose sizes are less or equal than this threshold\0"
412 "-jump-table-to-switch-size-threshold\0"
413 "Only split jump tables with size less or equal than JumpTableSizeThreshold\0"
414 "-jump-threading-across-loop-headers\0"
415 "Allow JumpThreading to thread across loop headers, for testing\0"
416 "-jump-threading-implication-search-threshold\0"
417 "The number of predecessors to search for a stronger condition to use to thread over a weaker condition\0"
418 "-jump-threading-phi-threshold\0"
419 "Max PHIs in BB to duplicate for jump threading\0"
420 "-jump-threading-threshold\0"
421 "Max block size to duplicate for jump threading\0"
422 "-keep-loops\0"
423 "Preserve canonical loop structure\0"
424 "-licm-max-num-fp-reassociations\0"
425 "Set upper limit for the number of transformations performed during a single round of hoisting the reassociated expressions\0"
426 "-licm-max-num-int-reassociations\0"
427 "-licm-max-num-uses-traversed\0"
428 "Max num uses visited for identifying load invariance in loop using invariant start\0"
429 "-licm-mssa-max-acc-promotion\0"
430 "[LICM & MemorySSA] When MSSA in LICM is disabled, this has no effect. When MSSA in LICM is enabled, then this is the maximum number of accesses allowed to be present in a loop in order to enable memory promotion\0"
431 "-licm-mssa-optimization-cap\0"
432 "Enable imprecision in LICM in pathological cases, in exchange for faster compile. Caps the MemorySSA clobbering calls\0"
433 "-licm-versioning-invariant-threshold\0"
434 "LoopVersioningLICM's minimum allowed percentage of possible invariant instructions per loop\0"
435 "-licm-versioning-max-depth-threshold\0"
436 "LoopVersioningLICM's threshold for maximum allowed loop nest/depth\0"
437 "-likely-branch-weight\0"
438 "Weight of the branch likely to be taken\0"
439 "-loop-deletion-enable-symbolic-execution\0"
440 "Break backedge through symbolic execution of 1st iteration attempting to prove that the backedge is never taken\0"
441 "-loop-distribute-non-if-convertible\0"
442 "Whether to distribute into a loop that may not be if-convertible by the loop vectorizer\0"
443 "-loop-distribute-scev-check-threshold-with-pragma\0"
444 "The maximum number of SCEV checks allowed for Loop Distribution for loop marked with #pragma clang loop distribute(enable)\0"
445 "-loop-distribute-scev-check-threshold\0"
446 "The maximum number of SCEV checks allowed for Loop Distribution\0"
447 "-loop-distribute-verify\0"
448 "Turn on DominatorTree and LoopInfo verification after Loop Distribution\0"
449 "-loop-flatten-assume-no-overflow\0"
450 "Assume that the product of the two iteration trip counts will never overflow\0"
451 "-loop-flatten-cost-threshold\0"
452 "Limit on the cost of instructions that can be repeated due to loop flattening\0"
453 "-loop-flatten-version-loops\0"
454 "Version loops if flattened loop could overflow\0"
455 "-loop-flatten-widen-iv\0"
456 "Widen the loop induction variables, if possible, so overflow checks won't reject flattening\0"
457 "-loop-fusion-disable-cost-model\0"
458 "Do not apply cost model when deciding whether to fuse loops\0"
459 "-loop-fusion-min-reused-values\0"
460 "Minimum number of distinct values reused across fused loops\0"
461 "-loop-fusion-peel-max-count\0"
462 "Max number of iterations to be peeled from a loop, such that fusion can take place\0"
463 "-loop-fusion-verbose-debug\0"
464 "Enable verbose debugging for Loop Fusion\0"
465 "-loop-idiom-crc-strategy\0"
466 "Preferred strategy for optimizing CRC loops\0"
467 "<disable|auto|table|clmul>\0"
468 "disable,auto,table,clmul\0"
469 "-loop-idiom-force-memset-pattern-intrinsic\0"
470 "Use memset.pattern intrinsic whenever possible\0"
471 "-loop-interchange-max-loop-nest-depth\0"
472 "Maximum depth of loop nest considered for the transform\0"
473 "-loop-interchange-max-mem-instr-ratio\0"
474 "Maximum number of load/store instructions squared in relation to the total number of instructions. Higher value may lead to more interchanges at the cost of compile-time\0"
475 "-loop-interchange-min-loop-nest-depth\0"
476 "Minimum depth of loop nest considered for the transform\0"
477 "-loop-interchange-profitabilities\0"
478 "List of profitability heuristics to be used. They are applied in the given order\0"
479 "<cache|instorder|vectorize|ignore>\0"
480 "cache,instorder,vectorize,ignore\0"
481 "-loop-interchange-reduction-to-mem\0"
482 "Support for the inner-loop reduction pattern\0"
483 "-loop-interchange-threshold\0"
484 "Interchange if you gain more than this number\0"
485 "-loop-load-elimination-scev-check-threshold\0"
486 "The maximum number of SCEV checks allowed for Loop Load Elimination\0"
487 "-loop-predication-enable-count-down-loop\0"
488 "-loop-predication-enable-iv-truncation\0"
489 "-loop-predication-insert-assumes-of-predicated-guards-conditions\0"
490 "Whether or not we should insert assumes of conditions of predicated guards\0"
491 "-loop-predication-latch-probability-scale\0"
492 "scale factor for the latch probability. Value should be greater than 1. Lower values are ignored\0"
493 "-loop-predication-predicate-widenable-branches-to-deopt\0"
494 "Whether or not we should predicate guards expressed as widenable branches to deoptimize blocks\0"
495 "-loop-predication-skip-profitability-checks\0"
496 "-loop-prefetch-writes\0"
497 "Prefetch write addresses\0"
498 "-lsr-complexity-limit\0"
499 "LSR search space complexity limit\0"
500 "-lsr-drop-scaled-reg-for-vscale\0"
501 "Avoid using scaled registers with vscale-relative addressing\0"
502 "-lsr-drop-solution\0"
503 "Attempt to drop solution if it is less profitable\0"
504 "-lsr-enable-vscale-immediates\0"
505 "Enable analysis of vscale-relative immediates in LSR\0"
506 "-lsr-exp-narrow\0"
507 "Narrow LSR complex solution using expectation of registers number\0"
508 "-lsr-filter-same-scaled-reg\0"
509 "Narrow LSR search space by filtering non-optimal formulae with the same ScaledReg and Scale\0"
510 "-lsr-insns-cost\0"
511 "Add instruction count to a LSR cost model\0"
512 "-lsr-preferred-addressing-mode\0"
513 "A flag that overrides the target's preferred addressing mode\0"
514 "<none|preindexed|postindexed|all>\0"
515 "none,preindexed,postindexed,all\0"
516 "-lsr-setupcost-depth-limit\0"
517 "The limit on recursion depth for LSRs setup cost\0"
518 "-matrix-allow-contract\0"
519 "Allow the use of FMAs if available and profitable. This may result in different results, due to less rounding error\0"
520 "-matrix-default-layout\0"
521 "Sets the default matrix layout\0"
522 "<column-major|row-major>\0"
523 "column-major,row-major\0"
524 "-matrix-print-after-transpose-opt\0"
525 "-matrix-split-matmul-remainder-over-threshold\0"
526 "Illegal remainder vectors over this size in bits should be split in the inner loop of matmul\0"
527 "-max-loads-per-memcmp-opt-size\0"
528 "Set maximum number of loads used in expanded memcmp for -Os/Oz\0"
529 "-max-loads-per-memcmp\0"
530 "Set maximum number of loads used in expanded memcmp\0"
531 "-max-prefetch-iters-ahead\0"
532 "Max number of iterations to prefetch ahead\0"
533 "-max-uses-for-sinking\0"
534 "Do not sink instructions that have too many uses\0"
535 "-memcmp-num-loads-per-block\0"
536 "The number of loads per basic block for inline expansion of memcmp\0"
537 "-min-prefetch-stride\0"
538 "Min stride to add prefetches\0"
539 "-pragma-unroll-and-jam-threshold\0"
540 "Unrolled size limit for loops with an unroll_and_jam(full) or unroll_count pragma\0"
541 "-pragma-unroll-full-max-iterations\0"
542 "Maximum allowed iterations to unroll under pragma unroll full\0"
543 "-pragma-unroll-threshold\0"
544 "Unrolled size limit for loops with unroll metadata (full, enable, or count)\0"
545 "-prefetch-distance\0"
546 "Number of instructions to prefetch ahead\0"
547 "-reassociate-geps-verify-no-dead-code\0"
548 "Verify this pass produces no dead code\0"
549 "-reassociate-use-cse-local\0"
550 "Only reorder expressions within a basic block when exposing CSE opportunities\0"
551 "-replexitval\0"
552 "Choose the strategy to replace exit value in IndVarSimplify\0"
553 "<never|cheap|unusedindvarinloop|noharduse|always>\0"
554 "never,cheap,unusedindvarinloop,noharduse,always\0"
555 "-rotation-max-header-size\0"
556 "The default maximum header size for automatic loop rotation\0"
557 "-rotation-prepare-for-lto\0"
558 "Run loop-rotation in the prepare-for-lto stage. This option should be used for testing only\0"
559 "-rs4gc-allow-statepoint-with-no-deopt-info\0"
560 "-rs4gc-remat-derived-at-uses\0"
561 "-runtime-check-per-loop-load-elim\0"
562 "Max number of memchecks allowed per eliminated load on average\0"
563 "-simple-loop-unswitch-drop-non-trivial-implicit-null-checks\0"
564 "If enabled, drop make.implicit metadata in unswitched implicit null checks to save time analyzing if we can keep it\0"
565 "-simple-loop-unswitch-estimate-profile\0"
566 "-simple-loop-unswitch-guards\0"
567 "If enabled, simple loop unswitching will also consider llvm.experimental.guard intrinsics as unswitch candidates\0"
568 "-simple-loop-unswitch-inject-invariant-condition-hotness-threshold\0"
569 "Only try to inject loop invariant conditions and unswitch on them to eliminate branches that are not-taken 1/<this option> times or less\0"
570 "-simple-loop-unswitch-inject-invariant-conditions\0"
571 "Whether we should inject new invariants and unswitch them to eliminate some existing (non-invariant) conditions\0"
572 "-simple-loop-unswitch-memoryssa-threshold\0"
573 "Max number of memory uses to explore during partial unswitching analysis\0"
574 "-sink-common-insts\0"
575 "Sink common instructions\0"
576 "-sink-freq-percent-threshold\0"
577 "Do not sink instructions that require cloning unless they execute less than this percent of the time\0"
578 "-spec-exec-max-not-hoisted\0"
579 "Speculative execution is not applied to basic blocks where the number of instructions that would not be speculatively executed exceeds this limit\0"
580 "-spec-exec-max-speculation-cost\0"
581 "Speculative execution is not applied to basic blocks where the cost of the instructions to speculatively execute exceeds this limit\0"
582 "-spec-exec-only-if-divergent-target\0"
583 "Speculative execution is applied only to targets with divergent branches, even if the pass was configured to apply only to all targets\0"
584 "-speculate-unpredictables\0"
585 "Speculate unpredictable branches\0"
586 "-spp-all-backedges\0"
587 "-spp-counted-loop-trip-width\0"
588 "-spp-no-backedge\0"
589 "-spp-no-call\0"
590 "-spp-no-entry\0"
591 "-spp-print-base-pointers\0"
592 "-spp-print-liveset-size\0"
593 "-spp-print-liveset\0"
594 "-spp-rematerialization-threshold\0"
595 "-spp-split-backedge\0"
596 "-sroa-skip-mem2reg\0"
597 "-stress-ivchain\0"
598 "Stress test LSR IV chains\0"
599 "-structurizecfg-skip-uniform-regions\0"
600 "Force whether the StructurizeCFG pass skips uniform regions\0"
601 "-switch-range-to-icmp\0"
602 "Convert switches into an integer range comparison\0"
603 "-switch-to-lookup\0"
604 "Convert switches to lookup tables\0"
605 "-tre-disable-entrycount-recompute\0"
606 "Force disabling recomputing of function entry count, on successful tail recursion elimination\0"
607 "-unlikely-branch-weight\0"
608 "Weight of the branch unlikely to be taken\0"
609 "-unroll-allow-partial\0"
610 "Allows loops to be partially unrolled until -unroll-threshold loop size is reached\0"
611 "-unroll-allow-remainder\0"
612 "Allow generation of a loop remainder (extra iterations) when unrolling a loop\0"
613 "-unroll-and-jam-count\0"
614 "Use this unroll count for all loops including those with unroll_and_jam_count pragma values, for testing purposes\0"
615 "-unroll-and-jam-threshold\0"
616 "Threshold to use for inner loop when doing unroll and jam\0"
617 "-unroll-count\0"
618 "Use this unroll count for all loops including those with unroll_count pragma values, for testing purposes\0"
619 "-unroll-full-max-count\0"
620 "Set the max unroll count for full unrolling, for testing purposes\0"
621 "-unroll-max-count\0"
622 "Set the max unroll count for partial and runtime unrolling, fortesting purposes\0"
623 "-unroll-max-iteration-count-to-analyze\0"
624 "Don't allow loop unrolling to simulate more than this number of iterations when checking full unroll profitability\0"
625 "-unroll-max-percent-threshold-boost\0"
626 "The maximum 'boost' (represented as a percentage >= 100) applied to the threshold when aggressively unrolling a loop due to the dynamic cost savings. If completely unrolling a loop will reduce the total runtime from X to Y, we boost the loop unroll threshold to DefaultThreshold*std::min(MaxPercentThresholdBoost, X/Y). This limit avoids excessive code bloat\0"
627 "-unroll-max-upperbound\0"
628 "The max of trip count upper bound that is considered in unrolling\0"
629 "-unroll-optsize-threshold\0"
630 "The cost threshold for loop unrolling when optimizing for size\0"
631 "-unroll-partial-threshold\0"
632 "The cost threshold for partial loop unrolling\0"
633 "-unroll-remainder\0"
634 "Allow the loop remainder to be unrolled\0"
635 "-unroll-revisit-child-loops\0"
636 "Enqueue and re-visit child loops in the loop PM after unrolling. This shouldn't typically be needed as child loops (or their clones) were already visited\0"
637 "-unroll-runtime\0"
638 "Unroll loops with run-time trip counts\0"
639 "-unroll-threshold-aggressive\0"
640 "Threshold (max size of unrolled loop) to use in aggressive (O3) optimizations\0"
641 "-unroll-threshold-default\0"
642 "Default threshold (max size of unrolled loop), used in all but O3 optimizations\0"
643 "-unroll-threshold\0"
644 "The cost threshold for loop unrolling\0"
645 "-unswitch-num-initial-unscaled-candidates\0"
646 "Number of unswitch candidates that are ignored when calculating cost multiplier\0"
647 "-unswitch-parent-blocks-div\0"
648 "Outer loop size divisor for cost multiplier\0"
649 "-unswitch-siblings-toplevel-div\0"
650 "Toplevel siblings divisor for cost multiplier\0"
651 "-unswitch-threshold\0"
652 "The cost threshold for unswitching a loop\0"
653 "-use-lir-code-size-heurs\0"
654 "Use loop idiom recognition code size heuristics when compiling with -Os/-Oz\0"
655 "-verify-matrix-shapes\0"
656 "Enable/disable matrix shape verification\0"
657 ;
658#ifdef __GNUC__
659#pragma GCC diagnostic pop
660#endif
661
662static constexpr llvm::StringTable
663OptionStrTable = OptionStrTableStorage;
664
665 static constexpr llvm::StringTable::Offset OptionPrefixesTable[] = {
666 0 /* prefixes */,
667 2 /* prefixes */, 1 /* '-' */, 3 /* '--' */
668 };
669
670 static constexpr llvm::opt::OptTable::HelpTextVariant OptionHelpTextVariantsTable[] = {
671 {0, 0},
672 };
673
674 static constexpr unsigned OptionSubCommandIDsTable[] = {
675 0 /* subcommands */
676 };
677
678 static constexpr llvm::opt::OptTable::InfoExtra OptionInfoExtrasTable[] = {
679 {0, 0, 0, 0, 0, 0, 0, 0},
680 {0, 0, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
681 {10244, 0, 10271, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
682 {10897, 0, 10932, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
683 {12485, 0, 12519, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
684 {12820, 0, 12845, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
685 {14122, 0, 14172, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
686 };
687
688 static constexpr llvm::opt::OptTable::Info OptionInfoTable[] = {
689 {6 /* <input> */, 0, 0, 0, 1, 0, llvm::opt::Option::InputClass},
690 {14 /* <unknown> */, 0, 0, 0, 1, 0, llvm::opt::Option::UnknownClass},
691 {24 /* -adce-remove-control-flow */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
692 {52 /* -adce-remove-loops */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
693 {71 /* -allow-unroll-and-jam */, 93, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
694 {130 /* -bonus-inst-threshold */, 152, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
695 {193 /* -callsite-splitting-duplication-threshold */, 235, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
696 {318 /* -consthoist-gep */, 334, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
697 {372 /* -consthoist-min-num-to-rebase */, 402, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
698 {484 /* -consthoist-with-block-frequency */, 517, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
699 {656 /* -constraint-elimination-dump-reproducers */, 697, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
700 {745 /* -constraint-elimination-max-rows */, 778, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
701 {830 /* -dfa-cost-threshold */, 850, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
702 {895 /* -dfa-early-exit-heuristic */, 921, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
703 {982 /* -dfa-jump-view-cfg-before */, 1008, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
704 {1047 /* -dfa-max-cloned-rate */, 1068, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
705 {1133 /* -dfa-max-num-paths */, 1152, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
706 {1199 /* -dfa-max-num-visited-paths */, 1226, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
707 {1295 /* -dfa-max-out-use-blocks */, 1319, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
708 {1395 /* -dfa-max-path-length */, 1416, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
709 {1471 /* -disable-lftr */, 1485, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
710 {1535 /* -disable-licm-promotion */, 1559, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
711 {1597 /* -disable-separate-const-offset-from-gep */, 1637, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
712 {1696 /* -disable-tail-call-elim-for-cold-calls */, 1735, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
713 {1818 /* -dse-max-dom-cond-depth */, 1842, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
714 {1936 /* -dse-memoryssa-defs-per-block-limit */, 1972, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
715 {2066 /* -dse-memoryssa-otherbb-cost */, 2094, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
716 {2167 /* -dse-memoryssa-partial-store-limit */, 2202, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
717 {2296 /* -dse-memoryssa-path-check-limit */, 2328, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
718 {2440 /* -dse-memoryssa-samebb-cost */, 2467, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
719 {2535 /* -dse-memoryssa-scanlimit */, 2560, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
720 {2629 /* -dse-memoryssa-walklimit */, 2654, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
721 {2742 /* -dse-optimize-memoryssa */, 2766, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
722 {2804 /* -earlycse-debug-hash */, 2825, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
723 {2946 /* -earlycse-mssa-optimization-cap */, 2978, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
724 {3100 /* -enable-dse-initializes-attr-improvement */, 3141, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
725 {3188 /* -enable-dse-partial-overwrite-tracking */, 3227, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
726 {3268 /* -enable-dse-partial-store-merging */, 3302, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
727 {3338 /* -enable-gvn-memdep */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
728 {3357 /* -enable-gvn-memoryssa */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
729 {3379 /* -enable-load-in-loop-pre */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
730 {3404 /* -enable-load-pre */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
731 {3421 /* -enable-loop-distribute */, 3445, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
732 {3496 /* -enable-loop-header-duplication-at-minsize */, 3539, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
733 {3587 /* -enable-loop-simplifycfg-term-folding */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
734 {3625 /* -enable-lsr-phielim */, 3645, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
735 {3672 /* -enable-nontrivial-unswitch */, 3700, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
736 {3807 /* -enable-phi-of-ops */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
737 {3826 /* -enable-poison-reuse-guard */, 3853, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
738 {3879 /* -enable-scalar-pre */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
739 {3898 /* -enable-split-backedge-in-load-pre */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
740 {3933 /* -enable-store-refinement */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
741 {3958 /* -enable-unswitch-cost-multiplier */, 3991, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
742 {4083 /* -flat-loop-tripcount-threshold */, 4114, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
743 {4251 /* -float2int-max-integer-bw */, 4277, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
744 {4323 /* -force-fuse-matrix */, 4342, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
745 {4397 /* -forget-scev-loop-unroll */, 4422, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
746 {4565 /* -forward-switch-cond */, 4586, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
747 {4622 /* -freeze-loop-unswitch-cond */, 4649, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
748 {4754 /* -fuse-matrix-loops-threshold */, 4783, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
749 {4867 /* -fuse-matrix-tile-size */, 4890, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
750 {4956 /* -fuse-matrix */, 4969, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
751 {5011 /* -guard-widening-widen-branch-guards */, 5047, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
752 {5132 /* -gvn-hoist-max-bbs */, 5151, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
753 {5234 /* -gvn-hoist-max-chain-length */, 5262, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
754 {5323 /* -gvn-hoist-max-depth */, 5344, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
755 {5443 /* -gvn-max-block-speculations */, 5471, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
756 {5599 /* -gvn-max-hoisted */, 5616, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
757 {5669 /* -gvn-max-num-deps */, 5687, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
758 {5733 /* -gvn-max-num-insns */, 5752, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
759 {5814 /* -gvn-max-num-reaching-blocks */, 5843, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
760 {5922 /* -gvn-max-num-visited-insts */, 5949, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
761 {6042 /* -gvn-scan-users-limit */, 6064, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
762 {6148 /* -hoist-common-insts */, 6168, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
763 {6194 /* -hoist-loads-stores-with-cond-faulting */, 6233, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
764 {6296 /* -indvars-post-increment-ranges */, 6327, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
765 {6389 /* -indvars-predicate-loop-traps */, 6419, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
766 {6482 /* -indvars-predicate-loops */, 6507, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
767 {6547 /* -indvars-widen-indvars */, 6570, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
768 {6616 /* -irce-allow-narrow-latch */, 6641, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
769 {6731 /* -irce-allow-unsigned-latch */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
770 {6758 /* -irce-loop-size-cutoff */, 50, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
771 {6781 /* -irce-max-type-size-for-overflow-check */, 6820, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
772 {6929 /* -irce-min-eliminated-checks */, 50, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
773 {6957 /* -irce-print-changed-loops */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
774 {6983 /* -irce-print-range-checks */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
775 {7008 /* -irce-print-scaled-boundary-range-checks */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
776 {7049 /* -irce-skip-profitability-checks */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
777 {7081 /* -jump-table-to-switch-function-size-threshold */, 7127, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
778 {7221 /* -jump-table-to-switch-size-threshold */, 7258, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
779 {7333 /* -jump-threading-across-loop-headers */, 7369, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
780 {7432 /* -jump-threading-implication-search-threshold */, 7477, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
781 {7580 /* -jump-threading-phi-threshold */, 7610, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
782 {7657 /* -jump-threading-threshold */, 7683, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
783 {7730 /* -keep-loops */, 7742, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
784 {7776 /* -licm-max-num-fp-reassociations */, 7808, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
785 {7931 /* -licm-max-num-int-reassociations */, 7808, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
786 {7964 /* -licm-max-num-uses-traversed */, 7993, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
787 {8076 /* -licm-mssa-max-acc-promotion */, 8105, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
788 {8317 /* -licm-mssa-optimization-cap */, 8345, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
789 {8463 /* -licm-versioning-invariant-threshold */, 8500, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
790 {8592 /* -licm-versioning-max-depth-threshold */, 8629, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
791 {8696 /* -likely-branch-weight */, 8718, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
792 {8758 /* -loop-deletion-enable-symbolic-execution */, 8799, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
793 {8911 /* -loop-distribute-non-if-convertible */, 8947, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
794 {9035 /* -loop-distribute-scev-check-threshold-with-pragma */, 9085, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
795 {9208 /* -loop-distribute-scev-check-threshold */, 9246, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
796 {9310 /* -loop-distribute-verify */, 9334, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
797 {9406 /* -loop-flatten-assume-no-overflow */, 9439, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
798 {9516 /* -loop-flatten-cost-threshold */, 9545, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
799 {9623 /* -loop-flatten-version-loops */, 9651, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
800 {9698 /* -loop-flatten-widen-iv */, 9721, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
801 {9813 /* -loop-fusion-disable-cost-model */, 9845, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
802 {9905 /* -loop-fusion-min-reused-values */, 9936, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
803 {9996 /* -loop-fusion-peel-max-count */, 10024, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
804#if !defined(NDEBUG)
805 {10107 /* -loop-fusion-verbose-debug */, 10134, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
806#endif
807 {10175 /* -loop-idiom-crc-strategy */, 10200, 0, 0, 2, 1, llvm::opt::Option::SeparateOrEqClass},
808 {10296 /* -loop-idiom-force-memset-pattern-intrinsic */, 10339, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
809 {10386 /* -loop-interchange-max-loop-nest-depth */, 10424, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
810 {10480 /* -loop-interchange-max-mem-instr-ratio */, 10518, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
811 {10688 /* -loop-interchange-min-loop-nest-depth */, 10726, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
812 {10782 /* -loop-interchange-profitabilities */, 10816, 0, 0, 3, 1, llvm::opt::Option::SeparateOrEqClass},
813 {10965 /* -loop-interchange-reduction-to-mem */, 11000, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
814 {11045 /* -loop-interchange-threshold */, 11073, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
815 {11119 /* -loop-load-elimination-scev-check-threshold */, 11163, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
816 {11231 /* -loop-predication-enable-count-down-loop */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
817 {11272 /* -loop-predication-enable-iv-truncation */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
818 {11311 /* -loop-predication-insert-assumes-of-predicated-guards-conditions */, 11376, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
819 {11451 /* -loop-predication-latch-probability-scale */, 11493, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
820 {11590 /* -loop-predication-predicate-widenable-branches-to-deopt */, 11646, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
821 {11741 /* -loop-predication-skip-profitability-checks */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
822 {11785 /* -loop-prefetch-writes */, 11807, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
823 {11832 /* -lsr-complexity-limit */, 11854, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
824 {11888 /* -lsr-drop-scaled-reg-for-vscale */, 11920, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
825 {11981 /* -lsr-drop-solution */, 12000, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
826 {12050 /* -lsr-enable-vscale-immediates */, 12080, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
827 {12133 /* -lsr-exp-narrow */, 12149, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
828 {12215 /* -lsr-filter-same-scaled-reg */, 12243, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
829 {12335 /* -lsr-insns-cost */, 12351, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
830 {12393 /* -lsr-preferred-addressing-mode */, 12424, 0, 0, 4, 1, llvm::opt::Option::SeparateOrEqClass},
831 {12551 /* -lsr-setupcost-depth-limit */, 12578, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
832 {12627 /* -matrix-allow-contract */, 12650, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
833 {12766 /* -matrix-default-layout */, 12789, 0, 0, 5, 1, llvm::opt::Option::SeparateOrEqClass},
834 {12868 /* -matrix-print-after-transpose-opt */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
835 {12902 /* -matrix-split-matmul-remainder-over-threshold */, 12948, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
836 {13041 /* -max-loads-per-memcmp-opt-size */, 13072, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
837 {13135 /* -max-loads-per-memcmp */, 13157, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
838 {13209 /* -max-prefetch-iters-ahead */, 13235, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
839 {13278 /* -max-uses-for-sinking */, 13300, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
840 {13349 /* -memcmp-num-loads-per-block */, 13377, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
841 {13444 /* -min-prefetch-stride */, 13465, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
842 {13494 /* -pragma-unroll-and-jam-threshold */, 13527, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
843 {13609 /* -pragma-unroll-full-max-iterations */, 13644, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
844 {13706 /* -pragma-unroll-threshold */, 13731, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
845 {13807 /* -prefetch-distance */, 13826, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
846 {13867 /* -reassociate-geps-verify-no-dead-code */, 13905, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
847 {13944 /* -reassociate-use-cse-local */, 13971, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
848 {14049 /* -replexitval */, 14062, 0, 0, 6, 1, llvm::opt::Option::SeparateOrEqClass},
849 {14220 /* -rotation-max-header-size */, 14246, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
850 {14306 /* -rotation-prepare-for-lto */, 14332, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
851 {14424 /* -rs4gc-allow-statepoint-with-no-deopt-info */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
852 {14467 /* -rs4gc-remat-derived-at-uses */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
853 {14496 /* -runtime-check-per-loop-load-elim */, 14530, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
854 {14593 /* -simple-loop-unswitch-drop-non-trivial-implicit-null-checks */, 14653, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
855 {14769 /* -simple-loop-unswitch-estimate-profile */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
856 {14808 /* -simple-loop-unswitch-guards */, 14837, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
857 {14950 /* -simple-loop-unswitch-inject-invariant-condition-hotness-threshold */, 15017, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
858 {15154 /* -simple-loop-unswitch-inject-invariant-conditions */, 15204, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
859 {15316 /* -simple-loop-unswitch-memoryssa-threshold */, 15358, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
860 {15431 /* -sink-common-insts */, 15450, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
861 {15475 /* -sink-freq-percent-threshold */, 15504, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
862 {15605 /* -spec-exec-max-not-hoisted */, 15632, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
863 {15778 /* -spec-exec-max-speculation-cost */, 15810, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
864 {15942 /* -spec-exec-only-if-divergent-target */, 15978, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
865 {16113 /* -speculate-unpredictables */, 16139, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
866 {16172 /* -spp-all-backedges */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
867 {16191 /* -spp-counted-loop-trip-width */, 50, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
868 {16220 /* -spp-no-backedge */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
869 {16237 /* -spp-no-call */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
870 {16250 /* -spp-no-entry */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
871 {16264 /* -spp-print-base-pointers */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
872 {16289 /* -spp-print-liveset-size */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
873 {16313 /* -spp-print-liveset */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
874 {16332 /* -spp-rematerialization-threshold */, 50, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
875 {16365 /* -spp-split-backedge */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
876 {16385 /* -sroa-skip-mem2reg */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
877#if !defined(NDEBUG)
878 {16404 /* -stress-ivchain */, 16420, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
879#endif
880 {16446 /* -structurizecfg-skip-uniform-regions */, 16483, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
881 {16543 /* -switch-range-to-icmp */, 16565, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
882 {16615 /* -switch-to-lookup */, 16633, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
883 {16667 /* -tre-disable-entrycount-recompute */, 16701, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
884 {16795 /* -unlikely-branch-weight */, 16819, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
885 {16861 /* -unroll-allow-partial */, 16883, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
886 {16966 /* -unroll-allow-remainder */, 16990, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
887 {17068 /* -unroll-and-jam-count */, 17090, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
888 {17204 /* -unroll-and-jam-threshold */, 17230, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
889 {17288 /* -unroll-count */, 17302, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
890 {17408 /* -unroll-full-max-count */, 17431, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
891 {17497 /* -unroll-max-count */, 17515, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
892 {17595 /* -unroll-max-iteration-count-to-analyze */, 17634, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
893 {17749 /* -unroll-max-percent-threshold-boost */, 17785, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
894 {18144 /* -unroll-max-upperbound */, 18167, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
895 {18233 /* -unroll-optsize-threshold */, 18259, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
896 {18322 /* -unroll-partial-threshold */, 18348, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
897 {18394 /* -unroll-remainder */, 18412, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
898 {18452 /* -unroll-revisit-child-loops */, 18480, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
899 {18634 /* -unroll-runtime */, 18650, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
900 {18689 /* -unroll-threshold-aggressive */, 18718, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
901 {18796 /* -unroll-threshold-default */, 18822, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
902 {18902 /* -unroll-threshold */, 18920, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
903 {18958 /* -unswitch-num-initial-unscaled-candidates */, 19000, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
904 {19080 /* -unswitch-parent-blocks-div */, 19108, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
905 {19152 /* -unswitch-siblings-toplevel-div */, 19184, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
906 {19230 /* -unswitch-threshold */, 19250, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
907 {19292 /* -use-lir-code-size-heurs */, 19317, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
908 {19393 /* -verify-matrix-shapes */, 19415, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
909 };
910
911 return {OptionStrTable, OptionPrefixesTable,
912 OptionInfoTable, OptionInfoExtrasTable, OptionHelpTextVariantsTable, {}, OptionSubCommandIDsTable};
913}
914#undef OPTTABLE_CODE
915#endif // OPTTABLE_CODE || OPTIONS_STRUCT_DEFS
916
917
918#ifdef OPTIONS_STRUCT_DECL
919#undef OPTIONS_STRUCT_DECL
920#include "llvm/ADT/ArrayRef.h"
921#include "llvm/ADT/BoolOrDefault.h"
922#include "llvm/ADT/StringRef.h"
923#include "llvm/Support/Allocator.h"
924#include "llvm/Support/LibraryOptionsContext.h"
925
926namespace llvm {
927namespace opt {
928class Arg;
929class LibraryOptionsParser;
930class OptTable;
931} // namespace opt
932} // namespace llvm
933
934namespace llvm {
935struct ScalarOptions {
936 bool adce_remove_control_flow{true};
937 bool adce_remove_loops{false};
938 unsigned callsite_splitting_duplication_threshold{5};
939 bool consthoist_gep{false};
940 unsigned consthoist_min_num_to_rebase{0};
941 bool consthoist_with_block_frequency{true};
942 bool constraint_elimination_dump_reproducers{false};
943 unsigned constraint_elimination_max_rows{500};
944 unsigned dse_max_dom_cond_depth{1024};
945 unsigned dse_memoryssa_defs_per_block_limit{5000};
946 unsigned dse_memoryssa_otherbb_cost{5};
947 unsigned dse_memoryssa_partial_store_limit{5};
948 unsigned dse_memoryssa_path_check_limit{50};
949 unsigned dse_memoryssa_samebb_cost{1};
950 unsigned dse_memoryssa_scanlimit{150};
951 unsigned dse_memoryssa_walklimit{90};
952 bool dse_optimize_memoryssa{true};
953 bool enable_dse_initializes_attr_improvement{true};
954 bool enable_dse_partial_overwrite_tracking{true};
955 bool enable_dse_partial_store_merging{true};
956 unsigned dfa_cost_threshold{50};
957 bool dfa_early_exit_heuristic{true};
958 bool dfa_jump_view_cfg_before{false};
959 double dfa_max_cloned_rate{7.5};
960 unsigned dfa_max_num_paths{200};
961 unsigned dfa_max_num_visited_paths{2500};
962 unsigned dfa_max_out_use_blocks{40};
963 unsigned dfa_max_path_length{20};
964 bool earlycse_debug_hash{false};
965 unsigned earlycse_mssa_optimization_cap{500};
966 std::optional<unsigned> max_loads_per_memcmp{};
967 std::optional<unsigned> max_loads_per_memcmp_opt_size{};
968 std::optional<unsigned> memcmp_num_loads_per_block{};
969 unsigned float2int_max_integer_bw{64};
970 bool guard_widening_widen_branch_guards{true};
971 llvm::BoolOrDefault enable_gvn_memdep{llvm::BoolOrDefault::Default};
972 bool enable_gvn_memoryssa{false};
973 bool enable_load_in_loop_pre{true};
974 bool enable_load_pre{true};
975 bool enable_scalar_pre{true};
976 bool enable_split_backedge_in_load_pre{false};
977 uint32_t gvn_max_block_speculations{600};
978 uint32_t gvn_max_num_deps{100};
979 uint32_t gvn_max_num_insns{100};
980 uint32_t gvn_max_num_reaching_blocks{200};
981 uint32_t gvn_max_num_visited_insts{100};
982 unsigned gvn_scan_users_limit{100};
983 int gvn_hoist_max_bbs{4};
984 int gvn_hoist_max_chain_length{10};
985 int gvn_hoist_max_depth{100};
986 int gvn_max_hoisted{-1};
987 bool irce_allow_narrow_latch{true};
988 bool irce_allow_unsigned_latch{true};
989 unsigned irce_loop_size_cutoff{64};
990 unsigned irce_max_type_size_for_overflow_check{32};
991 unsigned irce_min_eliminated_checks{10};
992 bool irce_print_changed_loops{false};
993 bool irce_print_range_checks{false};
994 bool irce_print_scaled_boundary_range_checks{false};
995 bool irce_skip_profitability_checks{false};
996 bool disable_lftr{false};
997 bool indvars_post_increment_ranges{true};
998 bool indvars_predicate_loop_traps{true};
999 bool indvars_predicate_loops{true};
1000 bool indvars_widen_indvars{true};
1001 ReplaceExitVal replexitval{OnlyCheapRepl};
1002 unsigned jump_table_to_switch_function_size_threshold{50};
1003 unsigned jump_table_to_switch_size_threshold{10};
1004 bool jump_threading_across_loop_headers{false};
1005 unsigned jump_threading_implication_search_threshold{3};
1006 unsigned jump_threading_phi_threshold{76};
1007 std::optional<unsigned> jump_threading_threshold{};
1008 bool disable_licm_promotion{false};
1009 unsigned licm_max_num_fp_reassociations{5U};
1010 unsigned licm_max_num_int_reassociations{5U};
1011 uint32_t licm_max_num_uses_traversed{8};
1012 unsigned licm_mssa_max_acc_promotion{250};
1013 unsigned licm_mssa_optimization_cap{100};
1014 llvm::BoolOrDefault loop_prefetch_writes{llvm::BoolOrDefault::Default};
1015 std::optional<unsigned> max_prefetch_iters_ahead{};
1016 std::optional<unsigned> min_prefetch_stride{};
1017 std::optional<unsigned> prefetch_distance{};
1018 bool loop_deletion_enable_symbolic_execution{true};
1019 bool enable_loop_distribute{false};
1020 bool loop_distribute_non_if_convertible{false};
1021 unsigned loop_distribute_scev_check_threshold{8};
1022 unsigned loop_distribute_scev_check_threshold_with_pragma{128};
1023 bool loop_distribute_verify{false};
1024 bool loop_flatten_assume_no_overflow{false};
1025 unsigned loop_flatten_cost_threshold{2};
1026 bool loop_flatten_version_loops{true};
1027 bool loop_flatten_widen_iv{true};
1028 uint32_t loop_fusion_peel_max_count{0};
1029 unsigned loop_fusion_min_reused_values{1};
1030 bool loop_fusion_disable_cost_model{false};
1031#if !defined(NDEBUG)
1032 bool loop_fusion_verbose_debug{false};
1033#endif
1034 CRCStrategyKind loop_idiom_crc_strategy{CRCStrategyKind::Auto};
1035 bool loop_idiom_force_memset_pattern_intrinsic{false};
1036 bool use_lir_code_size_heurs{true};
1037 unsigned loop_interchange_max_loop_nest_depth{10};
1038 unsigned loop_interchange_max_mem_instr_ratio{4};
1039 unsigned loop_interchange_min_loop_nest_depth{2};
1040 llvm::ArrayRef<LoopInterchangeRule> loop_interchange_profitabilities{};
1041 bool loop_interchange_reduction_to_mem{false};
1042 int loop_interchange_threshold{0};
1043 unsigned loop_load_elimination_scev_check_threshold{8};
1044 unsigned runtime_check_per_loop_load_elim{1};
1045 bool loop_predication_enable_count_down_loop{true};
1046 bool loop_predication_enable_iv_truncation{true};
1047 bool loop_predication_insert_assumes_of_predicated_guards_conditions{true};
1048 float loop_predication_latch_probability_scale{2.0};
1049 bool loop_predication_predicate_widenable_branches_to_deopt{true};
1050 bool loop_predication_skip_profitability_checks{false};
1051 bool enable_loop_header_duplication_at_minsize{false};
1052 unsigned rotation_max_header_size{16};
1053 bool rotation_prepare_for_lto{false};
1054 bool enable_loop_simplifycfg_term_folding{true};
1055 unsigned max_uses_for_sinking{30};
1056 unsigned sink_freq_percent_threshold{90};
1057 bool enable_lsr_phielim{true};
1058 unsigned lsr_complexity_limit{std::numeric_limits<uint16_t>::max()};
1059 bool lsr_drop_scaled_reg_for_vscale{true};
1060 llvm::BoolOrDefault lsr_drop_solution{llvm::BoolOrDefault::Default};
1061 bool lsr_enable_vscale_immediates{true};
1062 bool lsr_exp_narrow{false};
1063 bool lsr_filter_same_scaled_reg{true};
1064 llvm::BoolOrDefault lsr_insns_cost{llvm::BoolOrDefault::Default};
1065 std::optional<TargetTransformInfo::AddressingModeKind> lsr_preferred_addressing_mode{};
1066 unsigned lsr_setupcost_depth_limit{7};
1067#if !defined(NDEBUG)
1068 bool stress_ivchain{false};
1069#endif
1070 llvm::BoolOrDefault allow_unroll_and_jam{llvm::BoolOrDefault::Default};
1071 unsigned pragma_unroll_and_jam_threshold{1024};
1072 std::optional<unsigned> unroll_and_jam_count{};
1073 std::optional<unsigned> unroll_and_jam_threshold{};
1074 unsigned flat_loop_tripcount_threshold{5};
1075 bool forget_scev_loop_unroll{false};
1076 unsigned pragma_unroll_full_max_iterations{1'000'000};
1077 unsigned pragma_unroll_threshold{16 * 1024};
1078 llvm::BoolOrDefault unroll_allow_partial{llvm::BoolOrDefault::Default};
1079 llvm::BoolOrDefault unroll_allow_remainder{llvm::BoolOrDefault::Default};
1080 std::optional<unsigned> unroll_count{};
1081 std::optional<unsigned> unroll_full_max_count{};
1082 std::optional<unsigned> unroll_max_count{};
1083 std::optional<unsigned> unroll_max_iteration_count_to_analyze{};
1084 std::optional<unsigned> unroll_max_percent_threshold_boost{};
1085 std::optional<unsigned> unroll_max_upperbound{};
1086 unsigned unroll_optsize_threshold{0};
1087 std::optional<unsigned> unroll_partial_threshold{};
1088 llvm::BoolOrDefault unroll_remainder{llvm::BoolOrDefault::Default};
1089 bool unroll_revisit_child_loops{false};
1090 llvm::BoolOrDefault unroll_runtime{llvm::BoolOrDefault::Default};
1091 std::optional<unsigned> unroll_threshold{};
1092 unsigned unroll_threshold_aggressive{300};
1093 unsigned unroll_threshold_default{150};
1094 float licm_versioning_invariant_threshold{25};
1095 unsigned licm_versioning_max_depth_threshold{2};
1096 uint32_t likely_branch_weight{2000};
1097 uint32_t unlikely_branch_weight{1};
1098 bool force_fuse_matrix{false};
1099 bool fuse_matrix{true};
1100 unsigned fuse_matrix_loops_threshold{200};
1101 unsigned fuse_matrix_tile_size{4};
1102 bool matrix_allow_contract{false};
1103 MatrixLayoutTy matrix_default_layout{MatrixLayoutTy::ColumnMajor};
1104 bool matrix_print_after_transpose_opt{false};
1105 unsigned matrix_split_matmul_remainder_over_threshold{0};
1106 bool verify_matrix_shapes{false};
1107 bool enable_phi_of_ops{true};
1108 bool enable_store_refinement{false};
1109 bool spp_all_backedges{false};
1110 int spp_counted_loop_trip_width{32};
1111 bool spp_no_backedge{false};
1112 bool spp_no_call{false};
1113 bool spp_no_entry{false};
1114 bool spp_split_backedge{false};
1115 bool reassociate_use_cse_local{true};
1116 bool rs4gc_allow_statepoint_with_no_deopt_info{true};
1117 bool rs4gc_remat_derived_at_uses{true};
1118 bool spp_print_base_pointers{false};
1119 bool spp_print_liveset{false};
1120 bool spp_print_liveset_size{false};
1121 unsigned spp_rematerialization_threshold{6};
1122 bool disable_separate_const_offset_from_gep{false};
1123 bool reassociate_geps_verify_no_dead_code{false};
1124 bool enable_nontrivial_unswitch{false};
1125 bool enable_unswitch_cost_multiplier{true};
1126 bool freeze_loop_unswitch_cond{true};
1127 bool simple_loop_unswitch_drop_non_trivial_implicit_null_checks{false};
1128 bool simple_loop_unswitch_estimate_profile{true};
1129 bool simple_loop_unswitch_guards{true};
1130 unsigned simple_loop_unswitch_inject_invariant_condition_hotness_threshold{16};
1131 bool simple_loop_unswitch_inject_invariant_conditions{true};
1132 unsigned simple_loop_unswitch_memoryssa_threshold{100};
1133 int unswitch_num_initial_unscaled_candidates{8};
1134 int unswitch_parent_blocks_div{8};
1135 int unswitch_siblings_toplevel_div{2};
1136 int unswitch_threshold{50};
1137 std::optional<unsigned> bonus_inst_threshold{};
1138 llvm::BoolOrDefault forward_switch_cond{llvm::BoolOrDefault::Default};
1139 llvm::BoolOrDefault hoist_common_insts{llvm::BoolOrDefault::Default};
1140 llvm::BoolOrDefault hoist_loads_stores_with_cond_faulting{llvm::BoolOrDefault::Default};
1141 llvm::BoolOrDefault keep_loops{llvm::BoolOrDefault::Default};
1142 llvm::BoolOrDefault sink_common_insts{llvm::BoolOrDefault::Default};
1143 llvm::BoolOrDefault speculate_unpredictables{llvm::BoolOrDefault::Default};
1144 llvm::BoolOrDefault switch_range_to_icmp{llvm::BoolOrDefault::Default};
1145 llvm::BoolOrDefault switch_to_lookup{llvm::BoolOrDefault::Default};
1146 unsigned spec_exec_max_not_hoisted{5};
1147 unsigned spec_exec_max_speculation_cost{7};
1148 bool spec_exec_only_if_divergent_target{false};
1149 bool sroa_skip_mem2reg{false};
1150 bool enable_poison_reuse_guard{true};
1151 llvm::BoolOrDefault structurizecfg_skip_uniform_regions{llvm::BoolOrDefault::Default};
1152 bool disable_tail_call_elim_for_cold_calls{false};
1153 bool tre_disable_entrycount_recompute{false};
1154
1155 static constexpr bool PerContext = true;
1156 static const llvm::opt::OptTable &optTable();
1157 /// Sets the member that \p A names, allocating a list from \p Alloc.
1158 /// Returns false if the value is invalid.
1159 bool apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc);
1160
1161private:
1162 friend class llvm::cl::LibraryOptionsContext;
1163 friend class llvm::opt::LibraryOptionsParser;
1164
1165 static ScalarOptions Global;
1166 static const ScalarOptions Default;
1167};
1168} // namespace llvm
1169#endif // OPTIONS_STRUCT_DECL
1170
1171#ifdef OPTIONS_STRUCT_DEFS
1172#undef OPTIONS_STRUCT_DEFS
1173llvm::ScalarOptions llvm::ScalarOptions::Global;
1174LLVM_REQUIRE_CONSTANT_INITIALIZATION const llvm::ScalarOptions llvm::ScalarOptions::Default;
1175
1176const llvm::opt::OptTable &llvm::ScalarOptions::optTable() {
1177 static const llvm::opt::LibraryOptTable T(optionTables());
1178 return T;
1179}
1180
1181bool llvm::ScalarOptions::apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc) {
1182 switch (A.getOption().getID()) {
1183 case OPT_adce_remove_control_flow:
1184 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", adce_remove_control_flow, Alloc);
1185 case OPT_adce_remove_loops:
1186 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", adce_remove_loops, Alloc);
1187 case OPT_allow_unroll_and_jam:
1188 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", allow_unroll_and_jam, Alloc);
1189 case OPT_bonus_inst_threshold:
1190 return llvm::opt::parseArgValue(A.getValue(), bonus_inst_threshold, Alloc);
1191 case OPT_callsite_splitting_duplication_threshold:
1192 return llvm::opt::parseArgValue(A.getValue(), callsite_splitting_duplication_threshold, Alloc);
1193 case OPT_consthoist_gep:
1194 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", consthoist_gep, Alloc);
1195 case OPT_consthoist_min_num_to_rebase:
1196 return llvm::opt::parseArgValue(A.getValue(), consthoist_min_num_to_rebase, Alloc);
1197 case OPT_consthoist_with_block_frequency:
1198 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", consthoist_with_block_frequency, Alloc);
1199 case OPT_constraint_elimination_dump_reproducers:
1200 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", constraint_elimination_dump_reproducers, Alloc);
1201 case OPT_constraint_elimination_max_rows:
1202 return llvm::opt::parseArgValue(A.getValue(), constraint_elimination_max_rows, Alloc);
1203 case OPT_dfa_cost_threshold:
1204 return llvm::opt::parseArgValue(A.getValue(), dfa_cost_threshold, Alloc);
1205 case OPT_dfa_early_exit_heuristic:
1206 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfa_early_exit_heuristic, Alloc);
1207 case OPT_dfa_jump_view_cfg_before:
1208 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dfa_jump_view_cfg_before, Alloc);
1209 case OPT_dfa_max_cloned_rate:
1210 return llvm::opt::parseArgValue(A.getValue(), dfa_max_cloned_rate, Alloc);
1211 case OPT_dfa_max_num_paths:
1212 return llvm::opt::parseArgValue(A.getValue(), dfa_max_num_paths, Alloc);
1213 case OPT_dfa_max_num_visited_paths:
1214 return llvm::opt::parseArgValue(A.getValue(), dfa_max_num_visited_paths, Alloc);
1215 case OPT_dfa_max_out_use_blocks:
1216 return llvm::opt::parseArgValue(A.getValue(), dfa_max_out_use_blocks, Alloc);
1217 case OPT_dfa_max_path_length:
1218 return llvm::opt::parseArgValue(A.getValue(), dfa_max_path_length, Alloc);
1219 case OPT_disable_lftr:
1220 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_lftr, Alloc);
1221 case OPT_disable_licm_promotion:
1222 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_licm_promotion, Alloc);
1223 case OPT_disable_separate_const_offset_from_gep:
1224 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_separate_const_offset_from_gep, Alloc);
1225 case OPT_disable_tail_call_elim_for_cold_calls:
1226 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_tail_call_elim_for_cold_calls, Alloc);
1227 case OPT_dse_max_dom_cond_depth:
1228 return llvm::opt::parseArgValue(A.getValue(), dse_max_dom_cond_depth, Alloc);
1229 case OPT_dse_memoryssa_defs_per_block_limit:
1230 return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_defs_per_block_limit, Alloc);
1231 case OPT_dse_memoryssa_otherbb_cost:
1232 return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_otherbb_cost, Alloc);
1233 case OPT_dse_memoryssa_partial_store_limit:
1234 return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_partial_store_limit, Alloc);
1235 case OPT_dse_memoryssa_path_check_limit:
1236 return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_path_check_limit, Alloc);
1237 case OPT_dse_memoryssa_samebb_cost:
1238 return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_samebb_cost, Alloc);
1239 case OPT_dse_memoryssa_scanlimit:
1240 return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_scanlimit, Alloc);
1241 case OPT_dse_memoryssa_walklimit:
1242 return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_walklimit, Alloc);
1243 case OPT_dse_optimize_memoryssa:
1244 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", dse_optimize_memoryssa, Alloc);
1245 case OPT_earlycse_debug_hash:
1246 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", earlycse_debug_hash, Alloc);
1247 case OPT_earlycse_mssa_optimization_cap:
1248 return llvm::opt::parseArgValue(A.getValue(), earlycse_mssa_optimization_cap, Alloc);
1249 case OPT_enable_dse_initializes_attr_improvement:
1250 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_dse_initializes_attr_improvement, Alloc);
1251 case OPT_enable_dse_partial_overwrite_tracking:
1252 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_dse_partial_overwrite_tracking, Alloc);
1253 case OPT_enable_dse_partial_store_merging:
1254 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_dse_partial_store_merging, Alloc);
1255 case OPT_enable_gvn_memdep:
1256 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_gvn_memdep, Alloc);
1257 case OPT_enable_gvn_memoryssa:
1258 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_gvn_memoryssa, Alloc);
1259 case OPT_enable_load_in_loop_pre:
1260 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_load_in_loop_pre, Alloc);
1261 case OPT_enable_load_pre:
1262 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_load_pre, Alloc);
1263 case OPT_enable_loop_distribute:
1264 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_loop_distribute, Alloc);
1265 case OPT_enable_loop_header_duplication_at_minsize:
1266 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_loop_header_duplication_at_minsize, Alloc);
1267 case OPT_enable_loop_simplifycfg_term_folding:
1268 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_loop_simplifycfg_term_folding, Alloc);
1269 case OPT_enable_lsr_phielim:
1270 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_lsr_phielim, Alloc);
1271 case OPT_enable_nontrivial_unswitch:
1272 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_nontrivial_unswitch, Alloc);
1273 case OPT_enable_phi_of_ops:
1274 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_phi_of_ops, Alloc);
1275 case OPT_enable_poison_reuse_guard:
1276 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_poison_reuse_guard, Alloc);
1277 case OPT_enable_scalar_pre:
1278 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_scalar_pre, Alloc);
1279 case OPT_enable_split_backedge_in_load_pre:
1280 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_split_backedge_in_load_pre, Alloc);
1281 case OPT_enable_store_refinement:
1282 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_store_refinement, Alloc);
1283 case OPT_enable_unswitch_cost_multiplier:
1284 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_unswitch_cost_multiplier, Alloc);
1285 case OPT_flat_loop_tripcount_threshold:
1286 return llvm::opt::parseArgValue(A.getValue(), flat_loop_tripcount_threshold, Alloc);
1287 case OPT_float2int_max_integer_bw:
1288 return llvm::opt::parseArgValue(A.getValue(), float2int_max_integer_bw, Alloc);
1289 case OPT_force_fuse_matrix:
1290 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", force_fuse_matrix, Alloc);
1291 case OPT_forget_scev_loop_unroll:
1292 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", forget_scev_loop_unroll, Alloc);
1293 case OPT_forward_switch_cond:
1294 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", forward_switch_cond, Alloc);
1295 case OPT_freeze_loop_unswitch_cond:
1296 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", freeze_loop_unswitch_cond, Alloc);
1297 case OPT_fuse_matrix_loops_threshold:
1298 return llvm::opt::parseArgValue(A.getValue(), fuse_matrix_loops_threshold, Alloc);
1299 case OPT_fuse_matrix_tile_size:
1300 return llvm::opt::parseArgValue(A.getValue(), fuse_matrix_tile_size, Alloc);
1301 case OPT_fuse_matrix:
1302 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", fuse_matrix, Alloc);
1303 case OPT_guard_widening_widen_branch_guards:
1304 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", guard_widening_widen_branch_guards, Alloc);
1305 case OPT_gvn_hoist_max_bbs:
1306 return llvm::opt::parseArgValue(A.getValue(), gvn_hoist_max_bbs, Alloc);
1307 case OPT_gvn_hoist_max_chain_length:
1308 return llvm::opt::parseArgValue(A.getValue(), gvn_hoist_max_chain_length, Alloc);
1309 case OPT_gvn_hoist_max_depth:
1310 return llvm::opt::parseArgValue(A.getValue(), gvn_hoist_max_depth, Alloc);
1311 case OPT_gvn_max_block_speculations:
1312 return llvm::opt::parseArgValue(A.getValue(), gvn_max_block_speculations, Alloc);
1313 case OPT_gvn_max_hoisted:
1314 return llvm::opt::parseArgValue(A.getValue(), gvn_max_hoisted, Alloc);
1315 case OPT_gvn_max_num_deps:
1316 return llvm::opt::parseArgValue(A.getValue(), gvn_max_num_deps, Alloc);
1317 case OPT_gvn_max_num_insns:
1318 return llvm::opt::parseArgValue(A.getValue(), gvn_max_num_insns, Alloc);
1319 case OPT_gvn_max_num_reaching_blocks:
1320 return llvm::opt::parseArgValue(A.getValue(), gvn_max_num_reaching_blocks, Alloc);
1321 case OPT_gvn_max_num_visited_insts:
1322 return llvm::opt::parseArgValue(A.getValue(), gvn_max_num_visited_insts, Alloc);
1323 case OPT_gvn_scan_users_limit:
1324 return llvm::opt::parseArgValue(A.getValue(), gvn_scan_users_limit, Alloc);
1325 case OPT_hoist_common_insts:
1326 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hoist_common_insts, Alloc);
1327 case OPT_hoist_loads_stores_with_cond_faulting:
1328 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", hoist_loads_stores_with_cond_faulting, Alloc);
1329 case OPT_indvars_post_increment_ranges:
1330 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", indvars_post_increment_ranges, Alloc);
1331 case OPT_indvars_predicate_loop_traps:
1332 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", indvars_predicate_loop_traps, Alloc);
1333 case OPT_indvars_predicate_loops:
1334 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", indvars_predicate_loops, Alloc);
1335 case OPT_indvars_widen_indvars:
1336 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", indvars_widen_indvars, Alloc);
1337 case OPT_irce_allow_narrow_latch:
1338 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", irce_allow_narrow_latch, Alloc);
1339 case OPT_irce_allow_unsigned_latch:
1340 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", irce_allow_unsigned_latch, Alloc);
1341 case OPT_irce_loop_size_cutoff:
1342 return llvm::opt::parseArgValue(A.getValue(), irce_loop_size_cutoff, Alloc);
1343 case OPT_irce_max_type_size_for_overflow_check:
1344 return llvm::opt::parseArgValue(A.getValue(), irce_max_type_size_for_overflow_check, Alloc);
1345 case OPT_irce_min_eliminated_checks:
1346 return llvm::opt::parseArgValue(A.getValue(), irce_min_eliminated_checks, Alloc);
1347 case OPT_irce_print_changed_loops:
1348 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", irce_print_changed_loops, Alloc);
1349 case OPT_irce_print_range_checks:
1350 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", irce_print_range_checks, Alloc);
1351 case OPT_irce_print_scaled_boundary_range_checks:
1352 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", irce_print_scaled_boundary_range_checks, Alloc);
1353 case OPT_irce_skip_profitability_checks:
1354 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", irce_skip_profitability_checks, Alloc);
1355 case OPT_jump_table_to_switch_function_size_threshold:
1356 return llvm::opt::parseArgValue(A.getValue(), jump_table_to_switch_function_size_threshold, Alloc);
1357 case OPT_jump_table_to_switch_size_threshold:
1358 return llvm::opt::parseArgValue(A.getValue(), jump_table_to_switch_size_threshold, Alloc);
1359 case OPT_jump_threading_across_loop_headers:
1360 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", jump_threading_across_loop_headers, Alloc);
1361 case OPT_jump_threading_implication_search_threshold:
1362 return llvm::opt::parseArgValue(A.getValue(), jump_threading_implication_search_threshold, Alloc);
1363 case OPT_jump_threading_phi_threshold:
1364 return llvm::opt::parseArgValue(A.getValue(), jump_threading_phi_threshold, Alloc);
1365 case OPT_jump_threading_threshold:
1366 return llvm::opt::parseArgValue(A.getValue(), jump_threading_threshold, Alloc);
1367 case OPT_keep_loops:
1368 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", keep_loops, Alloc);
1369 case OPT_licm_max_num_fp_reassociations:
1370 return llvm::opt::parseArgValue(A.getValue(), licm_max_num_fp_reassociations, Alloc);
1371 case OPT_licm_max_num_int_reassociations:
1372 return llvm::opt::parseArgValue(A.getValue(), licm_max_num_int_reassociations, Alloc);
1373 case OPT_licm_max_num_uses_traversed:
1374 return llvm::opt::parseArgValue(A.getValue(), licm_max_num_uses_traversed, Alloc);
1375 case OPT_licm_mssa_max_acc_promotion:
1376 return llvm::opt::parseArgValue(A.getValue(), licm_mssa_max_acc_promotion, Alloc);
1377 case OPT_licm_mssa_optimization_cap:
1378 return llvm::opt::parseArgValue(A.getValue(), licm_mssa_optimization_cap, Alloc);
1379 case OPT_licm_versioning_invariant_threshold:
1380 return llvm::opt::parseArgValue(A.getValue(), licm_versioning_invariant_threshold, Alloc);
1381 case OPT_licm_versioning_max_depth_threshold:
1382 return llvm::opt::parseArgValue(A.getValue(), licm_versioning_max_depth_threshold, Alloc);
1383 case OPT_likely_branch_weight:
1384 return llvm::opt::parseArgValue(A.getValue(), likely_branch_weight, Alloc);
1385 case OPT_loop_deletion_enable_symbolic_execution:
1386 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_deletion_enable_symbolic_execution, Alloc);
1387 case OPT_loop_distribute_non_if_convertible:
1388 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_distribute_non_if_convertible, Alloc);
1389 case OPT_loop_distribute_scev_check_threshold_with_pragma:
1390 return llvm::opt::parseArgValue(A.getValue(), loop_distribute_scev_check_threshold_with_pragma, Alloc);
1391 case OPT_loop_distribute_scev_check_threshold:
1392 return llvm::opt::parseArgValue(A.getValue(), loop_distribute_scev_check_threshold, Alloc);
1393 case OPT_loop_distribute_verify:
1394 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_distribute_verify, Alloc);
1395 case OPT_loop_flatten_assume_no_overflow:
1396 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_flatten_assume_no_overflow, Alloc);
1397 case OPT_loop_flatten_cost_threshold:
1398 return llvm::opt::parseArgValue(A.getValue(), loop_flatten_cost_threshold, Alloc);
1399 case OPT_loop_flatten_version_loops:
1400 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_flatten_version_loops, Alloc);
1401 case OPT_loop_flatten_widen_iv:
1402 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_flatten_widen_iv, Alloc);
1403 case OPT_loop_fusion_disable_cost_model:
1404 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_fusion_disable_cost_model, Alloc);
1405 case OPT_loop_fusion_min_reused_values:
1406 return llvm::opt::parseArgValue(A.getValue(), loop_fusion_min_reused_values, Alloc);
1407 case OPT_loop_fusion_peel_max_count:
1408 return llvm::opt::parseArgValue(A.getValue(), loop_fusion_peel_max_count, Alloc);
1409#if !defined(NDEBUG)
1410 case OPT_loop_fusion_verbose_debug:
1411 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_fusion_verbose_debug, Alloc);
1412#endif
1413 case OPT_loop_idiom_crc_strategy:
1414 return llvm::opt::parseArgValue(A.getValue(), loop_idiom_crc_strategy, Alloc, [](llvm::StringRef V, auto &X) {
1415 if (V == "disable") {
1416 X = CRCStrategyKind::Disable;
1417 return true;
1418 }
1419 if (V == "auto") {
1420 X = CRCStrategyKind::Auto;
1421 return true;
1422 }
1423 if (V == "table") {
1424 X = CRCStrategyKind::Table;
1425 return true;
1426 }
1427 if (V == "clmul") {
1428 X = CRCStrategyKind::Clmul;
1429 return true;
1430 }
1431 return false;
1432 });
1433 case OPT_loop_idiom_force_memset_pattern_intrinsic:
1434 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_idiom_force_memset_pattern_intrinsic, Alloc);
1435 case OPT_loop_interchange_max_loop_nest_depth:
1436 return llvm::opt::parseArgValue(A.getValue(), loop_interchange_max_loop_nest_depth, Alloc);
1437 case OPT_loop_interchange_max_mem_instr_ratio:
1438 return llvm::opt::parseArgValue(A.getValue(), loop_interchange_max_mem_instr_ratio, Alloc);
1439 case OPT_loop_interchange_min_loop_nest_depth:
1440 return llvm::opt::parseArgValue(A.getValue(), loop_interchange_min_loop_nest_depth, Alloc);
1441 case OPT_loop_interchange_profitabilities:
1442 return llvm::opt::parseArgValue(A.getValue(), loop_interchange_profitabilities, Alloc, [](llvm::StringRef V, auto &X) {
1443 if (V == "cache") {
1444 X = LoopInterchangeRule::PerLoopCacheAnalysis;
1445 return true;
1446 }
1447 if (V == "instorder") {
1448 X = LoopInterchangeRule::PerInstrOrderCost;
1449 return true;
1450 }
1451 if (V == "vectorize") {
1452 X = LoopInterchangeRule::ForVectorization;
1453 return true;
1454 }
1455 if (V == "ignore") {
1456 X = LoopInterchangeRule::Ignore;
1457 return true;
1458 }
1459 return false;
1460 });
1461 case OPT_loop_interchange_reduction_to_mem:
1462 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_interchange_reduction_to_mem, Alloc);
1463 case OPT_loop_interchange_threshold:
1464 return llvm::opt::parseArgValue(A.getValue(), loop_interchange_threshold, Alloc);
1465 case OPT_loop_load_elimination_scev_check_threshold:
1466 return llvm::opt::parseArgValue(A.getValue(), loop_load_elimination_scev_check_threshold, Alloc);
1467 case OPT_loop_predication_enable_count_down_loop:
1468 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_predication_enable_count_down_loop, Alloc);
1469 case OPT_loop_predication_enable_iv_truncation:
1470 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_predication_enable_iv_truncation, Alloc);
1471 case OPT_loop_predication_insert_assumes_of_predicated_guards_conditions:
1472 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_predication_insert_assumes_of_predicated_guards_conditions, Alloc);
1473 case OPT_loop_predication_latch_probability_scale:
1474 return llvm::opt::parseArgValue(A.getValue(), loop_predication_latch_probability_scale, Alloc);
1475 case OPT_loop_predication_predicate_widenable_branches_to_deopt:
1476 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_predication_predicate_widenable_branches_to_deopt, Alloc);
1477 case OPT_loop_predication_skip_profitability_checks:
1478 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_predication_skip_profitability_checks, Alloc);
1479 case OPT_loop_prefetch_writes:
1480 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", loop_prefetch_writes, Alloc);
1481 case OPT_lsr_complexity_limit:
1482 return llvm::opt::parseArgValue(A.getValue(), lsr_complexity_limit, Alloc);
1483 case OPT_lsr_drop_scaled_reg_for_vscale:
1484 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", lsr_drop_scaled_reg_for_vscale, Alloc);
1485 case OPT_lsr_drop_solution:
1486 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", lsr_drop_solution, Alloc);
1487 case OPT_lsr_enable_vscale_immediates:
1488 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", lsr_enable_vscale_immediates, Alloc);
1489 case OPT_lsr_exp_narrow:
1490 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", lsr_exp_narrow, Alloc);
1491 case OPT_lsr_filter_same_scaled_reg:
1492 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", lsr_filter_same_scaled_reg, Alloc);
1493 case OPT_lsr_insns_cost:
1494 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", lsr_insns_cost, Alloc);
1495 case OPT_lsr_preferred_addressing_mode:
1496 return llvm::opt::parseArgValue(A.getValue(), lsr_preferred_addressing_mode, Alloc, [](llvm::StringRef V, auto &X) {
1497 if (V == "none") {
1498 X = TargetTransformInfo::AMK_None;
1499 return true;
1500 }
1501 if (V == "preindexed") {
1502 X = TargetTransformInfo::AMK_PreIndexed;
1503 return true;
1504 }
1505 if (V == "postindexed") {
1506 X = TargetTransformInfo::AMK_PostIndexed;
1507 return true;
1508 }
1509 if (V == "all") {
1510 X = TargetTransformInfo::AMK_All;
1511 return true;
1512 }
1513 return false;
1514 });
1515 case OPT_lsr_setupcost_depth_limit:
1516 return llvm::opt::parseArgValue(A.getValue(), lsr_setupcost_depth_limit, Alloc);
1517 case OPT_matrix_allow_contract:
1518 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", matrix_allow_contract, Alloc);
1519 case OPT_matrix_default_layout:
1520 return llvm::opt::parseArgValue(A.getValue(), matrix_default_layout, Alloc, [](llvm::StringRef V, auto &X) {
1521 if (V == "column-major") {
1522 X = MatrixLayoutTy::ColumnMajor;
1523 return true;
1524 }
1525 if (V == "row-major") {
1526 X = MatrixLayoutTy::RowMajor;
1527 return true;
1528 }
1529 return false;
1530 });
1531 case OPT_matrix_print_after_transpose_opt:
1532 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", matrix_print_after_transpose_opt, Alloc);
1533 case OPT_matrix_split_matmul_remainder_over_threshold:
1534 return llvm::opt::parseArgValue(A.getValue(), matrix_split_matmul_remainder_over_threshold, Alloc);
1535 case OPT_max_loads_per_memcmp_opt_size:
1536 return llvm::opt::parseArgValue(A.getValue(), max_loads_per_memcmp_opt_size, Alloc);
1537 case OPT_max_loads_per_memcmp:
1538 return llvm::opt::parseArgValue(A.getValue(), max_loads_per_memcmp, Alloc);
1539 case OPT_max_prefetch_iters_ahead:
1540 return llvm::opt::parseArgValue(A.getValue(), max_prefetch_iters_ahead, Alloc);
1541 case OPT_max_uses_for_sinking:
1542 return llvm::opt::parseArgValue(A.getValue(), max_uses_for_sinking, Alloc);
1543 case OPT_memcmp_num_loads_per_block:
1544 return llvm::opt::parseArgValue(A.getValue(), memcmp_num_loads_per_block, Alloc);
1545 case OPT_min_prefetch_stride:
1546 return llvm::opt::parseArgValue(A.getValue(), min_prefetch_stride, Alloc);
1547 case OPT_pragma_unroll_and_jam_threshold:
1548 return llvm::opt::parseArgValue(A.getValue(), pragma_unroll_and_jam_threshold, Alloc);
1549 case OPT_pragma_unroll_full_max_iterations:
1550 return llvm::opt::parseArgValue(A.getValue(), pragma_unroll_full_max_iterations, Alloc);
1551 case OPT_pragma_unroll_threshold:
1552 return llvm::opt::parseArgValue(A.getValue(), pragma_unroll_threshold, Alloc);
1553 case OPT_prefetch_distance:
1554 return llvm::opt::parseArgValue(A.getValue(), prefetch_distance, Alloc);
1555 case OPT_reassociate_geps_verify_no_dead_code:
1556 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", reassociate_geps_verify_no_dead_code, Alloc);
1557 case OPT_reassociate_use_cse_local:
1558 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", reassociate_use_cse_local, Alloc);
1559 case OPT_replexitval:
1560 return llvm::opt::parseArgValue(A.getValue(), replexitval, Alloc, [](llvm::StringRef V, auto &X) {
1561 if (V == "never") {
1562 X = NeverRepl;
1563 return true;
1564 }
1565 if (V == "cheap") {
1566 X = OnlyCheapRepl;
1567 return true;
1568 }
1569 if (V == "unusedindvarinloop") {
1570 X = UnusedIndVarInLoop;
1571 return true;
1572 }
1573 if (V == "noharduse") {
1574 X = NoHardUse;
1575 return true;
1576 }
1577 if (V == "always") {
1578 X = AlwaysRepl;
1579 return true;
1580 }
1581 return false;
1582 });
1583 case OPT_rotation_max_header_size:
1584 return llvm::opt::parseArgValue(A.getValue(), rotation_max_header_size, Alloc);
1585 case OPT_rotation_prepare_for_lto:
1586 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", rotation_prepare_for_lto, Alloc);
1587 case OPT_rs4gc_allow_statepoint_with_no_deopt_info:
1588 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", rs4gc_allow_statepoint_with_no_deopt_info, Alloc);
1589 case OPT_rs4gc_remat_derived_at_uses:
1590 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", rs4gc_remat_derived_at_uses, Alloc);
1591 case OPT_runtime_check_per_loop_load_elim:
1592 return llvm::opt::parseArgValue(A.getValue(), runtime_check_per_loop_load_elim, Alloc);
1593 case OPT_simple_loop_unswitch_drop_non_trivial_implicit_null_checks:
1594 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", simple_loop_unswitch_drop_non_trivial_implicit_null_checks, Alloc);
1595 case OPT_simple_loop_unswitch_estimate_profile:
1596 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", simple_loop_unswitch_estimate_profile, Alloc);
1597 case OPT_simple_loop_unswitch_guards:
1598 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", simple_loop_unswitch_guards, Alloc);
1599 case OPT_simple_loop_unswitch_inject_invariant_condition_hotness_threshold:
1600 return llvm::opt::parseArgValue(A.getValue(), simple_loop_unswitch_inject_invariant_condition_hotness_threshold, Alloc);
1601 case OPT_simple_loop_unswitch_inject_invariant_conditions:
1602 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", simple_loop_unswitch_inject_invariant_conditions, Alloc);
1603 case OPT_simple_loop_unswitch_memoryssa_threshold:
1604 return llvm::opt::parseArgValue(A.getValue(), simple_loop_unswitch_memoryssa_threshold, Alloc);
1605 case OPT_sink_common_insts:
1606 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sink_common_insts, Alloc);
1607 case OPT_sink_freq_percent_threshold:
1608 return llvm::opt::parseArgValue(A.getValue(), sink_freq_percent_threshold, Alloc);
1609 case OPT_spec_exec_max_not_hoisted:
1610 return llvm::opt::parseArgValue(A.getValue(), spec_exec_max_not_hoisted, Alloc);
1611 case OPT_spec_exec_max_speculation_cost:
1612 return llvm::opt::parseArgValue(A.getValue(), spec_exec_max_speculation_cost, Alloc);
1613 case OPT_spec_exec_only_if_divergent_target:
1614 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", spec_exec_only_if_divergent_target, Alloc);
1615 case OPT_speculate_unpredictables:
1616 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", speculate_unpredictables, Alloc);
1617 case OPT_spp_all_backedges:
1618 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", spp_all_backedges, Alloc);
1619 case OPT_spp_counted_loop_trip_width:
1620 return llvm::opt::parseArgValue(A.getValue(), spp_counted_loop_trip_width, Alloc);
1621 case OPT_spp_no_backedge:
1622 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", spp_no_backedge, Alloc);
1623 case OPT_spp_no_call:
1624 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", spp_no_call, Alloc);
1625 case OPT_spp_no_entry:
1626 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", spp_no_entry, Alloc);
1627 case OPT_spp_print_base_pointers:
1628 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", spp_print_base_pointers, Alloc);
1629 case OPT_spp_print_liveset_size:
1630 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", spp_print_liveset_size, Alloc);
1631 case OPT_spp_print_liveset:
1632 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", spp_print_liveset, Alloc);
1633 case OPT_spp_rematerialization_threshold:
1634 return llvm::opt::parseArgValue(A.getValue(), spp_rematerialization_threshold, Alloc);
1635 case OPT_spp_split_backedge:
1636 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", spp_split_backedge, Alloc);
1637 case OPT_sroa_skip_mem2reg:
1638 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sroa_skip_mem2reg, Alloc);
1639#if !defined(NDEBUG)
1640 case OPT_stress_ivchain:
1641 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", stress_ivchain, Alloc);
1642#endif
1643 case OPT_structurizecfg_skip_uniform_regions:
1644 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", structurizecfg_skip_uniform_regions, Alloc);
1645 case OPT_switch_range_to_icmp:
1646 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", switch_range_to_icmp, Alloc);
1647 case OPT_switch_to_lookup:
1648 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", switch_to_lookup, Alloc);
1649 case OPT_tre_disable_entrycount_recompute:
1650 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tre_disable_entrycount_recompute, Alloc);
1651 case OPT_unlikely_branch_weight:
1652 return llvm::opt::parseArgValue(A.getValue(), unlikely_branch_weight, Alloc);
1653 case OPT_unroll_allow_partial:
1654 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", unroll_allow_partial, Alloc);
1655 case OPT_unroll_allow_remainder:
1656 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", unroll_allow_remainder, Alloc);
1657 case OPT_unroll_and_jam_count:
1658 return llvm::opt::parseArgValue(A.getValue(), unroll_and_jam_count, Alloc);
1659 case OPT_unroll_and_jam_threshold:
1660 return llvm::opt::parseArgValue(A.getValue(), unroll_and_jam_threshold, Alloc);
1661 case OPT_unroll_count:
1662 return llvm::opt::parseArgValue(A.getValue(), unroll_count, Alloc);
1663 case OPT_unroll_full_max_count:
1664 return llvm::opt::parseArgValue(A.getValue(), unroll_full_max_count, Alloc);
1665 case OPT_unroll_max_count:
1666 return llvm::opt::parseArgValue(A.getValue(), unroll_max_count, Alloc);
1667 case OPT_unroll_max_iteration_count_to_analyze:
1668 return llvm::opt::parseArgValue(A.getValue(), unroll_max_iteration_count_to_analyze, Alloc);
1669 case OPT_unroll_max_percent_threshold_boost:
1670 return llvm::opt::parseArgValue(A.getValue(), unroll_max_percent_threshold_boost, Alloc);
1671 case OPT_unroll_max_upperbound:
1672 return llvm::opt::parseArgValue(A.getValue(), unroll_max_upperbound, Alloc);
1673 case OPT_unroll_optsize_threshold:
1674 return llvm::opt::parseArgValue(A.getValue(), unroll_optsize_threshold, Alloc);
1675 case OPT_unroll_partial_threshold:
1676 return llvm::opt::parseArgValue(A.getValue(), unroll_partial_threshold, Alloc);
1677 case OPT_unroll_remainder:
1678 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", unroll_remainder, Alloc);
1679 case OPT_unroll_revisit_child_loops:
1680 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", unroll_revisit_child_loops, Alloc);
1681 case OPT_unroll_runtime:
1682 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", unroll_runtime, Alloc);
1683 case OPT_unroll_threshold_aggressive:
1684 return llvm::opt::parseArgValue(A.getValue(), unroll_threshold_aggressive, Alloc);
1685 case OPT_unroll_threshold_default:
1686 return llvm::opt::parseArgValue(A.getValue(), unroll_threshold_default, Alloc);
1687 case OPT_unroll_threshold:
1688 return llvm::opt::parseArgValue(A.getValue(), unroll_threshold, Alloc);
1689 case OPT_unswitch_num_initial_unscaled_candidates:
1690 return llvm::opt::parseArgValue(A.getValue(), unswitch_num_initial_unscaled_candidates, Alloc);
1691 case OPT_unswitch_parent_blocks_div:
1692 return llvm::opt::parseArgValue(A.getValue(), unswitch_parent_blocks_div, Alloc);
1693 case OPT_unswitch_siblings_toplevel_div:
1694 return llvm::opt::parseArgValue(A.getValue(), unswitch_siblings_toplevel_div, Alloc);
1695 case OPT_unswitch_threshold:
1696 return llvm::opt::parseArgValue(A.getValue(), unswitch_threshold, Alloc);
1697 case OPT_use_lir_code_size_heurs:
1698 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", use_lir_code_size_heurs, Alloc);
1699 case OPT_verify_matrix_shapes:
1700 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", verify_matrix_shapes, Alloc);
1701 }
1702 llvm_unreachable("option without a member");
1703}
1704#endif // OPTIONS_STRUCT_DEFS
1705/////////
1706// ValuesCode
1707
1708#ifdef OPTTABLE_VALUES_CODE
1709static llvm::StringRef getOptionValuesCode(unsigned ID) {
1710 switch (ID) {
1711 }
1712 return {};
1713}
1714#undef OPTTABLE_VALUES_CODE
1715#endif // OPTTABLE_VALUES_CODE
1716/////////
1717// Groups
1718
1719#ifdef OPTION
1720
1721//////////
1722// Options
1723
1724OPTION(0, 6 /* <input> */, INPUT, Input, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0)
1725OPTION(0, 14 /* <unknown> */, UNKNOWN, Unknown, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0)
1726OPTION(1, 24 /* -adce-remove-control-flow */, anonymous_0, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1727OPTION(1, 52 /* -adce-remove-loops */, anonymous_1, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1728OPTION(1, 71 /* -allow-unroll-and-jam */, anonymous_130, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 93, 0, 0, 0, 0)
1729OPTION(1, 130 /* -bonus-inst-threshold */, anonymous_197, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 152, 0, 0, 0, 0)
1730OPTION(1, 193 /* -callsite-splitting-duplication-threshold */, anonymous_2, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 235, 0, 0, 0, 0)
1731OPTION(1, 318 /* -consthoist-gep */, anonymous_3, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 334, 0, 0, 0, 0)
1732OPTION(1, 372 /* -consthoist-min-num-to-rebase */, anonymous_4, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 402, 0, 0, 0, 0)
1733OPTION(1, 484 /* -consthoist-with-block-frequency */, anonymous_5, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 517, 0, 0, 0, 0)
1734OPTION(1, 656 /* -constraint-elimination-dump-reproducers */, anonymous_6, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 697, 0, 0, 0, 0)
1735OPTION(1, 745 /* -constraint-elimination-max-rows */, anonymous_7, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 778, 0, 0, 0, 0)
1736OPTION(1, 830 /* -dfa-cost-threshold */, anonymous_20, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 850, 0, 0, 0, 0)
1737OPTION(1, 895 /* -dfa-early-exit-heuristic */, anonymous_21, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 921, 0, 0, 0, 0)
1738OPTION(1, 982 /* -dfa-jump-view-cfg-before */, anonymous_22, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1008, 0, 0, 0, 0)
1739OPTION(1, 1047 /* -dfa-max-cloned-rate */, anonymous_23, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1068, 0, 0, 0, 0)
1740OPTION(1, 1133 /* -dfa-max-num-paths */, anonymous_24, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1152, 0, 0, 0, 0)
1741OPTION(1, 1199 /* -dfa-max-num-visited-paths */, anonymous_25, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1226, 0, 0, 0, 0)
1742OPTION(1, 1295 /* -dfa-max-out-use-blocks */, anonymous_26, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1319, 0, 0, 0, 0)
1743OPTION(1, 1395 /* -dfa-max-path-length */, anonymous_27, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1416, 0, 0, 0, 0)
1744OPTION(1, 1471 /* -disable-lftr */, anonymous_60, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1485, 0, 0, 0, 0)
1745OPTION(1, 1535 /* -disable-licm-promotion */, anonymous_72, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1559, 0, 0, 0, 0)
1746OPTION(1, 1597 /* -disable-separate-const-offset-from-gep */, anonymous_182, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1637, 0, 0, 0, 0)
1747OPTION(1, 1696 /* -disable-tail-call-elim-for-cold-calls */, anonymous_212, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1735, 0, 0, 0, 0)
1748OPTION(1, 1818 /* -dse-max-dom-cond-depth */, anonymous_8, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1842, 0, 0, 0, 0)
1749OPTION(1, 1936 /* -dse-memoryssa-defs-per-block-limit */, anonymous_9, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1972, 0, 0, 0, 0)
1750OPTION(1, 2066 /* -dse-memoryssa-otherbb-cost */, anonymous_10, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2094, 0, 0, 0, 0)
1751OPTION(1, 2167 /* -dse-memoryssa-partial-store-limit */, anonymous_11, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2202, 0, 0, 0, 0)
1752OPTION(1, 2296 /* -dse-memoryssa-path-check-limit */, anonymous_12, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2328, 0, 0, 0, 0)
1753OPTION(1, 2440 /* -dse-memoryssa-samebb-cost */, anonymous_13, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2467, 0, 0, 0, 0)
1754OPTION(1, 2535 /* -dse-memoryssa-scanlimit */, anonymous_14, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2560, 0, 0, 0, 0)
1755OPTION(1, 2629 /* -dse-memoryssa-walklimit */, anonymous_15, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2654, 0, 0, 0, 0)
1756OPTION(1, 2742 /* -dse-optimize-memoryssa */, anonymous_16, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2766, 0, 0, 0, 0)
1757OPTION(1, 2804 /* -earlycse-debug-hash */, anonymous_28, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2825, 0, 0, 0, 0)
1758OPTION(1, 2946 /* -earlycse-mssa-optimization-cap */, anonymous_29, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2978, 0, 0, 0, 0)
1759OPTION(1, 3100 /* -enable-dse-initializes-attr-improvement */, anonymous_17, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3141, 0, 0, 0, 0)
1760OPTION(1, 3188 /* -enable-dse-partial-overwrite-tracking */, anonymous_18, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3227, 0, 0, 0, 0)
1761OPTION(1, 3268 /* -enable-dse-partial-store-merging */, anonymous_19, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3302, 0, 0, 0, 0)
1762OPTION(1, 3338 /* -enable-gvn-memdep */, anonymous_35, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1763OPTION(1, 3357 /* -enable-gvn-memoryssa */, anonymous_36, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1764OPTION(1, 3379 /* -enable-load-in-loop-pre */, anonymous_37, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1765OPTION(1, 3404 /* -enable-load-pre */, anonymous_38, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1766OPTION(1, 3421 /* -enable-loop-distribute */, anonymous_83, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3445, 0, 0, 0, 0)
1767OPTION(1, 3496 /* -enable-loop-header-duplication-at-minsize */, anonymous_113, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3539, 0, 0, 0, 0)
1768OPTION(1, 3587 /* -enable-loop-simplifycfg-term-folding */, anonymous_116, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1769OPTION(1, 3625 /* -enable-lsr-phielim */, anonymous_119, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3645, 0, 0, 0, 0)
1770OPTION(1, 3672 /* -enable-nontrivial-unswitch */, anonymous_184, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3700, 0, 0, 0, 0)
1771OPTION(1, 3807 /* -enable-phi-of-ops */, anonymous_167, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1772OPTION(1, 3826 /* -enable-poison-reuse-guard */, anonymous_210, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3853, 0, 0, 0, 0)
1773OPTION(1, 3879 /* -enable-scalar-pre */, anonymous_39, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1774OPTION(1, 3898 /* -enable-split-backedge-in-load-pre */, anonymous_40, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1775OPTION(1, 3933 /* -enable-store-refinement */, anonymous_168, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1776OPTION(1, 3958 /* -enable-unswitch-cost-multiplier */, anonymous_185, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3991, 0, 0, 0, 0)
1777OPTION(1, 4083 /* -flat-loop-tripcount-threshold */, anonymous_134, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4114, 0, 0, 0, 0)
1778OPTION(1, 4251 /* -float2int-max-integer-bw */, anonymous_33, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4277, 0, 0, 0, 0)
1779OPTION(1, 4323 /* -force-fuse-matrix */, anonymous_158, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4342, 0, 0, 0, 0)
1780OPTION(1, 4397 /* -forget-scev-loop-unroll */, anonymous_135, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4422, 0, 0, 0, 0)
1781OPTION(1, 4565 /* -forward-switch-cond */, anonymous_198, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4586, 0, 0, 0, 0)
1782OPTION(1, 4622 /* -freeze-loop-unswitch-cond */, anonymous_186, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4649, 0, 0, 0, 0)
1783OPTION(1, 4754 /* -fuse-matrix-loops-threshold */, anonymous_160, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4783, 0, 0, 0, 0)
1784OPTION(1, 4867 /* -fuse-matrix-tile-size */, anonymous_161, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4890, 0, 0, 0, 0)
1785OPTION(1, 4956 /* -fuse-matrix */, anonymous_159, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4969, 0, 0, 0, 0)
1786OPTION(1, 5011 /* -guard-widening-widen-branch-guards */, anonymous_34, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5047, 0, 0, 0, 0)
1787OPTION(1, 5132 /* -gvn-hoist-max-bbs */, anonymous_47, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5151, 0, 0, 0, 0)
1788OPTION(1, 5234 /* -gvn-hoist-max-chain-length */, anonymous_48, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5262, 0, 0, 0, 0)
1789OPTION(1, 5323 /* -gvn-hoist-max-depth */, anonymous_49, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5344, 0, 0, 0, 0)
1790OPTION(1, 5443 /* -gvn-max-block-speculations */, anonymous_41, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5471, 0, 0, 0, 0)
1791OPTION(1, 5599 /* -gvn-max-hoisted */, anonymous_50, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5616, 0, 0, 0, 0)
1792OPTION(1, 5669 /* -gvn-max-num-deps */, anonymous_42, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5687, 0, 0, 0, 0)
1793OPTION(1, 5733 /* -gvn-max-num-insns */, anonymous_43, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5752, 0, 0, 0, 0)
1794OPTION(1, 5814 /* -gvn-max-num-reaching-blocks */, anonymous_44, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5843, 0, 0, 0, 0)
1795OPTION(1, 5922 /* -gvn-max-num-visited-insts */, anonymous_45, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5949, 0, 0, 0, 0)
1796OPTION(1, 6042 /* -gvn-scan-users-limit */, anonymous_46, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6064, 0, 0, 0, 0)
1797OPTION(1, 6148 /* -hoist-common-insts */, anonymous_199, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6168, 0, 0, 0, 0)
1798OPTION(1, 6194 /* -hoist-loads-stores-with-cond-faulting */, anonymous_200, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6233, 0, 0, 0, 0)
1799OPTION(1, 6296 /* -indvars-post-increment-ranges */, anonymous_61, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6327, 0, 0, 0, 0)
1800OPTION(1, 6389 /* -indvars-predicate-loop-traps */, anonymous_62, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6419, 0, 0, 0, 0)
1801OPTION(1, 6482 /* -indvars-predicate-loops */, anonymous_63, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6507, 0, 0, 0, 0)
1802OPTION(1, 6547 /* -indvars-widen-indvars */, anonymous_64, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6570, 0, 0, 0, 0)
1803OPTION(1, 6616 /* -irce-allow-narrow-latch */, anonymous_51, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6641, 0, 0, 0, 0)
1804OPTION(1, 6731 /* -irce-allow-unsigned-latch */, anonymous_52, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1805OPTION(1, 6758 /* -irce-loop-size-cutoff */, anonymous_53, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1806OPTION(1, 6781 /* -irce-max-type-size-for-overflow-check */, anonymous_54, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6820, 0, 0, 0, 0)
1807OPTION(1, 6929 /* -irce-min-eliminated-checks */, anonymous_55, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1808OPTION(1, 6957 /* -irce-print-changed-loops */, anonymous_56, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1809OPTION(1, 6983 /* -irce-print-range-checks */, anonymous_57, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1810OPTION(1, 7008 /* -irce-print-scaled-boundary-range-checks */, anonymous_58, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1811OPTION(1, 7049 /* -irce-skip-profitability-checks */, anonymous_59, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1812OPTION(1, 7081 /* -jump-table-to-switch-function-size-threshold */, anonymous_66, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7127, 0, 0, 0, 0)
1813OPTION(1, 7221 /* -jump-table-to-switch-size-threshold */, anonymous_67, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7258, 0, 0, 0, 0)
1814OPTION(1, 7333 /* -jump-threading-across-loop-headers */, anonymous_68, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7369, 0, 0, 0, 0)
1815OPTION(1, 7432 /* -jump-threading-implication-search-threshold */, anonymous_69, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7477, 0, 0, 0, 0)
1816OPTION(1, 7580 /* -jump-threading-phi-threshold */, anonymous_70, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7610, 0, 0, 0, 0)
1817OPTION(1, 7657 /* -jump-threading-threshold */, anonymous_71, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7683, 0, 0, 0, 0)
1818OPTION(1, 7730 /* -keep-loops */, anonymous_201, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7742, 0, 0, 0, 0)
1819OPTION(1, 7776 /* -licm-max-num-fp-reassociations */, anonymous_73, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7808, 0, 0, 0, 0)
1820OPTION(1, 7931 /* -licm-max-num-int-reassociations */, anonymous_74, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7808, 0, 0, 0, 0)
1821OPTION(1, 7964 /* -licm-max-num-uses-traversed */, anonymous_75, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7993, 0, 0, 0, 0)
1822OPTION(1, 8076 /* -licm-mssa-max-acc-promotion */, anonymous_76, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8105, 0, 0, 0, 0)
1823OPTION(1, 8317 /* -licm-mssa-optimization-cap */, anonymous_77, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8345, 0, 0, 0, 0)
1824OPTION(1, 8463 /* -licm-versioning-invariant-threshold */, anonymous_154, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8500, 0, 0, 0, 0)
1825OPTION(1, 8592 /* -licm-versioning-max-depth-threshold */, anonymous_155, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8629, 0, 0, 0, 0)
1826OPTION(1, 8696 /* -likely-branch-weight */, anonymous_156, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8718, 0, 0, 0, 0)
1827OPTION(1, 8758 /* -loop-deletion-enable-symbolic-execution */, anonymous_82, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8799, 0, 0, 0, 0)
1828OPTION(1, 8911 /* -loop-distribute-non-if-convertible */, anonymous_84, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8947, 0, 0, 0, 0)
1829OPTION(1, 9035 /* -loop-distribute-scev-check-threshold-with-pragma */, anonymous_86, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9085, 0, 0, 0, 0)
1830OPTION(1, 9208 /* -loop-distribute-scev-check-threshold */, anonymous_85, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9246, 0, 0, 0, 0)
1831OPTION(1, 9310 /* -loop-distribute-verify */, anonymous_87, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9334, 0, 0, 0, 0)
1832OPTION(1, 9406 /* -loop-flatten-assume-no-overflow */, anonymous_88, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9439, 0, 0, 0, 0)
1833OPTION(1, 9516 /* -loop-flatten-cost-threshold */, anonymous_89, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9545, 0, 0, 0, 0)
1834OPTION(1, 9623 /* -loop-flatten-version-loops */, anonymous_90, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9651, 0, 0, 0, 0)
1835OPTION(1, 9698 /* -loop-flatten-widen-iv */, anonymous_91, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9721, 0, 0, 0, 0)
1836OPTION(1, 9813 /* -loop-fusion-disable-cost-model */, anonymous_94, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9845, 0, 0, 0, 0)
1837OPTION(1, 9905 /* -loop-fusion-min-reused-values */, anonymous_93, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9936, 0, 0, 0, 0)
1838OPTION(1, 9996 /* -loop-fusion-peel-max-count */, anonymous_92, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10024, 0, 0, 0, 0)
1839#if !defined(NDEBUG)
1840OPTION(1, 10107 /* -loop-fusion-verbose-debug */, anonymous_95, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10134, 0, 0, 0, 0)
1841#endif
1842OPTION(1, 10175 /* -loop-idiom-crc-strategy */, anonymous_96, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10200, 0, 10244, 10271, 0)
1843OPTION(1, 10296 /* -loop-idiom-force-memset-pattern-intrinsic */, anonymous_97, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10339, 0, 0, 0, 0)
1844OPTION(1, 10386 /* -loop-interchange-max-loop-nest-depth */, anonymous_99, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10424, 0, 0, 0, 0)
1845OPTION(1, 10480 /* -loop-interchange-max-mem-instr-ratio */, anonymous_100, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10518, 0, 0, 0, 0)
1846OPTION(1, 10688 /* -loop-interchange-min-loop-nest-depth */, anonymous_101, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10726, 0, 0, 0, 0)
1847OPTION(1, 10782 /* -loop-interchange-profitabilities */, anonymous_102, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10816, 0, 10897, 10932, 0)
1848OPTION(1, 10965 /* -loop-interchange-reduction-to-mem */, anonymous_103, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11000, 0, 0, 0, 0)
1849OPTION(1, 11045 /* -loop-interchange-threshold */, anonymous_104, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11073, 0, 0, 0, 0)
1850OPTION(1, 11119 /* -loop-load-elimination-scev-check-threshold */, anonymous_105, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11163, 0, 0, 0, 0)
1851OPTION(1, 11231 /* -loop-predication-enable-count-down-loop */, anonymous_107, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1852OPTION(1, 11272 /* -loop-predication-enable-iv-truncation */, anonymous_108, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1853OPTION(1, 11311 /* -loop-predication-insert-assumes-of-predicated-guards-conditions */, anonymous_109, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11376, 0, 0, 0, 0)
1854OPTION(1, 11451 /* -loop-predication-latch-probability-scale */, anonymous_110, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11493, 0, 0, 0, 0)
1855OPTION(1, 11590 /* -loop-predication-predicate-widenable-branches-to-deopt */, anonymous_111, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11646, 0, 0, 0, 0)
1856OPTION(1, 11741 /* -loop-predication-skip-profitability-checks */, anonymous_112, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1857OPTION(1, 11785 /* -loop-prefetch-writes */, anonymous_78, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11807, 0, 0, 0, 0)
1858OPTION(1, 11832 /* -lsr-complexity-limit */, anonymous_120, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11854, 0, 0, 0, 0)
1859OPTION(1, 11888 /* -lsr-drop-scaled-reg-for-vscale */, anonymous_121, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11920, 0, 0, 0, 0)
1860OPTION(1, 11981 /* -lsr-drop-solution */, anonymous_122, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12000, 0, 0, 0, 0)
1861OPTION(1, 12050 /* -lsr-enable-vscale-immediates */, anonymous_123, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12080, 0, 0, 0, 0)
1862OPTION(1, 12133 /* -lsr-exp-narrow */, anonymous_124, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12149, 0, 0, 0, 0)
1863OPTION(1, 12215 /* -lsr-filter-same-scaled-reg */, anonymous_125, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12243, 0, 0, 0, 0)
1864OPTION(1, 12335 /* -lsr-insns-cost */, anonymous_126, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12351, 0, 0, 0, 0)
1865OPTION(1, 12393 /* -lsr-preferred-addressing-mode */, anonymous_127, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12424, 0, 12485, 12519, 0)
1866OPTION(1, 12551 /* -lsr-setupcost-depth-limit */, anonymous_128, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12578, 0, 0, 0, 0)
1867OPTION(1, 12627 /* -matrix-allow-contract */, anonymous_162, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12650, 0, 0, 0, 0)
1868OPTION(1, 12766 /* -matrix-default-layout */, anonymous_163, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12789, 0, 12820, 12845, 0)
1869OPTION(1, 12868 /* -matrix-print-after-transpose-opt */, anonymous_164, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1870OPTION(1, 12902 /* -matrix-split-matmul-remainder-over-threshold */, anonymous_165, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12948, 0, 0, 0, 0)
1871OPTION(1, 13041 /* -max-loads-per-memcmp-opt-size */, anonymous_31, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13072, 0, 0, 0, 0)
1872OPTION(1, 13135 /* -max-loads-per-memcmp */, anonymous_30, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13157, 0, 0, 0, 0)
1873OPTION(1, 13209 /* -max-prefetch-iters-ahead */, anonymous_79, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13235, 0, 0, 0, 0)
1874OPTION(1, 13278 /* -max-uses-for-sinking */, anonymous_117, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13300, 0, 0, 0, 0)
1875OPTION(1, 13349 /* -memcmp-num-loads-per-block */, anonymous_32, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13377, 0, 0, 0, 0)
1876OPTION(1, 13444 /* -min-prefetch-stride */, anonymous_80, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13465, 0, 0, 0, 0)
1877OPTION(1, 13494 /* -pragma-unroll-and-jam-threshold */, anonymous_131, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13527, 0, 0, 0, 0)
1878OPTION(1, 13609 /* -pragma-unroll-full-max-iterations */, anonymous_136, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13644, 0, 0, 0, 0)
1879OPTION(1, 13706 /* -pragma-unroll-threshold */, anonymous_137, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13731, 0, 0, 0, 0)
1880OPTION(1, 13807 /* -prefetch-distance */, anonymous_81, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13826, 0, 0, 0, 0)
1881OPTION(1, 13867 /* -reassociate-geps-verify-no-dead-code */, anonymous_183, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13905, 0, 0, 0, 0)
1882OPTION(1, 13944 /* -reassociate-use-cse-local */, anonymous_175, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13971, 0, 0, 0, 0)
1883OPTION(1, 14049 /* -replexitval */, anonymous_65, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14062, 0, 14122, 14172, 0)
1884OPTION(1, 14220 /* -rotation-max-header-size */, anonymous_114, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14246, 0, 0, 0, 0)
1885OPTION(1, 14306 /* -rotation-prepare-for-lto */, anonymous_115, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14332, 0, 0, 0, 0)
1886OPTION(1, 14424 /* -rs4gc-allow-statepoint-with-no-deopt-info */, anonymous_176, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1887OPTION(1, 14467 /* -rs4gc-remat-derived-at-uses */, anonymous_177, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1888OPTION(1, 14496 /* -runtime-check-per-loop-load-elim */, anonymous_106, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14530, 0, 0, 0, 0)
1889OPTION(1, 14593 /* -simple-loop-unswitch-drop-non-trivial-implicit-null-checks */, anonymous_187, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14653, 0, 0, 0, 0)
1890OPTION(1, 14769 /* -simple-loop-unswitch-estimate-profile */, anonymous_188, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1891OPTION(1, 14808 /* -simple-loop-unswitch-guards */, anonymous_189, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14837, 0, 0, 0, 0)
1892OPTION(1, 14950 /* -simple-loop-unswitch-inject-invariant-condition-hotness-threshold */, anonymous_190, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15017, 0, 0, 0, 0)
1893OPTION(1, 15154 /* -simple-loop-unswitch-inject-invariant-conditions */, anonymous_191, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15204, 0, 0, 0, 0)
1894OPTION(1, 15316 /* -simple-loop-unswitch-memoryssa-threshold */, anonymous_192, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15358, 0, 0, 0, 0)
1895OPTION(1, 15431 /* -sink-common-insts */, anonymous_202, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15450, 0, 0, 0, 0)
1896OPTION(1, 15475 /* -sink-freq-percent-threshold */, anonymous_118, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15504, 0, 0, 0, 0)
1897OPTION(1, 15605 /* -spec-exec-max-not-hoisted */, anonymous_206, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15632, 0, 0, 0, 0)
1898OPTION(1, 15778 /* -spec-exec-max-speculation-cost */, anonymous_207, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15810, 0, 0, 0, 0)
1899OPTION(1, 15942 /* -spec-exec-only-if-divergent-target */, anonymous_208, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15978, 0, 0, 0, 0)
1900OPTION(1, 16113 /* -speculate-unpredictables */, anonymous_203, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16139, 0, 0, 0, 0)
1901OPTION(1, 16172 /* -spp-all-backedges */, anonymous_169, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1902OPTION(1, 16191 /* -spp-counted-loop-trip-width */, anonymous_170, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1903OPTION(1, 16220 /* -spp-no-backedge */, anonymous_171, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1904OPTION(1, 16237 /* -spp-no-call */, anonymous_172, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1905OPTION(1, 16250 /* -spp-no-entry */, anonymous_173, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1906OPTION(1, 16264 /* -spp-print-base-pointers */, anonymous_178, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1907OPTION(1, 16289 /* -spp-print-liveset-size */, anonymous_180, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1908OPTION(1, 16313 /* -spp-print-liveset */, anonymous_179, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1909OPTION(1, 16332 /* -spp-rematerialization-threshold */, anonymous_181, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1910OPTION(1, 16365 /* -spp-split-backedge */, anonymous_174, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1911OPTION(1, 16385 /* -sroa-skip-mem2reg */, anonymous_209, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0)
1912#if !defined(NDEBUG)
1913OPTION(1, 16404 /* -stress-ivchain */, anonymous_129, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16420, 0, 0, 0, 0)
1914#endif
1915OPTION(1, 16446 /* -structurizecfg-skip-uniform-regions */, anonymous_211, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16483, 0, 0, 0, 0)
1916OPTION(1, 16543 /* -switch-range-to-icmp */, anonymous_204, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16565, 0, 0, 0, 0)
1917OPTION(1, 16615 /* -switch-to-lookup */, anonymous_205, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16633, 0, 0, 0, 0)
1918OPTION(1, 16667 /* -tre-disable-entrycount-recompute */, anonymous_213, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16701, 0, 0, 0, 0)
1919OPTION(1, 16795 /* -unlikely-branch-weight */, anonymous_157, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16819, 0, 0, 0, 0)
1920OPTION(1, 16861 /* -unroll-allow-partial */, anonymous_138, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16883, 0, 0, 0, 0)
1921OPTION(1, 16966 /* -unroll-allow-remainder */, anonymous_139, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16990, 0, 0, 0, 0)
1922OPTION(1, 17068 /* -unroll-and-jam-count */, anonymous_132, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17090, 0, 0, 0, 0)
1923OPTION(1, 17204 /* -unroll-and-jam-threshold */, anonymous_133, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17230, 0, 0, 0, 0)
1924OPTION(1, 17288 /* -unroll-count */, anonymous_140, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17302, 0, 0, 0, 0)
1925OPTION(1, 17408 /* -unroll-full-max-count */, anonymous_141, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17431, 0, 0, 0, 0)
1926OPTION(1, 17497 /* -unroll-max-count */, anonymous_142, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17515, 0, 0, 0, 0)
1927OPTION(1, 17595 /* -unroll-max-iteration-count-to-analyze */, anonymous_143, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17634, 0, 0, 0, 0)
1928OPTION(1, 17749 /* -unroll-max-percent-threshold-boost */, anonymous_144, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17785, 0, 0, 0, 0)
1929OPTION(1, 18144 /* -unroll-max-upperbound */, anonymous_145, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18167, 0, 0, 0, 0)
1930OPTION(1, 18233 /* -unroll-optsize-threshold */, anonymous_146, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18259, 0, 0, 0, 0)
1931OPTION(1, 18322 /* -unroll-partial-threshold */, anonymous_147, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18348, 0, 0, 0, 0)
1932OPTION(1, 18394 /* -unroll-remainder */, anonymous_148, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18412, 0, 0, 0, 0)
1933OPTION(1, 18452 /* -unroll-revisit-child-loops */, anonymous_149, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18480, 0, 0, 0, 0)
1934OPTION(1, 18634 /* -unroll-runtime */, anonymous_150, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18650, 0, 0, 0, 0)
1935OPTION(1, 18689 /* -unroll-threshold-aggressive */, anonymous_152, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18718, 0, 0, 0, 0)
1936OPTION(1, 18796 /* -unroll-threshold-default */, anonymous_153, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18822, 0, 0, 0, 0)
1937OPTION(1, 18902 /* -unroll-threshold */, anonymous_151, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18920, 0, 0, 0, 0)
1938OPTION(1, 18958 /* -unswitch-num-initial-unscaled-candidates */, anonymous_193, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19000, 0, 0, 0, 0)
1939OPTION(1, 19080 /* -unswitch-parent-blocks-div */, anonymous_194, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19108, 0, 0, 0, 0)
1940OPTION(1, 19152 /* -unswitch-siblings-toplevel-div */, anonymous_195, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19184, 0, 0, 0, 0)
1941OPTION(1, 19230 /* -unswitch-threshold */, anonymous_196, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19250, 0, 0, 0, 0)
1942OPTION(1, 19292 /* -use-lir-code-size-heurs */, anonymous_98, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19317, 0, 0, 0, 0)
1943OPTION(1, 19393 /* -verify-matrix-shapes */, anonymous_166, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19415, 0, 0, 0, 0)
1944#endif // OPTION
1945
1946#ifdef SIMPLE_ENUM_VALUE_TABLE
1947
1948struct SimpleEnumValue {
1949 const char *Name;
1950 unsigned Value;
1951};
1952
1953struct SimpleEnumValueTable {
1954 const SimpleEnumValue *Table;
1955 unsigned Size;
1956};
1957static const SimpleEnumValueTable SimpleEnumValueTables[] = {};
1958static const unsigned SimpleEnumValueTablesSize = std::size(SimpleEnumValueTables);
1959#endif // SIMPLE_ENUM_VALUE_TABLE
1960