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_aarch64_a57_fp_load_balancing_force_all,
19 OPT_aarch64_a57_fp_load_balancing_override,
20 OPT_aarch64_authenticated_lr_check_method,
21 OPT_aarch64_b_offset_bits,
22 OPT_aarch64_base_histcnt_cost,
23 OPT_aarch64_bcc_offset_bits,
24 OPT_aarch64_br_merging_base_cost,
25 OPT_aarch64_br_merging_cbz_tbnz_bias,
26 OPT_aarch64_br_merging_ccmp_bias,
27 OPT_aarch64_br_merging_likely_bias,
28 OPT_aarch64_br_merging_unlikely_bias,
29 OPT_aarch64_cb_offset_bits,
30 OPT_aarch64_cbz_offset_bits,
31 OPT_aarch64_ccmp_limit,
32 OPT_aarch64_cfi_llvm_set_ra_sign_state,
33 OPT_aarch64_code_layout_opt_align_functions,
34 OPT_aarch64_disable_multivector_spill_fill,
35 OPT_aarch64_early_ifcvt,
36 OPT_aarch64_elf_ldtls_generation,
37 OPT_aarch64_emit_debug_tls_location,
38 OPT_aarch64_enable_atomic_cfg_tidy,
39 OPT_aarch64_enable_branch_relax,
40 OPT_aarch64_enable_branch_targets,
41 OPT_aarch64_enable_ccmp,
42 OPT_aarch64_enable_collect_loh,
43 OPT_aarch64_enable_compress_jump_tables,
44 OPT_aarch64_enable_cond_br_tune,
45 OPT_aarch64_enable_condopt,
46 OPT_aarch64_enable_copy_propagation,
47 OPT_aarch64_enable_copyelim,
48 OPT_aarch64_enable_dead_defs,
49 OPT_aarch64_enable_early_ifcvt,
50 OPT_aarch64_enable_ext_to_tbl,
51 OPT_aarch64_enable_falkor_hwpf_fix,
52 OPT_aarch64_enable_gep_opt,
53 OPT_aarch64_enable_gisel_ldst_postlegal,
54 OPT_aarch64_enable_gisel_ldst_prelegal,
55 OPT_aarch64_enable_gisel_sve,
56 OPT_aarch64_enable_global_isel_at_O,
57 OPT_aarch64_enable_global_merge,
58 OPT_aarch64_enable_ldst_opt,
59 OPT_aarch64_enable_logical_imm,
60 OPT_aarch64_enable_loop_data_prefetch,
61 OPT_aarch64_enable_mcr,
62 OPT_aarch64_enable_mgather_combine,
63 OPT_aarch64_enable_pipeliner,
64 OPT_aarch64_enable_predicate_as_counter_loop_rewrites,
65 OPT_aarch64_enable_promote_const,
66 OPT_aarch64_enable_ptrue_coalescing,
67 OPT_aarch64_enable_simd_scalar,
68 OPT_aarch64_enable_sink_fold,
69 OPT_aarch64_enable_stp_suppress,
70 OPT_aarch64_enable_subreg_liveness_tracking,
71 OPT_aarch64_enable_sve_shuffle_opts,
72 OPT_aarch64_force_unroll_threshold,
73 OPT_aarch64_insert_extract_base_cost,
74 OPT_aarch64_load_store_const_scan_limit,
75 OPT_aarch64_load_store_renaming,
76 OPT_aarch64_load_store_scan_limit,
77 OPT_aarch64_lower_to_sme_routines,
78 OPT_aarch64_macho_enable_nonlazybind,
79 OPT_aarch64_max_xors,
80 OPT_aarch64_min_jump_table_entries,
81 OPT_aarch64_order_frame_objects,
82 OPT_aarch64_outliner_compact_unwind_frame,
83 OPT_aarch64_postlegalizer_consecutive_memops,
84 OPT_aarch64_ptrauth_auth_checks,
85 OPT_aarch64_redzone,
86 OPT_aarch64_search_limit,
87 OPT_aarch64_select_opt,
88 OPT_aarch64_simd_scalar_force_all,
89 OPT_aarch64_slh_loads,
90 OPT_aarch64_split_sve_objects,
91 OPT_aarch64_srlt_mitigate_sr2r,
92 OPT_aarch64_stack_hazard_in_non_streaming,
93 OPT_aarch64_stack_hazard_remark_size,
94 OPT_aarch64_stack_hazard_size,
95 OPT_aarch64_streaming_hazard_size,
96 OPT_aarch64_stress_ccmp,
97 OPT_aarch64_stress_promote_const,
98 OPT_aarch64_sve_vector_bits_max,
99 OPT_aarch64_sve_vector_bits_min,
100 OPT_aarch64_sve_vls_bfloat_support,
101 OPT_aarch64_tbz_offset_bits,
102 OPT_aarch64_umov_fold_scan_limit,
103 OPT_aarch64_update_scan_limit,
104 OPT_aarch64_use_aa,
105 OPT_aarch64_use_conditional_fpmr_write,
106 OPT_aarch64_use_featcpa_codegen,
107 OPT_aarch64_use_mops,
108 OPT_aarch64_use_tbi,
109 OPT_arm64ec_generate_thunks,
110 OPT_arm64ec_lower_direct_to_indirect,
111 OPT_call_penalty_sm_change,
112 OPT_dmb_lookahead_threshold,
113 OPT_enable_aarch64_lsr_cost_opt,
114 OPT_enable_aarch64_or_like_select,
115 OPT_enable_aarch64_sme_peephole_opt,
116 OPT_enable_falkor_hwpf_unroll_fix,
117 OPT_enable_fixedwidth_autovec_in_streaming_mode,
118 OPT_enable_scalable_autovec_in_streaming_mode,
119 OPT_force_streaming_compatible,
120 OPT_force_streaming,
121 OPT_frame_helper_size_threshold,
122 OPT_homogeneous_prolog_epilog,
123 OPT_inline_call_penalty_sm_change,
124 OPT_neon_nonconst_stride_overhead,
125 OPT_stack_tagging_first_slot_opt,
126 OPT_stack_tagging_merge_init_scan_limit,
127 OPT_stack_tagging_merge_init_size_limit,
128 OPT_stack_tagging_merge_init,
129 OPT_stack_tagging_merge_settag,
130 OPT_stack_tagging_record_stack_history,
131 OPT_stack_tagging_unchecked_ld_st,
132 OPT_stack_tagging_use_stack_safety,
133 OPT_sve_gather_overhead,
134 OPT_sve_prefer_fixed_over_scalable_if_equal,
135 OPT_sve_scatter_overhead,
136 OPT_sve_tail_folding_insn_threshold,
137 OPT_sve_use_scalar_inc_vl,
138 OPT_sve_vscale_for_tuning,
139};
140} // namespace
141
142static llvm::opt::OptTable::Tables optionTables() {
143 using llvm::opt::DefaultVis, llvm::opt::HelpHidden,
144 llvm::opt::RenderAsInput, llvm::opt::RenderJoined,
145 llvm::opt::RenderSeparate;
146
147#ifdef __GNUC__
148#pragma GCC diagnostic push
149#pragma GCC diagnostic ignored "-Woverlength-strings"
150#endif
151static constexpr char OptionStrTableStorage[] =
152 "\0"
153 "-\0"
154 "--\0"
155 "<input>\0"
156 "<unknown>\0"
157 "-aarch64-a57-fp-load-balancing-force-all\0"
158 "Always modify dest registers regardless of color\0"
159 "-aarch64-a57-fp-load-balancing-override\0"
160 "Ignore balance information, always return (1: Even, 2: Odd)\0"
161 "-aarch64-authenticated-lr-check-method\0"
162 "Override the variant of check applied to authenticated LR during tail call\0"
163 "<none|load|high-bits-notbi|xpac|xpac-hint>\0"
164 "none,load,high-bits-notbi,xpac,xpac-hint\0"
165 "-aarch64-b-offset-bits\0"
166 "Restrict range of B instructions (DEBUG)\0"
167 "-aarch64-base-histcnt-cost\0"
168 "The cost of a histcnt instruction\0"
169 "-aarch64-bcc-offset-bits\0"
170 "Restrict range of Bcc instructions (DEBUG)\0"
171 "-aarch64-br-merging-base-cost\0"
172 "Cost threshold for merging multiple conditionals into one branch versus splitting into multiple branches: conditionals are merged when their instruction cost is below this limit and split above it. Set to -1 to never merge branches\0"
173 "-aarch64-br-merging-cbz-tbnz-bias\0"
174 "Decreases 'aarch64-br-merging-base-cost' when a condition can lower to a single CBZ/CBNZ or TBZ/TBNZ compare-and-branch, to bias toward splitting. Set to 0 to disable\0"
175 "-aarch64-br-merging-ccmp-bias\0"
176 "Increases 'aarch64-br-merging-base-cost' to account for the CCMP instruction, which is always available on AArch64 and makes merging branch conditions cheaper\0"
177 "-aarch64-br-merging-likely-bias\0"
178 "Increases 'aarch64-br-merging-base-cost' when all conditionals are likely to be executed, biasing toward merging. Set to -1 to never merge likely branches\0"
179 "-aarch64-br-merging-unlikely-bias\0"
180 "Decreases 'aarch64-br-merging-base-cost' when all conditionals are unlikely to be executed, biasing toward splitting. Set to -1 to never merge unlikely branches\0"
181 "-aarch64-cb-offset-bits\0"
182 "Restrict range of CB instructions (DEBUG)\0"
183 "-aarch64-cbz-offset-bits\0"
184 "Restrict range of CB[N]Z instructions (DEBUG)\0"
185 "-aarch64-ccmp-limit\0"
186 "Maximum number of instructions per speculated block\0"
187 "-aarch64-cfi-llvm-set-ra-sign-state\0"
188 "Control emission of .cfi_set_ra_state for PAC return address signing CFI\0"
189 "<never|pauth-lr|always>\0"
190 "never,pauth-lr,always\0"
191 "-aarch64-code-layout-opt-align-functions\0"
192 "Function alignment in bytes for code layout optimization (must be a power of 2)\0"
193 "-aarch64-disable-multivector-spill-fill\0"
194 "Disable use of LD/ST pairs for SME2 or SVE2p1\0"
195 "-aarch64-early-ifcvt\0"
196 "Enable the early if converter pass\0"
197 "-aarch64-elf-ldtls-generation\0"
198 "Allow AArch64 Local Dynamic TLS code generation\0"
199 "-aarch64-emit-debug-tls-location\0"
200 "Emit the TLS DWARF location with DTPREL relocation for AArch64\0"
201 "-aarch64-enable-atomic-cfg-tidy\0"
202 "Run SimplifyCFG after expanding atomic operations to make use of cmpxchg flow-based information\0"
203 "-aarch64-enable-branch-relax\0"
204 "Relax out of range conditional branches\0"
205 "-aarch64-enable-branch-targets\0"
206 "Enable the AArch64 branch target pass\0"
207 "-aarch64-enable-ccmp\0"
208 "Enable the CCMP formation pass\0"
209 "-aarch64-enable-collect-loh\0"
210 "Enable the pass that emits the linker optimization hints (LOH)\0"
211 "-aarch64-enable-compress-jump-tables\0"
212 "Use smallest entry possible for jump tables\0"
213 "-aarch64-enable-cond-br-tune\0"
214 "Enable the conditional branch tuning pass\0"
215 "-aarch64-enable-condopt\0"
216 "Enable the condition optimizer pass\0"
217 "-aarch64-enable-copy-propagation\0"
218 "Enable the copy propagation with AArch64 copy instr\0"
219 "-aarch64-enable-copyelim\0"
220 "Enable the redundant copy elimination pass\0"
221 "-aarch64-enable-dead-defs\0"
222 "Enable the pass that removes dead definitions and replaces stores to them with stores to the zero register\0"
223 "-aarch64-enable-early-ifcvt\0"
224 "Run early if-conversion\0"
225 "-aarch64-enable-ext-to-tbl\0"
226 "Combine ext and trunc to TBL\0"
227 "-aarch64-enable-falkor-hwpf-fix\0"
228 "\0"
229 "\0"
230 "-aarch64-enable-gep-opt\0"
231 "Enable optimizations on complex GEPs\0"
232 "-aarch64-enable-gisel-ldst-postlegal\0"
233 "Enable GlobalISel's post-legalizer load/store optimization pass\0"
234 "-aarch64-enable-gisel-ldst-prelegal\0"
235 "Enable GlobalISel's pre-legalizer load/store optimization pass\0"
236 "-aarch64-enable-gisel-sve\0"
237 "Enable / disable SVE scalable vectors in Global ISel\0"
238 "-aarch64-enable-global-isel-at-O\0"
239 "Enable GlobalISel at or below an opt level (-1 to disable)\0"
240 "-aarch64-enable-global-merge\0"
241 "Enable the global merge pass\0"
242 "-aarch64-enable-ldst-opt\0"
243 "Enable the load/store pair optimization pass\0"
244 "-aarch64-enable-logical-imm\0"
245 "Enable AArch64 logical imm instruction optimization\0"
246 "-aarch64-enable-loop-data-prefetch\0"
247 "Enable the loop data prefetch pass\0"
248 "-aarch64-enable-mcr\0"
249 "Enable the machine combiner pass\0"
250 "-aarch64-enable-mgather-combine\0"
251 "Combine extends of AArch64 masked gather intrinsics\0"
252 "-aarch64-enable-pipeliner\0"
253 "Enable Machine Pipeliner for AArch64\0"
254 "-aarch64-enable-predicate-as-counter-loop-rewrites\0"
255 "Enable rewriting loops with wide loop-carried masks to use predicate-as-counter\0"
256 "-aarch64-enable-promote-const\0"
257 "Enable the promote constant pass\0"
258 "-aarch64-enable-ptrue-coalescing\0"
259 "Enable coalescing of compatible AArch64 SVE PTRUE instructions\0"
260 "-aarch64-enable-simd-scalar\0"
261 "Enable use of AdvSIMD scalar integer instructions\0"
262 "-aarch64-enable-sink-fold\0"
263 "Enable sinking and folding of instruction copies\0"
264 "-aarch64-enable-stp-suppress\0"
265 "Suppress STP for AArch64\0"
266 "-aarch64-enable-subreg-liveness-tracking\0"
267 "Enable subreg liveness tracking\0"
268 "-aarch64-enable-sve-shuffle-opts\0"
269 "Enable pattern matching of shuffles that could make use of SVE instructions like tbl or the bottom/top variants\0"
270 "-aarch64-force-unroll-threshold\0"
271 "Threshold for forced unrolling of small loops in AArch64\0"
272 "-aarch64-insert-extract-base-cost\0"
273 "Base cost of vector insert/extract element\0"
274 "-aarch64-load-store-const-scan-limit\0"
275 "-aarch64-load-store-renaming\0"
276 "-aarch64-load-store-scan-limit\0"
277 "-aarch64-lower-to-sme-routines\0"
278 "Enable AArch64 SME memory operations to lower to librt functions\0"
279 "-aarch64-macho-enable-nonlazybind\0"
280 "Call nonlazybind functions via direct GOT load for Mach-O\0"
281 "-aarch64-max-xors\0"
282 "Maximum of xors\0"
283 "-aarch64-min-jump-table-entries\0"
284 "Set minimum number of entries to use a jump table on AArch64\0"
285 "-aarch64-order-frame-objects\0"
286 "sort stack allocations\0"
287 "-aarch64-outliner-compact-unwind-frame\0"
288 "Use a frame record for Mach-O non-leaf outlined functions\0"
289 "-aarch64-postlegalizer-consecutive-memops\0"
290 "Enable consecutive memop optimization in AArch64PostLegalizerCombiner\0"
291 "-aarch64-ptrauth-auth-checks\0"
292 "Check pointer authentication auth/resign failures\0"
293 "<none|poison|trap>\0"
294 "none,poison,trap\0"
295 "-aarch64-redzone\0"
296 "enable use of redzone on AArch64\0"
297 "-aarch64-search-limit\0"
298 "Restrict range of instructions to search for the machine-combiner gather pattern optimization\0"
299 "-aarch64-select-opt\0"
300 "Enable select to branch optimizations\0"
301 "-aarch64-simd-scalar-force-all\0"
302 "Force use of AdvSIMD scalar instructions everywhere\0"
303 "-aarch64-slh-loads\0"
304 "Sanitize loads from memory\0"
305 "-aarch64-split-sve-objects\0"
306 "Split allocation of ZPR & PPR objects\0"
307 "-aarch64-srlt-mitigate-sr2r\0"
308 "Enable SUBREG_TO_REG mitigation by adding 'implicit-def' for super-regs when using Subreg Liveness Tracking\0"
309 "-aarch64-stack-hazard-in-non-streaming\0"
310 "-aarch64-stack-hazard-remark-size\0"
311 "-aarch64-stack-hazard-size\0"
312 "-aarch64-streaming-hazard-size\0"
313 "Hazard size for streaming mode memory accesses. 0 = disabled\0"
314 "-aarch64-stress-ccmp\0"
315 "Turn all knobs to 11\0"
316 "-aarch64-stress-promote-const\0"
317 "Promote all vector constants\0"
318 "-aarch64-sve-vector-bits-max\0"
319 "Assume SVE vector registers are at most this big, with zero meaning no maximum size is assumed\0"
320 "-aarch64-sve-vector-bits-min\0"
321 "Assume SVE vector registers are at least this big, with zero meaning no minimum size is assumed\0"
322 "-aarch64-sve-vls-bfloat-support\0"
323 "Use SVE for fixed-length vector bfloat operations\0"
324 "-aarch64-tbz-offset-bits\0"
325 "Restrict range of TB[N]Z instructions (DEBUG)\0"
326 "-aarch64-umov-fold-scan-limit\0"
327 "-aarch64-update-scan-limit\0"
328 "-aarch64-use-aa\0"
329 "Enable the use of AA during codegen\0"
330 "-aarch64-use-conditional-fpmr-write\0"
331 "Only write FPMR when the requested value differs from the current value\0"
332 "-aarch64-use-featcpa-codegen\0"
333 "Generate ISD::PTRADD nodes for pointer arithmetic in SelectionDAG for FEAT_CPA\0"
334 "-aarch64-use-mops\0"
335 "Enable AArch64 MOPS instructions for memcpy/memset/memmove\0"
336 "-aarch64-use-tbi\0"
337 "Assume that top byte of an address is ignored\0"
338 "-arm64ec-generate-thunks\0"
339 "-arm64ec-lower-direct-to-indirect\0"
340 "-call-penalty-sm-change\0"
341 "Penalty of calling a function that requires a change to PSTATE.SM\0"
342 "-dmb-lookahead-threshold\0"
343 "The number of instructions to search for a redundant dmb\0"
344 "-enable-aarch64-lsr-cost-opt\0"
345 "-enable-aarch64-or-like-select\0"
346 "-enable-aarch64-sme-peephole-opt\0"
347 "Perform SME peephole optimization\0"
348 "-enable-falkor-hwpf-unroll-fix\0"
349 "-enable-fixedwidth-autovec-in-streaming-mode\0"
350 "-enable-scalable-autovec-in-streaming-mode\0"
351 "-force-streaming-compatible\0"
352 "Force the use of streaming-compatible code for all functions\0"
353 "-force-streaming\0"
354 "Force the use of streaming code for all functions\0"
355 "-frame-helper-size-threshold\0"
356 "The minimum number of instructions that are outlined in a frame helper (default = 2)\0"
357 "-homogeneous-prolog-epilog\0"
358 "Emit homogeneous prologue and epilogue for the size optimization (default = off)\0"
359 "-inline-call-penalty-sm-change\0"
360 "Penalty of inlining a call that requires a change to PSTATE.SM\0"
361 "-neon-nonconst-stride-overhead\0"
362 "-stack-tagging-first-slot-opt\0"
363 "Apply first slot optimization for stack tagging (eliminate ADDG Rt, Rn, 0, 0)\0"
364 "-stack-tagging-merge-init-scan-limit\0"
365 "-stack-tagging-merge-init-size-limit\0"
366 "-stack-tagging-merge-init\0"
367 "merge stack variable initializers with tagging when possible\0"
368 "-stack-tagging-merge-settag\0"
369 "merge settag instruction in function epilog\0"
370 "-stack-tagging-record-stack-history\0"
371 "Record stack frames with tagged allocations in a thread-local ring buffer\0"
372 "<none|instr>\0"
373 "none,instr\0"
374 "-stack-tagging-unchecked-ld-st\0"
375 "Unconditionally apply unchecked-ld-st optimization (even for large stack frames, or in the presence of variable sized allocas)\0"
376 "<never|safe|always>\0"
377 "never,safe,always\0"
378 "-stack-tagging-use-stack-safety\0"
379 "Use Stack Safety analysis results\0"
380 "-sve-gather-overhead\0"
381 "-sve-prefer-fixed-over-scalable-if-equal\0"
382 "-sve-scatter-overhead\0"
383 "-sve-tail-folding-insn-threshold\0"
384 "-sve-use-scalar-inc-vl\0"
385 "Prefer add+cnt over addvl/inc/dec\0"
386 "-sve-vscale-for-tuning\0"
387 "Force a vscale for tuning factor for SVE\0"
388 ;
389#ifdef __GNUC__
390#pragma GCC diagnostic pop
391#endif
392
393static constexpr llvm::StringTable
394OptionStrTable = OptionStrTableStorage;
395
396 static constexpr llvm::StringTable::Offset OptionPrefixesTable[] = {
397 0 /* prefixes */,
398 2 /* prefixes */, 1 /* '-' */, 3 /* '--' */
399 };
400
401 static constexpr llvm::opt::OptTable::HelpTextVariant OptionHelpTextVariantsTable[] = {
402 {0, 0},
403 };
404
405 static constexpr unsigned OptionSubCommandIDsTable[] = {
406 0 /* subcommands */
407 };
408
409 static constexpr llvm::opt::OptTable::InfoExtra OptionInfoExtrasTable[] = {
410 {0, 0, 0, 0, 0, 0, 0, 0},
411 {0, 0, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
412 {328, 0, 371, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
413 {1957, 0, 1981, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
414 {6032, 0, 6051, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
415 {9213, 0, 9226, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
416 {9395, 0, 9415, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
417 };
418
419 static constexpr llvm::opt::OptTable::Info OptionInfoTable[] = {
420 {6 /* <input> */, 0, 0, 0, 1, 0, llvm::opt::Option::InputClass},
421 {14 /* <unknown> */, 0, 0, 0, 1, 0, llvm::opt::Option::UnknownClass},
422 {24 /* -aarch64-a57-fp-load-balancing-force-all */, 65, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
423 {114 /* -aarch64-a57-fp-load-balancing-override */, 154, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
424 {214 /* -aarch64-authenticated-lr-check-method */, 253, 0, 0, 2, 1, llvm::opt::Option::SeparateOrEqClass},
425 {412 /* -aarch64-b-offset-bits */, 435, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
426 {476 /* -aarch64-base-histcnt-cost */, 503, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
427 {537 /* -aarch64-bcc-offset-bits */, 562, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
428 {605 /* -aarch64-br-merging-base-cost */, 635, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
429 {867 /* -aarch64-br-merging-cbz-tbnz-bias */, 901, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
430 {1068 /* -aarch64-br-merging-ccmp-bias */, 1098, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
431 {1257 /* -aarch64-br-merging-likely-bias */, 1289, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
432 {1444 /* -aarch64-br-merging-unlikely-bias */, 1478, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
433 {1639 /* -aarch64-cb-offset-bits */, 1663, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
434 {1705 /* -aarch64-cbz-offset-bits */, 1730, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
435 {1776 /* -aarch64-ccmp-limit */, 1796, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
436 {1848 /* -aarch64-cfi-llvm-set-ra-sign-state */, 1884, 0, 0, 3, 1, llvm::opt::Option::SeparateOrEqClass},
437 {2003 /* -aarch64-code-layout-opt-align-functions */, 2044, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
438 {2124 /* -aarch64-disable-multivector-spill-fill */, 2164, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
439 {2210 /* -aarch64-early-ifcvt */, 2231, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
440 {2266 /* -aarch64-elf-ldtls-generation */, 2296, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
441 {2344 /* -aarch64-emit-debug-tls-location */, 2377, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
442 {2440 /* -aarch64-enable-atomic-cfg-tidy */, 2472, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
443 {2568 /* -aarch64-enable-branch-relax */, 2597, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
444 {2637 /* -aarch64-enable-branch-targets */, 2668, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
445 {2706 /* -aarch64-enable-ccmp */, 2727, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
446 {2758 /* -aarch64-enable-collect-loh */, 2786, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
447 {2849 /* -aarch64-enable-compress-jump-tables */, 2886, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
448 {2930 /* -aarch64-enable-cond-br-tune */, 2959, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
449 {3001 /* -aarch64-enable-condopt */, 3025, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
450 {3061 /* -aarch64-enable-copy-propagation */, 3094, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
451 {3146 /* -aarch64-enable-copyelim */, 3171, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
452 {3214 /* -aarch64-enable-dead-defs */, 3240, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
453 {3347 /* -aarch64-enable-early-ifcvt */, 3375, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
454 {3399 /* -aarch64-enable-ext-to-tbl */, 3426, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
455 {3455 /* -aarch64-enable-falkor-hwpf-fix */, 3487, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
456 {3489 /* -aarch64-enable-gep-opt */, 3513, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
457 {3550 /* -aarch64-enable-gisel-ldst-postlegal */, 3587, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
458 {3651 /* -aarch64-enable-gisel-ldst-prelegal */, 3687, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
459 {3750 /* -aarch64-enable-gisel-sve */, 3776, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
460 {3829 /* -aarch64-enable-global-isel-at-O */, 3862, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
461 {3921 /* -aarch64-enable-global-merge */, 3950, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
462 {3979 /* -aarch64-enable-ldst-opt */, 4004, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
463 {4049 /* -aarch64-enable-logical-imm */, 4077, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
464 {4129 /* -aarch64-enable-loop-data-prefetch */, 4164, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
465 {4199 /* -aarch64-enable-mcr */, 4219, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
466 {4252 /* -aarch64-enable-mgather-combine */, 4284, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
467 {4336 /* -aarch64-enable-pipeliner */, 4362, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
468 {4399 /* -aarch64-enable-predicate-as-counter-loop-rewrites */, 4450, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
469 {4530 /* -aarch64-enable-promote-const */, 4560, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
470 {4593 /* -aarch64-enable-ptrue-coalescing */, 4626, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
471 {4689 /* -aarch64-enable-simd-scalar */, 4717, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
472 {4767 /* -aarch64-enable-sink-fold */, 4793, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
473 {4842 /* -aarch64-enable-stp-suppress */, 4871, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
474 {4896 /* -aarch64-enable-subreg-liveness-tracking */, 4937, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
475 {4969 /* -aarch64-enable-sve-shuffle-opts */, 5002, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
476 {5114 /* -aarch64-force-unroll-threshold */, 5146, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
477 {5203 /* -aarch64-insert-extract-base-cost */, 5237, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
478 {5280 /* -aarch64-load-store-const-scan-limit */, 3487, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
479 {5317 /* -aarch64-load-store-renaming */, 3487, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
480 {5346 /* -aarch64-load-store-scan-limit */, 3487, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
481 {5377 /* -aarch64-lower-to-sme-routines */, 5408, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
482 {5473 /* -aarch64-macho-enable-nonlazybind */, 5507, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
483 {5565 /* -aarch64-max-xors */, 5583, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
484 {5599 /* -aarch64-min-jump-table-entries */, 5631, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
485 {5692 /* -aarch64-order-frame-objects */, 5721, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
486 {5744 /* -aarch64-outliner-compact-unwind-frame */, 5783, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
487 {5841 /* -aarch64-postlegalizer-consecutive-memops */, 5883, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
488 {5953 /* -aarch64-ptrauth-auth-checks */, 5982, 0, 0, 4, 1, llvm::opt::Option::SeparateOrEqClass},
489 {6068 /* -aarch64-redzone */, 6085, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
490 {6118 /* -aarch64-search-limit */, 6140, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
491 {6234 /* -aarch64-select-opt */, 6254, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
492 {6292 /* -aarch64-simd-scalar-force-all */, 6323, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
493 {6375 /* -aarch64-slh-loads */, 6394, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
494 {6421 /* -aarch64-split-sve-objects */, 6448, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
495 {6486 /* -aarch64-srlt-mitigate-sr2r */, 6514, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
496 {6622 /* -aarch64-stack-hazard-in-non-streaming */, 3487, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
497 {6661 /* -aarch64-stack-hazard-remark-size */, 3487, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
498 {6695 /* -aarch64-stack-hazard-size */, 0, 0, OPT_aarch64_streaming_hazard_size, 1, 1, llvm::opt::Option::SeparateOrEqClass},
499 {6722 /* -aarch64-streaming-hazard-size */, 6753, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
500 {6814 /* -aarch64-stress-ccmp */, 6835, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
501 {6856 /* -aarch64-stress-promote-const */, 6886, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
502 {6915 /* -aarch64-sve-vector-bits-max */, 6944, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
503 {7039 /* -aarch64-sve-vector-bits-min */, 7068, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
504 {7164 /* -aarch64-sve-vls-bfloat-support */, 7196, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
505 {7246 /* -aarch64-tbz-offset-bits */, 7271, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
506 {7317 /* -aarch64-umov-fold-scan-limit */, 3487, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
507 {7347 /* -aarch64-update-scan-limit */, 3487, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
508 {7374 /* -aarch64-use-aa */, 7390, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
509 {7426 /* -aarch64-use-conditional-fpmr-write */, 7462, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
510 {7534 /* -aarch64-use-featcpa-codegen */, 7563, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
511 {7642 /* -aarch64-use-mops */, 7660, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
512 {7719 /* -aarch64-use-tbi */, 7736, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
513 {7782 /* -arm64ec-generate-thunks */, 3487, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
514 {7807 /* -arm64ec-lower-direct-to-indirect */, 3487, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
515 {7841 /* -call-penalty-sm-change */, 7865, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
516 {7931 /* -dmb-lookahead-threshold */, 7956, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
517 {8013 /* -enable-aarch64-lsr-cost-opt */, 3487, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
518 {8042 /* -enable-aarch64-or-like-select */, 3487, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
519 {8073 /* -enable-aarch64-sme-peephole-opt */, 8106, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
520 {8140 /* -enable-falkor-hwpf-unroll-fix */, 3487, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
521 {8171 /* -enable-fixedwidth-autovec-in-streaming-mode */, 3487, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
522 {8216 /* -enable-scalable-autovec-in-streaming-mode */, 3487, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
523 {8259 /* -force-streaming-compatible */, 8287, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
524 {8348 /* -force-streaming */, 8365, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
525 {8415 /* -frame-helper-size-threshold */, 8444, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
526 {8529 /* -homogeneous-prolog-epilog */, 8556, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
527 {8637 /* -inline-call-penalty-sm-change */, 8668, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
528 {8731 /* -neon-nonconst-stride-overhead */, 3487, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
529 {8762 /* -stack-tagging-first-slot-opt */, 8792, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
530 {8870 /* -stack-tagging-merge-init-scan-limit */, 3487, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
531 {8907 /* -stack-tagging-merge-init-size-limit */, 3487, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
532 {8944 /* -stack-tagging-merge-init */, 8970, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
533 {9031 /* -stack-tagging-merge-settag */, 9059, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
534 {9103 /* -stack-tagging-record-stack-history */, 9139, 0, 0, 5, 1, llvm::opt::Option::SeparateOrEqClass},
535 {9237 /* -stack-tagging-unchecked-ld-st */, 9268, 0, 0, 6, 1, llvm::opt::Option::SeparateOrEqClass},
536 {9433 /* -stack-tagging-use-stack-safety */, 9465, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
537 {9499 /* -sve-gather-overhead */, 3487, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
538 {9520 /* -sve-prefer-fixed-over-scalable-if-equal */, 3487, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
539 {9561 /* -sve-scatter-overhead */, 3487, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
540 {9583 /* -sve-tail-folding-insn-threshold */, 3487, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
541 {9616 /* -sve-use-scalar-inc-vl */, 9639, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
542 {9673 /* -sve-vscale-for-tuning */, 9696, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
543 };
544
545 return {OptionStrTable, OptionPrefixesTable,
546 OptionInfoTable, OptionInfoExtrasTable, OptionHelpTextVariantsTable, {}, OptionSubCommandIDsTable};
547}
548#undef OPTTABLE_CODE
549#endif // OPTTABLE_CODE || OPTIONS_STRUCT_DEFS
550
551
552#ifdef OPTIONS_STRUCT_DECL
553#undef OPTIONS_STRUCT_DECL
554#include "llvm/ADT/ArrayRef.h"
555#include "llvm/ADT/BoolOrDefault.h"
556#include "llvm/ADT/StringRef.h"
557#include "llvm/Support/Allocator.h"
558#include "llvm/Support/LibraryOptionsContext.h"
559
560namespace llvm {
561namespace opt {
562class Arg;
563class LibraryOptionsParser;
564class OptTable;
565} // namespace opt
566} // namespace llvm
567
568namespace llvm {
569struct AArch64Options {
570 bool a57_fp_load_balancing_force_all{false};
571 unsigned a57_fp_load_balancing_override{0};
572 bool simd_scalar_force_all{false};
573 bool arm64ec_generate_thunks{true};
574 bool arm64ec_lower_direct_to_indirect{true};
575 std::optional<AArch64PAuth::PtrauthCheckMode> ptrauth_auth_checks{std::nullopt};
576 unsigned code_layout_opt_align_functions{64};
577 unsigned ccmp_limit{30};
578 bool stress_ccmp{false};
579 bool disable_multivector_spill_fill{false};
580 bool order_frame_objects{true};
581 bool redzone{false};
582 bool split_sve_objects{true};
583 bool stack_hazard_in_non_streaming{false};
584 unsigned stack_hazard_remark_size{0};
585 bool homogeneous_prolog_epilog{false};
586 bool stack_tagging_merge_settag{true};
587 unsigned b_offset_bits{26};
588 unsigned bcc_offset_bits{19};
589 unsigned cb_offset_bits{9};
590 unsigned cbz_offset_bits{19};
591 bool outliner_compact_unwind_frame{true};
592 unsigned search_limit{2048};
593 unsigned tbz_offset_bits{14};
594 int br_merging_base_cost{2};
595 int br_merging_cbz_tbnz_bias{6};
596 int br_merging_ccmp_bias{6};
597 int br_merging_likely_bias{0};
598 int br_merging_unlikely_bias{-1};
599 bool elf_ldtls_generation{false};
600 bool enable_ext_to_tbl{true};
601 bool enable_gisel_sve{false};
602 bool enable_logical_imm{true};
603 bool enable_mgather_combine{true};
604 unsigned max_xors{16};
605 bool sve_vls_bfloat_support{false};
606 bool use_conditional_fpmr_write{false};
607 bool use_featcpa_codegen{false};
608 unsigned load_store_const_scan_limit{10};
609 bool load_store_renaming{true};
610 unsigned load_store_scan_limit{20};
611 unsigned umov_fold_scan_limit{16};
612 unsigned update_scan_limit{100};
613 int frame_helper_size_threshold{2};
614 AArch64PAuth::SetRAStateMode cfi_llvm_set_ra_sign_state{AArch64PAuth::SetRAStateMode::PAuthLR};
615 bool stress_promote_const{false};
616 bool enable_ptrue_coalescing{true};
617 bool lower_to_sme_routines{true};
618 bool use_mops{true};
619 bool slh_loads{true};
620 llvm::BoolOrDefault stack_tagging_merge_init{llvm::BoolOrDefault::Default};
621 unsigned stack_tagging_merge_init_scan_limit{40};
622 unsigned stack_tagging_merge_init_size_limit{272};
623 std::optional<AArch64::StackTaggingRecordStackHistoryMode> stack_tagging_record_stack_history{std::nullopt};
624 llvm::BoolOrDefault stack_tagging_use_stack_safety{llvm::BoolOrDefault::Default};
625 bool stack_tagging_first_slot_opt{true};
626 AArch64::UncheckedLdStMode stack_tagging_unchecked_ld_st{AArch64::UncheckedLdStMode::Safe};
627 std::optional<AArch64PAuth::AuthCheckMethod> authenticated_lr_check_method{std::nullopt};
628 bool early_ifcvt{true};
629 bool enable_subreg_liveness_tracking{false};
630 std::optional<unsigned> insert_extract_base_cost{std::nullopt};
631 bool macho_enable_nonlazybind{false};
632 std::optional<unsigned> min_jump_table_entries{std::nullopt};
633 std::optional<unsigned> streaming_hazard_size{std::nullopt};
634 bool use_aa{true};
635 bool use_tbi{false};
636 llvm::BoolOrDefault sve_use_scalar_inc_vl{llvm::BoolOrDefault::Default};
637 std::optional<unsigned> sve_vscale_for_tuning{std::nullopt};
638 bool enable_atomic_cfg_tidy{true};
639 bool enable_branch_relax{true};
640 bool enable_branch_targets{true};
641 bool enable_ccmp{true};
642 bool enable_collect_loh{true};
643 bool enable_compress_jump_tables{true};
644 bool enable_cond_br_tune{true};
645 bool enable_condopt{true};
646 bool enable_copy_propagation{true};
647 bool enable_copyelim{true};
648 bool enable_dead_defs{true};
649 bool enable_early_ifcvt{true};
650 bool enable_falkor_hwpf_fix{true};
651 bool enable_gep_opt{false};
652 bool enable_gisel_ldst_postlegal{false};
653 bool enable_gisel_ldst_prelegal{true};
654 int enable_global_isel_at_O{0};
655 llvm::BoolOrDefault enable_global_merge{llvm::BoolOrDefault::Default};
656 bool enable_ldst_opt{true};
657 bool enable_loop_data_prefetch{true};
658 bool enable_mcr{true};
659 bool enable_pipeliner{false};
660 bool enable_predicate_as_counter_loop_rewrites{true};
661 bool enable_promote_const{true};
662 bool enable_simd_scalar{false};
663 bool enable_sink_fold{true};
664 bool enable_stp_suppress{true};
665 bool enable_sve_shuffle_opts{true};
666 bool select_opt{true};
667 bool srlt_mitigate_sr2r{true};
668 unsigned sve_vector_bits_max{0};
669 unsigned sve_vector_bits_min{0};
670 bool enable_aarch64_sme_peephole_opt{true};
671 bool force_streaming{false};
672 bool force_streaming_compatible{false};
673 bool emit_debug_tls_location{false};
674 unsigned base_histcnt_cost{8};
675 int force_unroll_threshold{0};
676 unsigned call_penalty_sm_change{5};
677 unsigned dmb_lookahead_threshold{10};
678 bool enable_aarch64_lsr_cost_opt{true};
679 bool enable_aarch64_or_like_select{true};
680 bool enable_falkor_hwpf_unroll_fix{true};
681 bool enable_fixedwidth_autovec_in_streaming_mode{false};
682 bool enable_scalable_autovec_in_streaming_mode{false};
683 unsigned inline_call_penalty_sm_change{10};
684 unsigned neon_nonconst_stride_overhead{10};
685 std::optional<unsigned> sve_gather_overhead{std::nullopt};
686 llvm::BoolOrDefault sve_prefer_fixed_over_scalable_if_equal{llvm::BoolOrDefault::Default};
687 std::optional<unsigned> sve_scatter_overhead{std::nullopt};
688 unsigned sve_tail_folding_insn_threshold{15};
689 bool postlegalizer_consecutive_memops{true};
690
691 static constexpr bool PerContext = true;
692 static const llvm::opt::OptTable &optTable();
693 /// Sets the member that \p A names, allocating a list from \p Alloc.
694 /// Returns false if the value is invalid.
695 bool apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc);
696
697private:
698 friend class llvm::cl::LibraryOptionsContext;
699 friend class llvm::opt::LibraryOptionsParser;
700
701 static AArch64Options Global;
702 static const AArch64Options Default;
703};
704} // namespace llvm
705#endif // OPTIONS_STRUCT_DECL
706
707#ifdef OPTIONS_STRUCT_DEFS
708#undef OPTIONS_STRUCT_DEFS
709llvm::AArch64Options llvm::AArch64Options::Global;
710LLVM_REQUIRE_CONSTANT_INITIALIZATION const llvm::AArch64Options llvm::AArch64Options::Default;
711
712const llvm::opt::OptTable &llvm::AArch64Options::optTable() {
713 static const llvm::opt::LibraryOptTable T(optionTables());
714 return T;
715}
716
717bool llvm::AArch64Options::apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc) {
718 switch (A.getOption().getID()) {
719 case OPT_aarch64_a57_fp_load_balancing_force_all:
720 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", a57_fp_load_balancing_force_all, Alloc);
721 case OPT_aarch64_a57_fp_load_balancing_override:
722 return llvm::opt::parseArgValue(A.getValue(), a57_fp_load_balancing_override, Alloc);
723 case OPT_aarch64_authenticated_lr_check_method:
724 return llvm::opt::parseArgValue(A.getValue(), authenticated_lr_check_method, Alloc, [](llvm::StringRef V, auto &X) {
725 if (V == "none") {
726 X = AArch64PAuth::AuthCheckMethod::None;
727 return true;
728 }
729 if (V == "load") {
730 X = AArch64PAuth::AuthCheckMethod::DummyLoad;
731 return true;
732 }
733 if (V == "high-bits-notbi") {
734 X = AArch64PAuth::AuthCheckMethod::HighBitsNoTBI;
735 return true;
736 }
737 if (V == "xpac") {
738 X = AArch64PAuth::AuthCheckMethod::XPAC;
739 return true;
740 }
741 if (V == "xpac-hint") {
742 X = AArch64PAuth::AuthCheckMethod::XPACHint;
743 return true;
744 }
745 return false;
746 });
747 case OPT_aarch64_b_offset_bits:
748 return llvm::opt::parseArgValue(A.getValue(), b_offset_bits, Alloc);
749 case OPT_aarch64_base_histcnt_cost:
750 return llvm::opt::parseArgValue(A.getValue(), base_histcnt_cost, Alloc);
751 case OPT_aarch64_bcc_offset_bits:
752 return llvm::opt::parseArgValue(A.getValue(), bcc_offset_bits, Alloc);
753 case OPT_aarch64_br_merging_base_cost:
754 return llvm::opt::parseArgValue(A.getValue(), br_merging_base_cost, Alloc);
755 case OPT_aarch64_br_merging_cbz_tbnz_bias:
756 return llvm::opt::parseArgValue(A.getValue(), br_merging_cbz_tbnz_bias, Alloc);
757 case OPT_aarch64_br_merging_ccmp_bias:
758 return llvm::opt::parseArgValue(A.getValue(), br_merging_ccmp_bias, Alloc);
759 case OPT_aarch64_br_merging_likely_bias:
760 return llvm::opt::parseArgValue(A.getValue(), br_merging_likely_bias, Alloc);
761 case OPT_aarch64_br_merging_unlikely_bias:
762 return llvm::opt::parseArgValue(A.getValue(), br_merging_unlikely_bias, Alloc);
763 case OPT_aarch64_cb_offset_bits:
764 return llvm::opt::parseArgValue(A.getValue(), cb_offset_bits, Alloc);
765 case OPT_aarch64_cbz_offset_bits:
766 return llvm::opt::parseArgValue(A.getValue(), cbz_offset_bits, Alloc);
767 case OPT_aarch64_ccmp_limit:
768 return llvm::opt::parseArgValue(A.getValue(), ccmp_limit, Alloc);
769 case OPT_aarch64_cfi_llvm_set_ra_sign_state:
770 return llvm::opt::parseArgValue(A.getValue(), cfi_llvm_set_ra_sign_state, Alloc, [](llvm::StringRef V, auto &X) {
771 if (V == "never") {
772 X = AArch64PAuth::SetRAStateMode::Never;
773 return true;
774 }
775 if (V == "pauth-lr") {
776 X = AArch64PAuth::SetRAStateMode::PAuthLR;
777 return true;
778 }
779 if (V == "always") {
780 X = AArch64PAuth::SetRAStateMode::Always;
781 return true;
782 }
783 return false;
784 });
785 case OPT_aarch64_code_layout_opt_align_functions:
786 return llvm::opt::parseArgValue(A.getValue(), code_layout_opt_align_functions, Alloc);
787 case OPT_aarch64_disable_multivector_spill_fill:
788 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_multivector_spill_fill, Alloc);
789 case OPT_aarch64_early_ifcvt:
790 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", early_ifcvt, Alloc);
791 case OPT_aarch64_elf_ldtls_generation:
792 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", elf_ldtls_generation, Alloc);
793 case OPT_aarch64_emit_debug_tls_location:
794 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", emit_debug_tls_location, Alloc);
795 case OPT_aarch64_enable_atomic_cfg_tidy:
796 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_atomic_cfg_tidy, Alloc);
797 case OPT_aarch64_enable_branch_relax:
798 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_branch_relax, Alloc);
799 case OPT_aarch64_enable_branch_targets:
800 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_branch_targets, Alloc);
801 case OPT_aarch64_enable_ccmp:
802 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_ccmp, Alloc);
803 case OPT_aarch64_enable_collect_loh:
804 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_collect_loh, Alloc);
805 case OPT_aarch64_enable_compress_jump_tables:
806 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_compress_jump_tables, Alloc);
807 case OPT_aarch64_enable_cond_br_tune:
808 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_cond_br_tune, Alloc);
809 case OPT_aarch64_enable_condopt:
810 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_condopt, Alloc);
811 case OPT_aarch64_enable_copy_propagation:
812 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_copy_propagation, Alloc);
813 case OPT_aarch64_enable_copyelim:
814 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_copyelim, Alloc);
815 case OPT_aarch64_enable_dead_defs:
816 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_dead_defs, Alloc);
817 case OPT_aarch64_enable_early_ifcvt:
818 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_early_ifcvt, Alloc);
819 case OPT_aarch64_enable_ext_to_tbl:
820 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_ext_to_tbl, Alloc);
821 case OPT_aarch64_enable_falkor_hwpf_fix:
822 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_falkor_hwpf_fix, Alloc);
823 case OPT_aarch64_enable_gep_opt:
824 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_gep_opt, Alloc);
825 case OPT_aarch64_enable_gisel_ldst_postlegal:
826 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_gisel_ldst_postlegal, Alloc);
827 case OPT_aarch64_enable_gisel_ldst_prelegal:
828 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_gisel_ldst_prelegal, Alloc);
829 case OPT_aarch64_enable_gisel_sve:
830 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_gisel_sve, Alloc);
831 case OPT_aarch64_enable_global_isel_at_O:
832 return llvm::opt::parseArgValue(A.getValue(), enable_global_isel_at_O, Alloc);
833 case OPT_aarch64_enable_global_merge:
834 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_global_merge, Alloc);
835 case OPT_aarch64_enable_ldst_opt:
836 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_ldst_opt, Alloc);
837 case OPT_aarch64_enable_logical_imm:
838 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_logical_imm, Alloc);
839 case OPT_aarch64_enable_loop_data_prefetch:
840 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_loop_data_prefetch, Alloc);
841 case OPT_aarch64_enable_mcr:
842 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_mcr, Alloc);
843 case OPT_aarch64_enable_mgather_combine:
844 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_mgather_combine, Alloc);
845 case OPT_aarch64_enable_pipeliner:
846 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_pipeliner, Alloc);
847 case OPT_aarch64_enable_predicate_as_counter_loop_rewrites:
848 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_predicate_as_counter_loop_rewrites, Alloc);
849 case OPT_aarch64_enable_promote_const:
850 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_promote_const, Alloc);
851 case OPT_aarch64_enable_ptrue_coalescing:
852 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_ptrue_coalescing, Alloc);
853 case OPT_aarch64_enable_simd_scalar:
854 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_simd_scalar, Alloc);
855 case OPT_aarch64_enable_sink_fold:
856 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_sink_fold, Alloc);
857 case OPT_aarch64_enable_stp_suppress:
858 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_stp_suppress, Alloc);
859 case OPT_aarch64_enable_subreg_liveness_tracking:
860 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_subreg_liveness_tracking, Alloc);
861 case OPT_aarch64_enable_sve_shuffle_opts:
862 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_sve_shuffle_opts, Alloc);
863 case OPT_aarch64_force_unroll_threshold:
864 return llvm::opt::parseArgValue(A.getValue(), force_unroll_threshold, Alloc);
865 case OPT_aarch64_insert_extract_base_cost:
866 return llvm::opt::parseArgValue(A.getValue(), insert_extract_base_cost, Alloc);
867 case OPT_aarch64_load_store_const_scan_limit:
868 return llvm::opt::parseArgValue(A.getValue(), load_store_const_scan_limit, Alloc);
869 case OPT_aarch64_load_store_renaming:
870 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", load_store_renaming, Alloc);
871 case OPT_aarch64_load_store_scan_limit:
872 return llvm::opt::parseArgValue(A.getValue(), load_store_scan_limit, Alloc);
873 case OPT_aarch64_lower_to_sme_routines:
874 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", lower_to_sme_routines, Alloc);
875 case OPT_aarch64_macho_enable_nonlazybind:
876 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", macho_enable_nonlazybind, Alloc);
877 case OPT_aarch64_max_xors:
878 return llvm::opt::parseArgValue(A.getValue(), max_xors, Alloc);
879 case OPT_aarch64_min_jump_table_entries:
880 return llvm::opt::parseArgValue(A.getValue(), min_jump_table_entries, Alloc);
881 case OPT_aarch64_order_frame_objects:
882 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", order_frame_objects, Alloc);
883 case OPT_aarch64_outliner_compact_unwind_frame:
884 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", outliner_compact_unwind_frame, Alloc);
885 case OPT_aarch64_postlegalizer_consecutive_memops:
886 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", postlegalizer_consecutive_memops, Alloc);
887 case OPT_aarch64_ptrauth_auth_checks:
888 return llvm::opt::parseArgValue(A.getValue(), ptrauth_auth_checks, Alloc, [](llvm::StringRef V, auto &X) {
889 if (V == "none") {
890 X = AArch64PAuth::PtrauthCheckMode::Unchecked;
891 return true;
892 }
893 if (V == "poison") {
894 X = AArch64PAuth::PtrauthCheckMode::Poison;
895 return true;
896 }
897 if (V == "trap") {
898 X = AArch64PAuth::PtrauthCheckMode::Trap;
899 return true;
900 }
901 return false;
902 });
903 case OPT_aarch64_redzone:
904 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", redzone, Alloc);
905 case OPT_aarch64_search_limit:
906 return llvm::opt::parseArgValue(A.getValue(), search_limit, Alloc);
907 case OPT_aarch64_select_opt:
908 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", select_opt, Alloc);
909 case OPT_aarch64_simd_scalar_force_all:
910 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", simd_scalar_force_all, Alloc);
911 case OPT_aarch64_slh_loads:
912 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", slh_loads, Alloc);
913 case OPT_aarch64_split_sve_objects:
914 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", split_sve_objects, Alloc);
915 case OPT_aarch64_srlt_mitigate_sr2r:
916 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", srlt_mitigate_sr2r, Alloc);
917 case OPT_aarch64_stack_hazard_in_non_streaming:
918 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", stack_hazard_in_non_streaming, Alloc);
919 case OPT_aarch64_stack_hazard_remark_size:
920 return llvm::opt::parseArgValue(A.getValue(), stack_hazard_remark_size, Alloc);
921 case OPT_aarch64_streaming_hazard_size:
922 return llvm::opt::parseArgValue(A.getValue(), streaming_hazard_size, Alloc);
923 case OPT_aarch64_stress_ccmp:
924 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", stress_ccmp, Alloc);
925 case OPT_aarch64_stress_promote_const:
926 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", stress_promote_const, Alloc);
927 case OPT_aarch64_sve_vector_bits_max:
928 return llvm::opt::parseArgValue(A.getValue(), sve_vector_bits_max, Alloc);
929 case OPT_aarch64_sve_vector_bits_min:
930 return llvm::opt::parseArgValue(A.getValue(), sve_vector_bits_min, Alloc);
931 case OPT_aarch64_sve_vls_bfloat_support:
932 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sve_vls_bfloat_support, Alloc);
933 case OPT_aarch64_tbz_offset_bits:
934 return llvm::opt::parseArgValue(A.getValue(), tbz_offset_bits, Alloc);
935 case OPT_aarch64_umov_fold_scan_limit:
936 return llvm::opt::parseArgValue(A.getValue(), umov_fold_scan_limit, Alloc);
937 case OPT_aarch64_update_scan_limit:
938 return llvm::opt::parseArgValue(A.getValue(), update_scan_limit, Alloc);
939 case OPT_aarch64_use_aa:
940 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", use_aa, Alloc);
941 case OPT_aarch64_use_conditional_fpmr_write:
942 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", use_conditional_fpmr_write, Alloc);
943 case OPT_aarch64_use_featcpa_codegen:
944 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", use_featcpa_codegen, Alloc);
945 case OPT_aarch64_use_mops:
946 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", use_mops, Alloc);
947 case OPT_aarch64_use_tbi:
948 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", use_tbi, Alloc);
949 case OPT_arm64ec_generate_thunks:
950 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", arm64ec_generate_thunks, Alloc);
951 case OPT_arm64ec_lower_direct_to_indirect:
952 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", arm64ec_lower_direct_to_indirect, Alloc);
953 case OPT_call_penalty_sm_change:
954 return llvm::opt::parseArgValue(A.getValue(), call_penalty_sm_change, Alloc);
955 case OPT_dmb_lookahead_threshold:
956 return llvm::opt::parseArgValue(A.getValue(), dmb_lookahead_threshold, Alloc);
957 case OPT_enable_aarch64_lsr_cost_opt:
958 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_aarch64_lsr_cost_opt, Alloc);
959 case OPT_enable_aarch64_or_like_select:
960 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_aarch64_or_like_select, Alloc);
961 case OPT_enable_aarch64_sme_peephole_opt:
962 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_aarch64_sme_peephole_opt, Alloc);
963 case OPT_enable_falkor_hwpf_unroll_fix:
964 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_falkor_hwpf_unroll_fix, Alloc);
965 case OPT_enable_fixedwidth_autovec_in_streaming_mode:
966 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_fixedwidth_autovec_in_streaming_mode, Alloc);
967 case OPT_enable_scalable_autovec_in_streaming_mode:
968 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_scalable_autovec_in_streaming_mode, Alloc);
969 case OPT_force_streaming_compatible:
970 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", force_streaming_compatible, Alloc);
971 case OPT_force_streaming:
972 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", force_streaming, Alloc);
973 case OPT_frame_helper_size_threshold:
974 return llvm::opt::parseArgValue(A.getValue(), frame_helper_size_threshold, Alloc);
975 case OPT_homogeneous_prolog_epilog:
976 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", homogeneous_prolog_epilog, Alloc);
977 case OPT_inline_call_penalty_sm_change:
978 return llvm::opt::parseArgValue(A.getValue(), inline_call_penalty_sm_change, Alloc);
979 case OPT_neon_nonconst_stride_overhead:
980 return llvm::opt::parseArgValue(A.getValue(), neon_nonconst_stride_overhead, Alloc);
981 case OPT_stack_tagging_first_slot_opt:
982 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", stack_tagging_first_slot_opt, Alloc);
983 case OPT_stack_tagging_merge_init_scan_limit:
984 return llvm::opt::parseArgValue(A.getValue(), stack_tagging_merge_init_scan_limit, Alloc);
985 case OPT_stack_tagging_merge_init_size_limit:
986 return llvm::opt::parseArgValue(A.getValue(), stack_tagging_merge_init_size_limit, Alloc);
987 case OPT_stack_tagging_merge_init:
988 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", stack_tagging_merge_init, Alloc);
989 case OPT_stack_tagging_merge_settag:
990 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", stack_tagging_merge_settag, Alloc);
991 case OPT_stack_tagging_record_stack_history:
992 return llvm::opt::parseArgValue(A.getValue(), stack_tagging_record_stack_history, Alloc, [](llvm::StringRef V, auto &X) {
993 if (V == "none") {
994 X = AArch64::StackTaggingRecordStackHistoryMode::None;
995 return true;
996 }
997 if (V == "instr") {
998 X = AArch64::StackTaggingRecordStackHistoryMode::Instr;
999 return true;
1000 }
1001 return false;
1002 });
1003 case OPT_stack_tagging_unchecked_ld_st:
1004 return llvm::opt::parseArgValue(A.getValue(), stack_tagging_unchecked_ld_st, Alloc, [](llvm::StringRef V, auto &X) {
1005 if (V == "never") {
1006 X = AArch64::UncheckedLdStMode::Never;
1007 return true;
1008 }
1009 if (V == "safe") {
1010 X = AArch64::UncheckedLdStMode::Safe;
1011 return true;
1012 }
1013 if (V == "always") {
1014 X = AArch64::UncheckedLdStMode::Always;
1015 return true;
1016 }
1017 return false;
1018 });
1019 case OPT_stack_tagging_use_stack_safety:
1020 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", stack_tagging_use_stack_safety, Alloc);
1021 case OPT_sve_gather_overhead:
1022 return llvm::opt::parseArgValue(A.getValue(), sve_gather_overhead, Alloc);
1023 case OPT_sve_prefer_fixed_over_scalable_if_equal:
1024 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sve_prefer_fixed_over_scalable_if_equal, Alloc);
1025 case OPT_sve_scatter_overhead:
1026 return llvm::opt::parseArgValue(A.getValue(), sve_scatter_overhead, Alloc);
1027 case OPT_sve_tail_folding_insn_threshold:
1028 return llvm::opt::parseArgValue(A.getValue(), sve_tail_folding_insn_threshold, Alloc);
1029 case OPT_sve_use_scalar_inc_vl:
1030 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", sve_use_scalar_inc_vl, Alloc);
1031 case OPT_sve_vscale_for_tuning:
1032 return llvm::opt::parseArgValue(A.getValue(), sve_vscale_for_tuning, Alloc);
1033 }
1034 llvm_unreachable("option without a member");
1035}
1036#endif // OPTIONS_STRUCT_DEFS
1037/////////
1038// ValuesCode
1039
1040#ifdef OPTTABLE_VALUES_CODE
1041static llvm::StringRef getOptionValuesCode(unsigned ID) {
1042 switch (ID) {
1043 }
1044 return {};
1045}
1046#undef OPTTABLE_VALUES_CODE
1047#endif // OPTTABLE_VALUES_CODE
1048/////////
1049// Groups
1050
1051#ifdef OPTION
1052
1053//////////
1054// Options
1055
1056OPTION(0, 6 /* <input> */, INPUT, Input, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0)
1057OPTION(0, 14 /* <unknown> */, UNKNOWN, Unknown, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0)
1058OPTION(1, 24 /* -aarch64-a57-fp-load-balancing-force-all */, anonymous_0, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 65, 0, 0, 0, 0)
1059OPTION(1, 114 /* -aarch64-a57-fp-load-balancing-override */, anonymous_1, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 154, 0, 0, 0, 0)
1060OPTION(1, 214 /* -aarch64-authenticated-lr-check-method */, anonymous_57, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 253, 0, 328, 371, 0)
1061OPTION(1, 412 /* -aarch64-b-offset-bits */, anonymous_17, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 435, 0, 0, 0, 0)
1062OPTION(1, 476 /* -aarch64-base-histcnt-cost */, anonymous_105, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 503, 0, 0, 0, 0)
1063OPTION(1, 537 /* -aarch64-bcc-offset-bits */, anonymous_18, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 562, 0, 0, 0, 0)
1064OPTION(1, 605 /* -aarch64-br-merging-base-cost */, anonymous_24, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 635, 0, 0, 0, 0)
1065OPTION(1, 867 /* -aarch64-br-merging-cbz-tbnz-bias */, anonymous_25, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 901, 0, 0, 0, 0)
1066OPTION(1, 1068 /* -aarch64-br-merging-ccmp-bias */, anonymous_26, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1098, 0, 0, 0, 0)
1067OPTION(1, 1257 /* -aarch64-br-merging-likely-bias */, anonymous_27, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1289, 0, 0, 0, 0)
1068OPTION(1, 1444 /* -aarch64-br-merging-unlikely-bias */, anonymous_28, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1478, 0, 0, 0, 0)
1069OPTION(1, 1639 /* -aarch64-cb-offset-bits */, anonymous_19, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1663, 0, 0, 0, 0)
1070OPTION(1, 1705 /* -aarch64-cbz-offset-bits */, anonymous_20, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1730, 0, 0, 0, 0)
1071OPTION(1, 1776 /* -aarch64-ccmp-limit */, anonymous_7, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1796, 0, 0, 0, 0)
1072OPTION(1, 1848 /* -aarch64-cfi-llvm-set-ra-sign-state */, anonymous_44, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1884, 0, 1957, 1981, 0)
1073OPTION(1, 2003 /* -aarch64-code-layout-opt-align-functions */, anonymous_6, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2044, 0, 0, 0, 0)
1074OPTION(1, 2124 /* -aarch64-disable-multivector-spill-fill */, anonymous_9, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2164, 0, 0, 0, 0)
1075OPTION(1, 2210 /* -aarch64-early-ifcvt */, anonymous_58, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2231, 0, 0, 0, 0)
1076OPTION(1, 2266 /* -aarch64-elf-ldtls-generation */, anonymous_29, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2296, 0, 0, 0, 0)
1077OPTION(1, 2344 /* -aarch64-emit-debug-tls-location */, anonymous_104, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2377, 0, 0, 0, 0)
1078OPTION(1, 2440 /* -aarch64-enable-atomic-cfg-tidy */, anonymous_69, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2472, 0, 0, 0, 0)
1079OPTION(1, 2568 /* -aarch64-enable-branch-relax */, anonymous_70, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2597, 0, 0, 0, 0)
1080OPTION(1, 2637 /* -aarch64-enable-branch-targets */, anonymous_71, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2668, 0, 0, 0, 0)
1081OPTION(1, 2706 /* -aarch64-enable-ccmp */, anonymous_72, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2727, 0, 0, 0, 0)
1082OPTION(1, 2758 /* -aarch64-enable-collect-loh */, anonymous_73, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2786, 0, 0, 0, 0)
1083OPTION(1, 2849 /* -aarch64-enable-compress-jump-tables */, anonymous_74, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2886, 0, 0, 0, 0)
1084OPTION(1, 2930 /* -aarch64-enable-cond-br-tune */, anonymous_75, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2959, 0, 0, 0, 0)
1085OPTION(1, 3001 /* -aarch64-enable-condopt */, anonymous_76, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3025, 0, 0, 0, 0)
1086OPTION(1, 3061 /* -aarch64-enable-copy-propagation */, anonymous_77, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3094, 0, 0, 0, 0)
1087OPTION(1, 3146 /* -aarch64-enable-copyelim */, anonymous_78, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3171, 0, 0, 0, 0)
1088OPTION(1, 3214 /* -aarch64-enable-dead-defs */, anonymous_79, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3240, 0, 0, 0, 0)
1089OPTION(1, 3347 /* -aarch64-enable-early-ifcvt */, anonymous_80, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3375, 0, 0, 0, 0)
1090OPTION(1, 3399 /* -aarch64-enable-ext-to-tbl */, anonymous_30, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3426, 0, 0, 0, 0)
1091OPTION(1, 3455 /* -aarch64-enable-falkor-hwpf-fix */, anonymous_81, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1092OPTION(1, 3489 /* -aarch64-enable-gep-opt */, anonymous_82, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3513, 0, 0, 0, 0)
1093OPTION(1, 3550 /* -aarch64-enable-gisel-ldst-postlegal */, anonymous_83, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3587, 0, 0, 0, 0)
1094OPTION(1, 3651 /* -aarch64-enable-gisel-ldst-prelegal */, anonymous_84, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3687, 0, 0, 0, 0)
1095OPTION(1, 3750 /* -aarch64-enable-gisel-sve */, anonymous_31, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3776, 0, 0, 0, 0)
1096OPTION(1, 3829 /* -aarch64-enable-global-isel-at-O */, anonymous_85, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3862, 0, 0, 0, 0)
1097OPTION(1, 3921 /* -aarch64-enable-global-merge */, anonymous_86, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3950, 0, 0, 0, 0)
1098OPTION(1, 3979 /* -aarch64-enable-ldst-opt */, anonymous_87, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4004, 0, 0, 0, 0)
1099OPTION(1, 4049 /* -aarch64-enable-logical-imm */, anonymous_32, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4077, 0, 0, 0, 0)
1100OPTION(1, 4129 /* -aarch64-enable-loop-data-prefetch */, anonymous_88, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4164, 0, 0, 0, 0)
1101OPTION(1, 4199 /* -aarch64-enable-mcr */, anonymous_89, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4219, 0, 0, 0, 0)
1102OPTION(1, 4252 /* -aarch64-enable-mgather-combine */, anonymous_33, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4284, 0, 0, 0, 0)
1103OPTION(1, 4336 /* -aarch64-enable-pipeliner */, anonymous_90, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4362, 0, 0, 0, 0)
1104OPTION(1, 4399 /* -aarch64-enable-predicate-as-counter-loop-rewrites */, anonymous_91, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4450, 0, 0, 0, 0)
1105OPTION(1, 4530 /* -aarch64-enable-promote-const */, anonymous_92, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4560, 0, 0, 0, 0)
1106OPTION(1, 4593 /* -aarch64-enable-ptrue-coalescing */, anonymous_46, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4626, 0, 0, 0, 0)
1107OPTION(1, 4689 /* -aarch64-enable-simd-scalar */, anonymous_93, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4717, 0, 0, 0, 0)
1108OPTION(1, 4767 /* -aarch64-enable-sink-fold */, anonymous_94, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4793, 0, 0, 0, 0)
1109OPTION(1, 4842 /* -aarch64-enable-stp-suppress */, anonymous_95, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4871, 0, 0, 0, 0)
1110OPTION(1, 4896 /* -aarch64-enable-subreg-liveness-tracking */, anonymous_59, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4937, 0, 0, 0, 0)
1111OPTION(1, 4969 /* -aarch64-enable-sve-shuffle-opts */, anonymous_96, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5002, 0, 0, 0, 0)
1112OPTION(1, 5114 /* -aarch64-force-unroll-threshold */, anonymous_106, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5146, 0, 0, 0, 0)
1113OPTION(1, 5203 /* -aarch64-insert-extract-base-cost */, anonymous_60, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5237, 0, 0, 0, 0)
1114OPTION(1, 5280 /* -aarch64-load-store-const-scan-limit */, anonymous_38, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1115OPTION(1, 5317 /* -aarch64-load-store-renaming */, anonymous_39, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1116OPTION(1, 5346 /* -aarch64-load-store-scan-limit */, anonymous_40, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1117OPTION(1, 5377 /* -aarch64-lower-to-sme-routines */, anonymous_47, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5408, 0, 0, 0, 0)
1118OPTION(1, 5473 /* -aarch64-macho-enable-nonlazybind */, anonymous_61, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5507, 0, 0, 0, 0)
1119OPTION(1, 5565 /* -aarch64-max-xors */, anonymous_34, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5583, 0, 0, 0, 0)
1120OPTION(1, 5599 /* -aarch64-min-jump-table-entries */, anonymous_62, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5631, 0, 0, 0, 0)
1121OPTION(1, 5692 /* -aarch64-order-frame-objects */, anonymous_10, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5721, 0, 0, 0, 0)
1122OPTION(1, 5744 /* -aarch64-outliner-compact-unwind-frame */, anonymous_21, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5783, 0, 0, 0, 0)
1123OPTION(1, 5841 /* -aarch64-postlegalizer-consecutive-memops */, anonymous_120, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5883, 0, 0, 0, 0)
1124OPTION(1, 5953 /* -aarch64-ptrauth-auth-checks */, anonymous_5, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5982, 0, 6032, 6051, 0)
1125OPTION(1, 6068 /* -aarch64-redzone */, anonymous_11, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6085, 0, 0, 0, 0)
1126OPTION(1, 6118 /* -aarch64-search-limit */, anonymous_22, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6140, 0, 0, 0, 0)
1127OPTION(1, 6234 /* -aarch64-select-opt */, anonymous_97, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6254, 0, 0, 0, 0)
1128OPTION(1, 6292 /* -aarch64-simd-scalar-force-all */, anonymous_2, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6323, 0, 0, 0, 0)
1129OPTION(1, 6375 /* -aarch64-slh-loads */, anonymous_49, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6394, 0, 0, 0, 0)
1130OPTION(1, 6421 /* -aarch64-split-sve-objects */, anonymous_12, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6448, 0, 0, 0, 0)
1131OPTION(1, 6486 /* -aarch64-srlt-mitigate-sr2r */, anonymous_98, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6514, 0, 0, 0, 0)
1132OPTION(1, 6622 /* -aarch64-stack-hazard-in-non-streaming */, anonymous_13, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1133OPTION(1, 6661 /* -aarch64-stack-hazard-remark-size */, anonymous_14, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1134OPTION(1, 6695 /* -aarch64-stack-hazard-size */, anonymous_64, Flag, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0)
1135OPTION(1, 6722 /* -aarch64-streaming-hazard-size */, anonymous_63, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6753, 0, 0, 0, 0)
1136OPTION(1, 6814 /* -aarch64-stress-ccmp */, anonymous_8, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6835, 0, 0, 0, 0)
1137OPTION(1, 6856 /* -aarch64-stress-promote-const */, anonymous_45, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6886, 0, 0, 0, 0)
1138OPTION(1, 6915 /* -aarch64-sve-vector-bits-max */, anonymous_99, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6944, 0, 0, 0, 0)
1139OPTION(1, 7039 /* -aarch64-sve-vector-bits-min */, anonymous_100, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7068, 0, 0, 0, 0)
1140OPTION(1, 7164 /* -aarch64-sve-vls-bfloat-support */, anonymous_35, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7196, 0, 0, 0, 0)
1141OPTION(1, 7246 /* -aarch64-tbz-offset-bits */, anonymous_23, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7271, 0, 0, 0, 0)
1142OPTION(1, 7317 /* -aarch64-umov-fold-scan-limit */, anonymous_41, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1143OPTION(1, 7347 /* -aarch64-update-scan-limit */, anonymous_42, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1144OPTION(1, 7374 /* -aarch64-use-aa */, anonymous_65, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7390, 0, 0, 0, 0)
1145OPTION(1, 7426 /* -aarch64-use-conditional-fpmr-write */, anonymous_36, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7462, 0, 0, 0, 0)
1146OPTION(1, 7534 /* -aarch64-use-featcpa-codegen */, anonymous_37, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7563, 0, 0, 0, 0)
1147OPTION(1, 7642 /* -aarch64-use-mops */, anonymous_48, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7660, 0, 0, 0, 0)
1148OPTION(1, 7719 /* -aarch64-use-tbi */, anonymous_66, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7736, 0, 0, 0, 0)
1149OPTION(1, 7782 /* -arm64ec-generate-thunks */, anonymous_3, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1150OPTION(1, 7807 /* -arm64ec-lower-direct-to-indirect */, anonymous_4, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1151OPTION(1, 7841 /* -call-penalty-sm-change */, anonymous_107, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7865, 0, 0, 0, 0)
1152OPTION(1, 7931 /* -dmb-lookahead-threshold */, anonymous_108, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7956, 0, 0, 0, 0)
1153OPTION(1, 8013 /* -enable-aarch64-lsr-cost-opt */, anonymous_109, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1154OPTION(1, 8042 /* -enable-aarch64-or-like-select */, anonymous_110, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1155OPTION(1, 8073 /* -enable-aarch64-sme-peephole-opt */, anonymous_101, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8106, 0, 0, 0, 0)
1156OPTION(1, 8140 /* -enable-falkor-hwpf-unroll-fix */, anonymous_111, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1157OPTION(1, 8171 /* -enable-fixedwidth-autovec-in-streaming-mode */, anonymous_112, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1158OPTION(1, 8216 /* -enable-scalable-autovec-in-streaming-mode */, anonymous_113, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1159OPTION(1, 8259 /* -force-streaming-compatible */, anonymous_103, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8287, 0, 0, 0, 0)
1160OPTION(1, 8348 /* -force-streaming */, anonymous_102, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8365, 0, 0, 0, 0)
1161OPTION(1, 8415 /* -frame-helper-size-threshold */, anonymous_43, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8444, 0, 0, 0, 0)
1162OPTION(1, 8529 /* -homogeneous-prolog-epilog */, anonymous_15, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8556, 0, 0, 0, 0)
1163OPTION(1, 8637 /* -inline-call-penalty-sm-change */, anonymous_114, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8668, 0, 0, 0, 0)
1164OPTION(1, 8731 /* -neon-nonconst-stride-overhead */, anonymous_115, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1165OPTION(1, 8762 /* -stack-tagging-first-slot-opt */, anonymous_55, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8792, 0, 0, 0, 0)
1166OPTION(1, 8870 /* -stack-tagging-merge-init-scan-limit */, anonymous_51, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1167OPTION(1, 8907 /* -stack-tagging-merge-init-size-limit */, anonymous_52, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1168OPTION(1, 8944 /* -stack-tagging-merge-init */, anonymous_50, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8970, 0, 0, 0, 0)
1169OPTION(1, 9031 /* -stack-tagging-merge-settag */, anonymous_16, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9059, 0, 0, 0, 0)
1170OPTION(1, 9103 /* -stack-tagging-record-stack-history */, anonymous_53, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9139, 0, 9213, 9226, 0)
1171OPTION(1, 9237 /* -stack-tagging-unchecked-ld-st */, anonymous_56, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9268, 0, 9395, 9415, 0)
1172OPTION(1, 9433 /* -stack-tagging-use-stack-safety */, anonymous_54, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9465, 0, 0, 0, 0)
1173OPTION(1, 9499 /* -sve-gather-overhead */, anonymous_116, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1174OPTION(1, 9520 /* -sve-prefer-fixed-over-scalable-if-equal */, anonymous_117, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1175OPTION(1, 9561 /* -sve-scatter-overhead */, anonymous_118, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1176OPTION(1, 9583 /* -sve-tail-folding-insn-threshold */, anonymous_119, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3487, 0, 0, 0, 0)
1177OPTION(1, 9616 /* -sve-use-scalar-inc-vl */, anonymous_67, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9639, 0, 0, 0, 0)
1178OPTION(1, 9673 /* -sve-vscale-for-tuning */, anonymous_68, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9696, 0, 0, 0, 0)
1179#endif // OPTION
1180
1181#ifdef SIMPLE_ENUM_VALUE_TABLE
1182
1183struct SimpleEnumValue {
1184 const char *Name;
1185 unsigned Value;
1186};
1187
1188struct SimpleEnumValueTable {
1189 const SimpleEnumValue *Table;
1190 unsigned Size;
1191};
1192static const SimpleEnumValueTable SimpleEnumValueTables[] = {};
1193static const unsigned SimpleEnumValueTablesSize = std::size(SimpleEnumValueTables);
1194#endif // SIMPLE_ENUM_VALUE_TABLE
1195