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