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_basic_block_section_match_infer,
19 OPT_bbsections_guided_section_prefix,
20 OPT_cgp_addr_sink_combine_base_gv,
21 OPT_cgp_addr_sink_combine_base_offs,
22 OPT_cgp_addr_sink_combine_base_reg,
23 OPT_cgp_addr_sink_combine_scaled_reg,
24 OPT_cgp_addr_sink_new_phis,
25 OPT_cgp_addr_sink_new_select,
26 OPT_cgp_addr_sink_using_gep,
27 OPT_cgp_andcmp_sinking,
28 OPT_cgp_branch_opts,
29 OPT_cgp_complex_addr_modes,
30 OPT_cgp_delete_phis,
31 OPT_cgp_ext_ld_promotion,
32 OPT_cgp_force_split_store,
33 OPT_cgp_freq_ratio_to_skip_merge,
34 OPT_cgp_gc_opts,
35 OPT_cgp_huge_func,
36 OPT_cgp_icmp_eq2icmp_st,
37 OPT_cgp_max_address_users_to_scan,
38 OPT_cgp_optimize_phi_types,
39 OPT_cgp_preheader_prot,
40 OPT_cgp_select2branch,
41 OPT_cgp_split_large_offset_gep,
42 OPT_cgp_store_extract,
43 OPT_cgp_stress_ext_ld_promotion,
44 OPT_cgp_stress_store_extract,
45 OPT_cgp_type_promotion_merge,
46 OPT_cgp_verify_bfi_updates,
47 OPT_codegen_pipeline_trigger_crash,
48 OPT_debugify_and_strip_all_safe,
49 OPT_debugify_check_and_strip_all_safe,
50 OPT_disable_atexit_based_global_dtor_lowering,
51 OPT_disable_block_placement,
52 OPT_disable_branch_fold,
53 OPT_disable_cfi_fixup,
54 OPT_disable_cgp,
55 OPT_disable_constant_hoisting,
56 OPT_disable_copyprop,
57 OPT_disable_early_ifcvt,
58 OPT_disable_early_taildup,
59 OPT_disable_expand_reductions,
60 OPT_disable_layout_fsprofile_loader,
61 OPT_disable_lsr,
62 OPT_disable_machine_cse,
63 OPT_disable_machine_dce,
64 OPT_disable_machine_licm,
65 OPT_disable_machine_sink,
66 OPT_disable_mir_output_verify,
67 OPT_disable_partial_libcall_inlining,
68 OPT_disable_post_ra,
69 OPT_disable_postra_machine_licm,
70 OPT_disable_postra_machine_sink,
71 OPT_disable_ra_fsprofile_loader,
72 OPT_disable_replace_with_vec_lib,
73 OPT_disable_select_optimize,
74 OPT_disable_ssc,
75 OPT_disable_tail_duplicate,
76 OPT_enable_block_placement_stats,
77 OPT_enable_gc_empty_basic_blocks,
78 OPT_enable_global_merge_func,
79 OPT_enable_implicit_null_checks,
80 OPT_enable_ipra,
81 OPT_fast_isel,
82 OPT_fs_profile_file,
83 OPT_fs_remapping_file,
84 OPT_function_splitting,
85 OPT_global_isel_abort,
86 OPT_global_isel,
87 OPT_misched_postra,
88 OPT_print_after_isel,
89 OPT_print_isel_input,
90 OPT_print_regusage,
91 OPT_profile_guided_section_prefix,
92 OPT_profile_unknown_in_special_section,
93 OPT_regalloc_fast_tied,
94 OPT_split_static_data,
95 OPT_start_after,
96 OPT_start_before,
97 OPT_stop_after,
98 OPT_stop_before,
99 OPT_verify_machineinstrs,
100};
101} // namespace
102
103static llvm::opt::OptTable::Tables optionTables() {
104 using llvm::opt::DefaultVis, llvm::opt::HelpHidden,
105 llvm::opt::RenderAsInput, llvm::opt::RenderJoined,
106 llvm::opt::RenderSeparate;
107
108#ifdef __GNUC__
109#pragma GCC diagnostic push
110#pragma GCC diagnostic ignored "-Woverlength-strings"
111#endif
112static constexpr char OptionStrTableStorage[] =
113 "\0"
114 "-\0"
115 "--\0"
116 "<input>\0"
117 "<unknown>\0"
118 "-basic-block-section-match-infer\0"
119 "Enable matching and inference when generating basic block sections\0"
120 "-bbsections-guided-section-prefix\0"
121 "Use the basic-block-sections profile to determine the text section prefix for hot functions. Functions with basic-block-sections profile will be placed in `.text.hot` regardless of their FDO profile info. Other functions won't be impacted, i.e., their prefixes will be decided by FDO/sampleFDO profiles\0"
122 "-cgp-addr-sink-combine-base-gv\0"
123 "Allow combining of BaseGV field in Address sinking\0"
124 "-cgp-addr-sink-combine-base-offs\0"
125 "Allow combining of BaseOffs field in Address sinking\0"
126 "-cgp-addr-sink-combine-base-reg\0"
127 "Allow combining of BaseReg field in Address sinking\0"
128 "-cgp-addr-sink-combine-scaled-reg\0"
129 "Allow combining of ScaledReg field in Address sinking\0"
130 "-cgp-addr-sink-new-phis\0"
131 "Allow creation of Phis in Address sinking\0"
132 "-cgp-addr-sink-new-select\0"
133 "Allow creation of selects in Address sinking\0"
134 "-cgp-addr-sink-using-gep\0"
135 "Address sinking in CGP using GEPs\0"
136 "-cgp-andcmp-sinking\0"
137 "Enable sinking and/cmp into branches\0"
138 "-cgp-branch-opts\0"
139 "Enable branch optimizations in CodeGenPrepare\0"
140 "-cgp-complex-addr-modes\0"
141 "Enable combining addressing modes with different parts in optimizeMemoryInst\0"
142 "-cgp-delete-phis\0"
143 "Enable elimination of dead PHI nodes\0"
144 "-cgp-ext-ld-promotion\0"
145 "Enable ext(promotable(ld)) -> promoted(ext(ld)) optimization in CodeGenPrepare\0"
146 "-cgp-force-split-store\0"
147 "Force store splitting no matter what the target query says\0"
148 "-cgp-freq-ratio-to-skip-merge\0"
149 "Skip merging empty blocks if (frequency of empty block) / (frequency of destination block) is greater than this ratio\0"
150 "-cgp-gc-opts\0"
151 "Enable GC optimizations in CodeGenPrepare\0"
152 "-cgp-huge-func\0"
153 "Least BB number of huge function\0"
154 "-cgp-icmp-eq2icmp-st\0"
155 "Enable ICMP_EQ to ICMP_S(L|G)T conversion\0"
156 "-cgp-max-address-users-to-scan\0"
157 "Max number of address users to look at\0"
158 "-cgp-optimize-phi-types\0"
159 "Enable converting phi types in CodeGenPrepare\0"
160 "-cgp-preheader-prot\0"
161 "Protect loop preheaders from removal\0"
162 "-cgp-select2branch\0"
163 "Enable select to branch conversion\0"
164 "-cgp-split-large-offset-gep\0"
165 "Enable splitting large offset of GEP\0"
166 "-cgp-store-extract\0"
167 "Enable store(extract) optimizations in CodeGenPrepare\0"
168 "-cgp-stress-ext-ld-promotion\0"
169 "Stress test ext(promotable(ld)) -> promoted(ext(ld)) optimization in CodeGenPrepare\0"
170 "-cgp-stress-store-extract\0"
171 "Stress test store(extract) optimizations in CodeGenPrepare\0"
172 "-cgp-type-promotion-merge\0"
173 "Enable merging of redundant sexts when one is dominating the other\0"
174 "-cgp-verify-bfi-updates\0"
175 "Enable BFI update verification for CodeGenPrepare\0"
176 "-codegen-pipeline-trigger-crash\0"
177 "Trigger crash in codegen pipeline\0"
178 "-debugify-and-strip-all-safe\0"
179 "Debugify MIR before and Strip debug after each pass except those known to be unsafe when debug info is present\0"
180 "-debugify-check-and-strip-all-safe\0"
181 "Debugify MIR before, by checking and stripping the debug info after, each pass except those known to be unsafe when debug info is present\0"
182 "-disable-atexit-based-global-dtor-lowering\0"
183 "For MachO, disable atexit()-based global destructor lowering\0"
184 "-disable-block-placement\0"
185 "Disable probability-driven block placement\0"
186 "-disable-branch-fold\0"
187 "Disable branch folding\0"
188 "-disable-cfi-fixup\0"
189 "Disable the CFI fixup pass\0"
190 "-disable-cgp\0"
191 "Disable Codegen Prepare\0"
192 "-disable-constant-hoisting\0"
193 "Disable ConstantHoisting\0"
194 "-disable-copyprop\0"
195 "Disable Copy Propagation pass\0"
196 "-disable-early-ifcvt\0"
197 "Disable Early If-conversion\0"
198 "-disable-early-taildup\0"
199 "Disable pre-register allocation tail duplication\0"
200 "-disable-expand-reductions\0"
201 "Disable the expand reduction intrinsics pass from running\0"
202 "-disable-layout-fsprofile-loader\0"
203 "Disable MIRProfileLoader before BlockPlacement\0"
204 "-disable-lsr\0"
205 "Disable Loop Strength Reduction Pass\0"
206 "-disable-machine-cse\0"
207 "Disable Machine Common Subexpression Elimination\0"
208 "-disable-machine-dce\0"
209 "Disable Machine Dead Code Elimination\0"
210 "-disable-machine-licm\0"
211 "Disable Machine LICM\0"
212 "-disable-machine-sink\0"
213 "Disable Machine Sinking\0"
214 "-disable-mir-output-verify\0"
215 "Do not verify machine code at the end of a pipeline that stops before code emission\0"
216 "-disable-partial-libcall-inlining\0"
217 "Disable Partial Libcall Inlining\0"
218 "-disable-post-ra\0"
219 "Disable Post Regalloc Scheduler\0"
220 "-disable-postra-machine-licm\0"
221 "-disable-postra-machine-sink\0"
222 "Disable PostRA Machine Sinking\0"
223 "-disable-ra-fsprofile-loader\0"
224 "Disable MIRProfileLoader before RegAlloc\0"
225 "-disable-replace-with-vec-lib\0"
226 "Disable replace with vector math call pass\0"
227 "-disable-select-optimize\0"
228 "Disable the select-optimization pass from running\0"
229 "-disable-ssc\0"
230 "Disable Stack Slot Coloring\0"
231 "-disable-tail-duplicate\0"
232 "Disable tail duplication\0"
233 "-enable-block-placement-stats\0"
234 "Collect probability-driven block placement stats\0"
235 "-enable-gc-empty-basic-blocks\0"
236 "Enable garbage-collecting empty basic blocks\0"
237 "-enable-global-merge-func\0"
238 "Enable global merge functions that are based on hash function\0"
239 "-enable-implicit-null-checks\0"
240 "Fold null checks into faulting memory operations\0"
241 "-enable-ipra\0"
242 "Enable interprocedural register allocation to reduce load/store at procedure calls\0"
243 "-fast-isel\0"
244 "Enable the \"fast\" instruction selector\0"
245 "-fs-profile-file\0"
246 "Flow Sensitive profile file name\0"
247 "<filename>\0"
248 "-fs-remapping-file\0"
249 "Flow Sensitive profile remapping file name\0"
250 "-function-splitting\0"
251 "Which functions are eligible for late function splitting\0"
252 "<none|bbsections|all>\0"
253 "none,bbsections,all\0"
254 "-global-isel-abort\0"
255 "Enable abort calls when \"global\" instruction selection fails to lower/select an instruction\0"
256 "<0|1|2>\0"
257 "0,1,2\0"
258 "-global-isel\0"
259 "Enable the \"global\" instruction selector\0"
260 "-misched-postra\0"
261 "Run MachineScheduler post regalloc (independent of preRA sched)\0"
262 "-print-after-isel\0"
263 "Print machine instrs after ISel\0"
264 "-print-isel-input\0"
265 "Print LLVM IR input to isel pass\0"
266 "-print-regusage\0"
267 "Print register usage details collected for IPRA\0"
268 "-profile-guided-section-prefix\0"
269 "Use profile info to add section prefix for hot/cold functions\0"
270 "-profile-unknown-in-special-section\0"
271 "In profiling mode like sampleFDO, if a function doesn't have profile, we cannot tell the function is cold for sure because it may be a function newly added without ever being sampled. With the flag enabled, compiler can put such profile unknown functions into a special section, so runtime system can choose to handle it in a different way than .text section, to save RAM for example\0"
272 "-regalloc-fast-tied\0"
273 "Have the fast register allocator lower tied operands itself instead of running TwoAddressInstructionPass (overrides the target's default)\0"
274 "-split-static-data\0"
275 "Split static data sections into hot and cold sections using profile information\0"
276 "-start-after\0"
277 "Resume compilation after a specific pass\0"
278 "<pass-name>\0"
279 "-start-before\0"
280 "Resume compilation before a specific pass\0"
281 "-stop-after\0"
282 "Stop compilation after a specific pass\0"
283 "-stop-before\0"
284 "Stop compilation before a specific pass\0"
285 "-verify-machineinstrs\0"
286 "Verify generated machine code\0"
287 ;
288#ifdef __GNUC__
289#pragma GCC diagnostic pop
290#endif
291
292static constexpr llvm::StringTable
293OptionStrTable = OptionStrTableStorage;
294
295 static constexpr llvm::StringTable::Offset OptionPrefixesTable[] = {
296 0 /* prefixes */,
297 2 /* prefixes */, 1 /* '-' */, 3 /* '--' */
298 };
299
300 static constexpr llvm::opt::OptTable::HelpTextVariant OptionHelpTextVariantsTable[] = {
301 {0, 0},
302 };
303
304 static constexpr unsigned OptionSubCommandIDsTable[] = {
305 0 /* subcommands */
306 };
307
308 static constexpr llvm::opt::OptTable::InfoExtra OptionInfoExtrasTable[] = {
309 {0, 0, 0, 0, 0, 0, 0, 0},
310 {0, 0, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
311 {4995, 0, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
312 {5145, 0, 5167, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
313 {5298, 0, 5306, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
314 {6435, 0, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
315 };
316
317 static constexpr llvm::opt::OptTable::Info OptionInfoTable[] = {
318 {6 /* <input> */, 0, 0, 0, 1, 0, llvm::opt::Option::InputClass},
319 {14 /* <unknown> */, 0, 0, 0, 1, 0, llvm::opt::Option::UnknownClass},
320 {24 /* -basic-block-section-match-infer */, 57, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
321 {124 /* -bbsections-guided-section-prefix */, 158, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
322 {461 /* -cgp-addr-sink-combine-base-gv */, 492, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
323 {543 /* -cgp-addr-sink-combine-base-offs */, 576, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
324 {629 /* -cgp-addr-sink-combine-base-reg */, 661, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
325 {713 /* -cgp-addr-sink-combine-scaled-reg */, 747, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
326 {801 /* -cgp-addr-sink-new-phis */, 825, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
327 {867 /* -cgp-addr-sink-new-select */, 893, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
328 {938 /* -cgp-addr-sink-using-gep */, 963, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
329 {997 /* -cgp-andcmp-sinking */, 1017, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
330 {1054 /* -cgp-branch-opts */, 1071, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
331 {1117 /* -cgp-complex-addr-modes */, 1141, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
332 {1218 /* -cgp-delete-phis */, 1235, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
333 {1272 /* -cgp-ext-ld-promotion */, 1294, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
334 {1373 /* -cgp-force-split-store */, 1396, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
335 {1455 /* -cgp-freq-ratio-to-skip-merge */, 1485, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
336 {1603 /* -cgp-gc-opts */, 1616, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
337 {1658 /* -cgp-huge-func */, 1673, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
338 {1706 /* -cgp-icmp-eq2icmp-st */, 1727, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
339 {1769 /* -cgp-max-address-users-to-scan */, 1800, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
340 {1839 /* -cgp-optimize-phi-types */, 1863, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
341 {1909 /* -cgp-preheader-prot */, 1929, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
342 {1966 /* -cgp-select2branch */, 1985, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
343 {2020 /* -cgp-split-large-offset-gep */, 2048, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
344 {2085 /* -cgp-store-extract */, 2104, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
345 {2158 /* -cgp-stress-ext-ld-promotion */, 2187, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
346 {2271 /* -cgp-stress-store-extract */, 2297, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
347 {2356 /* -cgp-type-promotion-merge */, 2382, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
348 {2449 /* -cgp-verify-bfi-updates */, 2473, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
349 {2523 /* -codegen-pipeline-trigger-crash */, 2555, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
350 {2589 /* -debugify-and-strip-all-safe */, 2618, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
351 {2729 /* -debugify-check-and-strip-all-safe */, 2764, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
352 {2902 /* -disable-atexit-based-global-dtor-lowering */, 2945, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
353 {3006 /* -disable-block-placement */, 3031, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
354 {3074 /* -disable-branch-fold */, 3095, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
355 {3118 /* -disable-cfi-fixup */, 3137, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
356 {3164 /* -disable-cgp */, 3177, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
357 {3201 /* -disable-constant-hoisting */, 3228, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
358 {3253 /* -disable-copyprop */, 3271, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
359 {3301 /* -disable-early-ifcvt */, 3322, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
360 {3350 /* -disable-early-taildup */, 3373, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
361 {3422 /* -disable-expand-reductions */, 3449, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
362 {3507 /* -disable-layout-fsprofile-loader */, 3540, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
363 {3587 /* -disable-lsr */, 3600, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
364 {3637 /* -disable-machine-cse */, 3658, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
365 {3707 /* -disable-machine-dce */, 3728, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
366 {3766 /* -disable-machine-licm */, 3788, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
367 {3809 /* -disable-machine-sink */, 3831, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
368 {3855 /* -disable-mir-output-verify */, 3882, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
369 {3966 /* -disable-partial-libcall-inlining */, 4000, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
370 {4033 /* -disable-post-ra */, 4050, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
371 {4082 /* -disable-postra-machine-licm */, 3788, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
372 {4111 /* -disable-postra-machine-sink */, 4140, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
373 {4171 /* -disable-ra-fsprofile-loader */, 4200, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
374 {4241 /* -disable-replace-with-vec-lib */, 4271, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
375 {4314 /* -disable-select-optimize */, 4339, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
376 {4389 /* -disable-ssc */, 4402, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
377 {4430 /* -disable-tail-duplicate */, 4454, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
378 {4479 /* -enable-block-placement-stats */, 4509, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
379 {4558 /* -enable-gc-empty-basic-blocks */, 4588, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
380 {4633 /* -enable-global-merge-func */, 4659, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
381 {4721 /* -enable-implicit-null-checks */, 4750, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
382 {4799 /* -enable-ipra */, 4812, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
383 {4895 /* -fast-isel */, 4906, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
384 {4945 /* -fs-profile-file */, 4962, 0, 0, 2, 1, llvm::opt::Option::SeparateOrEqClass},
385 {5006 /* -fs-remapping-file */, 5025, 0, 0, 2, 1, llvm::opt::Option::SeparateOrEqClass},
386 {5068 /* -function-splitting */, 5088, 0, 0, 3, 1, llvm::opt::Option::SeparateOrEqClass},
387 {5187 /* -global-isel-abort */, 5206, 0, 0, 4, 1, llvm::opt::Option::SeparateOrEqClass},
388 {5312 /* -global-isel */, 5325, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
389 {5366 /* -misched-postra */, 5382, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
390 {5446 /* -print-after-isel */, 5464, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
391 {5496 /* -print-isel-input */, 5514, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
392 {5547 /* -print-regusage */, 5563, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
393 {5611 /* -profile-guided-section-prefix */, 5642, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
394 {5704 /* -profile-unknown-in-special-section */, 5740, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
395 {6124 /* -regalloc-fast-tied */, 6144, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
396 {6282 /* -split-static-data */, 6301, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
397 {6381 /* -start-after */, 6394, 0, 0, 5, 1, llvm::opt::Option::SeparateOrEqClass},
398 {6447 /* -start-before */, 6461, 0, 0, 5, 1, llvm::opt::Option::SeparateOrEqClass},
399 {6503 /* -stop-after */, 6515, 0, 0, 5, 1, llvm::opt::Option::SeparateOrEqClass},
400 {6554 /* -stop-before */, 6567, 0, 0, 5, 1, llvm::opt::Option::SeparateOrEqClass},
401 {6607 /* -verify-machineinstrs */, 6629, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
402 };
403
404 return {OptionStrTable, OptionPrefixesTable,
405 OptionInfoTable, OptionInfoExtrasTable, OptionHelpTextVariantsTable, {}, OptionSubCommandIDsTable};
406}
407#undef OPTTABLE_CODE
408#endif // OPTTABLE_CODE || OPTIONS_STRUCT_DEFS
409
410
411#ifdef OPTIONS_STRUCT_DECL
412#undef OPTIONS_STRUCT_DECL
413#include "llvm/ADT/ArrayRef.h"
414#include "llvm/ADT/BoolOrDefault.h"
415#include "llvm/ADT/StringRef.h"
416#include "llvm/Support/Allocator.h"
417#include "llvm/Support/LibraryOptionsContext.h"
418
419namespace llvm {
420namespace opt {
421class Arg;
422class LibraryOptionsParser;
423class OptTable;
424} // namespace opt
425} // namespace llvm
426
427namespace llvm {
428struct CodeGenOptions {
429 bool bbsections_guided_section_prefix{true};
430 bool cgp_addr_sink_combine_base_gv{true};
431 bool cgp_addr_sink_combine_base_offs{true};
432 bool cgp_addr_sink_combine_base_reg{true};
433 bool cgp_addr_sink_combine_scaled_reg{true};
434 bool cgp_addr_sink_new_phis{false};
435 bool cgp_addr_sink_new_select{true};
436 llvm::BoolOrDefault cgp_addr_sink_using_gep{llvm::BoolOrDefault::Default};
437 bool cgp_andcmp_sinking{true};
438 bool cgp_branch_opts{true};
439 bool cgp_complex_addr_modes{true};
440 bool cgp_delete_phis{true};
441 bool cgp_ext_ld_promotion{true};
442 bool cgp_force_split_store{false};
443 uint64_t cgp_freq_ratio_to_skip_merge{2};
444 bool cgp_gc_opts{true};
445 unsigned cgp_huge_func{10000};
446 bool cgp_icmp_eq2icmp_st{false};
447 unsigned cgp_max_address_users_to_scan{100};
448 bool cgp_optimize_phi_types{true};
449 bool cgp_preheader_prot{true};
450 bool cgp_select2branch{true};
451 bool cgp_split_large_offset_gep{true};
452 bool cgp_store_extract{true};
453 bool cgp_stress_ext_ld_promotion{false};
454 bool cgp_stress_store_extract{false};
455 bool cgp_type_promotion_merge{true};
456 bool cgp_verify_bfi_updates{false};
457 bool profile_guided_section_prefix{true};
458 bool profile_unknown_in_special_section{false};
459 bool basic_block_section_match_infer{false};
460 bool codegen_pipeline_trigger_crash{false};
461 llvm::BoolOrDefault debugify_and_strip_all_safe{llvm::BoolOrDefault::Default};
462 llvm::BoolOrDefault debugify_check_and_strip_all_safe{llvm::BoolOrDefault::Default};
463 bool disable_atexit_based_global_dtor_lowering{false};
464 bool disable_block_placement{false};
465 bool disable_branch_fold{false};
466 bool disable_cfi_fixup{false};
467 bool disable_cgp{false};
468 bool disable_constant_hoisting{false};
469 bool disable_copyprop{false};
470 bool disable_early_ifcvt{false};
471 bool disable_early_taildup{false};
472 bool disable_expand_reductions{false};
473 bool disable_layout_fsprofile_loader{false};
474 bool disable_lsr{false};
475 bool disable_machine_cse{false};
476 bool disable_machine_dce{false};
477 bool disable_machine_licm{false};
478 bool disable_machine_sink{false};
479 bool disable_mir_output_verify{false};
480 bool disable_partial_libcall_inlining{false};
481 bool disable_post_ra{false};
482 bool disable_postra_machine_licm{false};
483 bool disable_postra_machine_sink{false};
484 bool disable_ra_fsprofile_loader{false};
485 bool disable_replace_with_vec_lib{false};
486 bool disable_select_optimize{true};
487 bool disable_ssc{false};
488 bool disable_tail_duplicate{false};
489 bool enable_block_placement_stats{false};
490 bool enable_gc_empty_basic_blocks{false};
491 bool enable_global_merge_func{false};
492 bool enable_implicit_null_checks{false};
493 llvm::BoolOrDefault enable_ipra{llvm::BoolOrDefault::Default};
494 std::optional<FunctionSplittingMode> function_splitting{std::nullopt};
495 llvm::BoolOrDefault fast_isel{llvm::BoolOrDefault::Default};
496 StringRef fs_profile_file{};
497 StringRef fs_remapping_file{};
498 llvm::BoolOrDefault global_isel{llvm::BoolOrDefault::Default};
499 std::optional<GlobalISelAbortMode> global_isel_abort{std::nullopt};
500 bool misched_postra{false};
501 bool print_after_isel{false};
502 bool print_isel_input{false};
503 bool print_regusage{false};
504 llvm::BoolOrDefault regalloc_fast_tied{llvm::BoolOrDefault::Default};
505 bool split_static_data{false};
506 StringRef start_after{};
507 StringRef start_before{};
508 StringRef stop_after{};
509 StringRef stop_before{};
510 llvm::BoolOrDefault verify_machineinstrs{llvm::BoolOrDefault::Default};
511
512 static constexpr bool PerContext = true;
513 static const llvm::opt::OptTable &optTable();
514 /// Sets the member that \p A names, allocating a list from \p Alloc.
515 /// Returns false if the value is invalid.
516 bool apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc);
517
518private:
519 friend class llvm::cl::LibraryOptionsContext;
520 friend class llvm::opt::LibraryOptionsParser;
521
522 static CodeGenOptions Global;
523 static const CodeGenOptions Default;
524};
525} // namespace llvm
526#endif // OPTIONS_STRUCT_DECL
527
528#ifdef OPTIONS_STRUCT_DEFS
529#undef OPTIONS_STRUCT_DEFS
530llvm::CodeGenOptions llvm::CodeGenOptions::Global;
531LLVM_REQUIRE_CONSTANT_INITIALIZATION const llvm::CodeGenOptions llvm::CodeGenOptions::Default;
532
533const llvm::opt::OptTable &llvm::CodeGenOptions::optTable() {
534 static const llvm::opt::LibraryOptTable T(optionTables());
535 return T;
536}
537
538bool llvm::CodeGenOptions::apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc) {
539 switch (A.getOption().getID()) {
540 case OPT_basic_block_section_match_infer:
541 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", basic_block_section_match_infer, Alloc);
542 case OPT_bbsections_guided_section_prefix:
543 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", bbsections_guided_section_prefix, Alloc);
544 case OPT_cgp_addr_sink_combine_base_gv:
545 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_addr_sink_combine_base_gv, Alloc);
546 case OPT_cgp_addr_sink_combine_base_offs:
547 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_addr_sink_combine_base_offs, Alloc);
548 case OPT_cgp_addr_sink_combine_base_reg:
549 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_addr_sink_combine_base_reg, Alloc);
550 case OPT_cgp_addr_sink_combine_scaled_reg:
551 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_addr_sink_combine_scaled_reg, Alloc);
552 case OPT_cgp_addr_sink_new_phis:
553 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_addr_sink_new_phis, Alloc);
554 case OPT_cgp_addr_sink_new_select:
555 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_addr_sink_new_select, Alloc);
556 case OPT_cgp_addr_sink_using_gep:
557 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_addr_sink_using_gep, Alloc);
558 case OPT_cgp_andcmp_sinking:
559 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_andcmp_sinking, Alloc);
560 case OPT_cgp_branch_opts:
561 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_branch_opts, Alloc);
562 case OPT_cgp_complex_addr_modes:
563 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_complex_addr_modes, Alloc);
564 case OPT_cgp_delete_phis:
565 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_delete_phis, Alloc);
566 case OPT_cgp_ext_ld_promotion:
567 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_ext_ld_promotion, Alloc);
568 case OPT_cgp_force_split_store:
569 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_force_split_store, Alloc);
570 case OPT_cgp_freq_ratio_to_skip_merge:
571 return llvm::opt::parseArgValue(A.getValue(), cgp_freq_ratio_to_skip_merge, Alloc);
572 case OPT_cgp_gc_opts:
573 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_gc_opts, Alloc);
574 case OPT_cgp_huge_func:
575 return llvm::opt::parseArgValue(A.getValue(), cgp_huge_func, Alloc);
576 case OPT_cgp_icmp_eq2icmp_st:
577 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_icmp_eq2icmp_st, Alloc);
578 case OPT_cgp_max_address_users_to_scan:
579 return llvm::opt::parseArgValue(A.getValue(), cgp_max_address_users_to_scan, Alloc);
580 case OPT_cgp_optimize_phi_types:
581 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_optimize_phi_types, Alloc);
582 case OPT_cgp_preheader_prot:
583 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_preheader_prot, Alloc);
584 case OPT_cgp_select2branch:
585 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_select2branch, Alloc);
586 case OPT_cgp_split_large_offset_gep:
587 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_split_large_offset_gep, Alloc);
588 case OPT_cgp_store_extract:
589 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_store_extract, Alloc);
590 case OPT_cgp_stress_ext_ld_promotion:
591 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_stress_ext_ld_promotion, Alloc);
592 case OPT_cgp_stress_store_extract:
593 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_stress_store_extract, Alloc);
594 case OPT_cgp_type_promotion_merge:
595 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_type_promotion_merge, Alloc);
596 case OPT_cgp_verify_bfi_updates:
597 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cgp_verify_bfi_updates, Alloc);
598 case OPT_codegen_pipeline_trigger_crash:
599 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", codegen_pipeline_trigger_crash, Alloc);
600 case OPT_debugify_and_strip_all_safe:
601 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", debugify_and_strip_all_safe, Alloc);
602 case OPT_debugify_check_and_strip_all_safe:
603 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", debugify_check_and_strip_all_safe, Alloc);
604 case OPT_disable_atexit_based_global_dtor_lowering:
605 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_atexit_based_global_dtor_lowering, Alloc);
606 case OPT_disable_block_placement:
607 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_block_placement, Alloc);
608 case OPT_disable_branch_fold:
609 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_branch_fold, Alloc);
610 case OPT_disable_cfi_fixup:
611 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_cfi_fixup, Alloc);
612 case OPT_disable_cgp:
613 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_cgp, Alloc);
614 case OPT_disable_constant_hoisting:
615 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_constant_hoisting, Alloc);
616 case OPT_disable_copyprop:
617 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_copyprop, Alloc);
618 case OPT_disable_early_ifcvt:
619 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_early_ifcvt, Alloc);
620 case OPT_disable_early_taildup:
621 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_early_taildup, Alloc);
622 case OPT_disable_expand_reductions:
623 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_expand_reductions, Alloc);
624 case OPT_disable_layout_fsprofile_loader:
625 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_layout_fsprofile_loader, Alloc);
626 case OPT_disable_lsr:
627 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_lsr, Alloc);
628 case OPT_disable_machine_cse:
629 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_machine_cse, Alloc);
630 case OPT_disable_machine_dce:
631 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_machine_dce, Alloc);
632 case OPT_disable_machine_licm:
633 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_machine_licm, Alloc);
634 case OPT_disable_machine_sink:
635 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_machine_sink, Alloc);
636 case OPT_disable_mir_output_verify:
637 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_mir_output_verify, Alloc);
638 case OPT_disable_partial_libcall_inlining:
639 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_partial_libcall_inlining, Alloc);
640 case OPT_disable_post_ra:
641 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_post_ra, Alloc);
642 case OPT_disable_postra_machine_licm:
643 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_postra_machine_licm, Alloc);
644 case OPT_disable_postra_machine_sink:
645 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_postra_machine_sink, Alloc);
646 case OPT_disable_ra_fsprofile_loader:
647 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_ra_fsprofile_loader, Alloc);
648 case OPT_disable_replace_with_vec_lib:
649 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_replace_with_vec_lib, Alloc);
650 case OPT_disable_select_optimize:
651 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_select_optimize, Alloc);
652 case OPT_disable_ssc:
653 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_ssc, Alloc);
654 case OPT_disable_tail_duplicate:
655 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_tail_duplicate, Alloc);
656 case OPT_enable_block_placement_stats:
657 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_block_placement_stats, Alloc);
658 case OPT_enable_gc_empty_basic_blocks:
659 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_gc_empty_basic_blocks, Alloc);
660 case OPT_enable_global_merge_func:
661 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_global_merge_func, Alloc);
662 case OPT_enable_implicit_null_checks:
663 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_implicit_null_checks, Alloc);
664 case OPT_enable_ipra:
665 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_ipra, Alloc);
666 case OPT_fast_isel:
667 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", fast_isel, Alloc);
668 case OPT_fs_profile_file:
669 return llvm::opt::parseArgValue(A.getValue(), fs_profile_file, Alloc);
670 case OPT_fs_remapping_file:
671 return llvm::opt::parseArgValue(A.getValue(), fs_remapping_file, Alloc);
672 case OPT_function_splitting:
673 return llvm::opt::parseArgValue(A.getValue(), function_splitting, Alloc, [](llvm::StringRef V, auto &X) {
674 if (V == "none") {
675 X = FunctionSplittingMode::None;
676 return true;
677 }
678 if (V == "bbsections") {
679 X = FunctionSplittingMode::BBSectionsOnly;
680 return true;
681 }
682 if (V == "all") {
683 X = FunctionSplittingMode::All;
684 return true;
685 }
686 return false;
687 });
688 case OPT_global_isel_abort:
689 return llvm::opt::parseArgValue(A.getValue(), global_isel_abort, Alloc, [](llvm::StringRef V, auto &X) {
690 if (V == "0") {
691 X = GlobalISelAbortMode::Disable;
692 return true;
693 }
694 if (V == "1") {
695 X = GlobalISelAbortMode::Enable;
696 return true;
697 }
698 if (V == "2") {
699 X = GlobalISelAbortMode::DisableWithDiag;
700 return true;
701 }
702 return false;
703 });
704 case OPT_global_isel:
705 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", global_isel, Alloc);
706 case OPT_misched_postra:
707 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", misched_postra, Alloc);
708 case OPT_print_after_isel:
709 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", print_after_isel, Alloc);
710 case OPT_print_isel_input:
711 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", print_isel_input, Alloc);
712 case OPT_print_regusage:
713 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", print_regusage, Alloc);
714 case OPT_profile_guided_section_prefix:
715 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", profile_guided_section_prefix, Alloc);
716 case OPT_profile_unknown_in_special_section:
717 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", profile_unknown_in_special_section, Alloc);
718 case OPT_regalloc_fast_tied:
719 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", regalloc_fast_tied, Alloc);
720 case OPT_split_static_data:
721 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", split_static_data, Alloc);
722 case OPT_start_after:
723 return llvm::opt::parseArgValue(A.getValue(), start_after, Alloc);
724 case OPT_start_before:
725 return llvm::opt::parseArgValue(A.getValue(), start_before, Alloc);
726 case OPT_stop_after:
727 return llvm::opt::parseArgValue(A.getValue(), stop_after, Alloc);
728 case OPT_stop_before:
729 return llvm::opt::parseArgValue(A.getValue(), stop_before, Alloc);
730 case OPT_verify_machineinstrs:
731 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", verify_machineinstrs, Alloc);
732 }
733 llvm_unreachable("option without a member");
734}
735#endif // OPTIONS_STRUCT_DEFS
736/////////
737// ValuesCode
738
739#ifdef OPTTABLE_VALUES_CODE
740static llvm::StringRef getOptionValuesCode(unsigned ID) {
741 switch (ID) {
742 }
743 return {};
744}
745#undef OPTTABLE_VALUES_CODE
746#endif // OPTTABLE_VALUES_CODE
747/////////
748// Groups
749
750#ifdef OPTION
751
752//////////
753// Options
754
755OPTION(0, 6 /* <input> */, INPUT, Input, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0)
756OPTION(0, 14 /* <unknown> */, UNKNOWN, Unknown, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0)
757OPTION(1, 24 /* -basic-block-section-match-infer */, anonymous_30, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 57, 0, 0, 0, 0)
758OPTION(1, 124 /* -bbsections-guided-section-prefix */, anonymous_0, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 158, 0, 0, 0, 0)
759OPTION(1, 461 /* -cgp-addr-sink-combine-base-gv */, anonymous_1, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 492, 0, 0, 0, 0)
760OPTION(1, 543 /* -cgp-addr-sink-combine-base-offs */, anonymous_2, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 576, 0, 0, 0, 0)
761OPTION(1, 629 /* -cgp-addr-sink-combine-base-reg */, anonymous_3, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 661, 0, 0, 0, 0)
762OPTION(1, 713 /* -cgp-addr-sink-combine-scaled-reg */, anonymous_4, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 747, 0, 0, 0, 0)
763OPTION(1, 801 /* -cgp-addr-sink-new-phis */, anonymous_5, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 825, 0, 0, 0, 0)
764OPTION(1, 867 /* -cgp-addr-sink-new-select */, anonymous_6, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 893, 0, 0, 0, 0)
765OPTION(1, 938 /* -cgp-addr-sink-using-gep */, anonymous_7, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 963, 0, 0, 0, 0)
766OPTION(1, 997 /* -cgp-andcmp-sinking */, anonymous_8, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1017, 0, 0, 0, 0)
767OPTION(1, 1054 /* -cgp-branch-opts */, anonymous_9, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1071, 0, 0, 0, 0)
768OPTION(1, 1117 /* -cgp-complex-addr-modes */, anonymous_10, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1141, 0, 0, 0, 0)
769OPTION(1, 1218 /* -cgp-delete-phis */, anonymous_11, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1235, 0, 0, 0, 0)
770OPTION(1, 1272 /* -cgp-ext-ld-promotion */, anonymous_12, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1294, 0, 0, 0, 0)
771OPTION(1, 1373 /* -cgp-force-split-store */, anonymous_13, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1396, 0, 0, 0, 0)
772OPTION(1, 1455 /* -cgp-freq-ratio-to-skip-merge */, anonymous_14, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1485, 0, 0, 0, 0)
773OPTION(1, 1603 /* -cgp-gc-opts */, anonymous_15, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1616, 0, 0, 0, 0)
774OPTION(1, 1658 /* -cgp-huge-func */, anonymous_16, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1673, 0, 0, 0, 0)
775OPTION(1, 1706 /* -cgp-icmp-eq2icmp-st */, anonymous_17, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1727, 0, 0, 0, 0)
776OPTION(1, 1769 /* -cgp-max-address-users-to-scan */, anonymous_18, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1800, 0, 0, 0, 0)
777OPTION(1, 1839 /* -cgp-optimize-phi-types */, anonymous_19, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1863, 0, 0, 0, 0)
778OPTION(1, 1909 /* -cgp-preheader-prot */, anonymous_20, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1929, 0, 0, 0, 0)
779OPTION(1, 1966 /* -cgp-select2branch */, anonymous_21, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1985, 0, 0, 0, 0)
780OPTION(1, 2020 /* -cgp-split-large-offset-gep */, anonymous_22, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2048, 0, 0, 0, 0)
781OPTION(1, 2085 /* -cgp-store-extract */, anonymous_23, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2104, 0, 0, 0, 0)
782OPTION(1, 2158 /* -cgp-stress-ext-ld-promotion */, anonymous_24, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2187, 0, 0, 0, 0)
783OPTION(1, 2271 /* -cgp-stress-store-extract */, anonymous_25, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2297, 0, 0, 0, 0)
784OPTION(1, 2356 /* -cgp-type-promotion-merge */, anonymous_26, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2382, 0, 0, 0, 0)
785OPTION(1, 2449 /* -cgp-verify-bfi-updates */, anonymous_27, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2473, 0, 0, 0, 0)
786OPTION(1, 2523 /* -codegen-pipeline-trigger-crash */, anonymous_31, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2555, 0, 0, 0, 0)
787OPTION(1, 2589 /* -debugify-and-strip-all-safe */, anonymous_32, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2618, 0, 0, 0, 0)
788OPTION(1, 2729 /* -debugify-check-and-strip-all-safe */, anonymous_33, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2764, 0, 0, 0, 0)
789OPTION(1, 2902 /* -disable-atexit-based-global-dtor-lowering */, anonymous_34, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2945, 0, 0, 0, 0)
790OPTION(1, 3006 /* -disable-block-placement */, anonymous_35, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3031, 0, 0, 0, 0)
791OPTION(1, 3074 /* -disable-branch-fold */, anonymous_36, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3095, 0, 0, 0, 0)
792OPTION(1, 3118 /* -disable-cfi-fixup */, anonymous_37, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3137, 0, 0, 0, 0)
793OPTION(1, 3164 /* -disable-cgp */, anonymous_38, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3177, 0, 0, 0, 0)
794OPTION(1, 3201 /* -disable-constant-hoisting */, anonymous_39, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3228, 0, 0, 0, 0)
795OPTION(1, 3253 /* -disable-copyprop */, anonymous_40, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3271, 0, 0, 0, 0)
796OPTION(1, 3301 /* -disable-early-ifcvt */, anonymous_41, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3322, 0, 0, 0, 0)
797OPTION(1, 3350 /* -disable-early-taildup */, anonymous_42, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3373, 0, 0, 0, 0)
798OPTION(1, 3422 /* -disable-expand-reductions */, anonymous_43, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3449, 0, 0, 0, 0)
799OPTION(1, 3507 /* -disable-layout-fsprofile-loader */, anonymous_44, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3540, 0, 0, 0, 0)
800OPTION(1, 3587 /* -disable-lsr */, anonymous_45, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3600, 0, 0, 0, 0)
801OPTION(1, 3637 /* -disable-machine-cse */, anonymous_46, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3658, 0, 0, 0, 0)
802OPTION(1, 3707 /* -disable-machine-dce */, anonymous_47, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3728, 0, 0, 0, 0)
803OPTION(1, 3766 /* -disable-machine-licm */, anonymous_48, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3788, 0, 0, 0, 0)
804OPTION(1, 3809 /* -disable-machine-sink */, anonymous_49, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3831, 0, 0, 0, 0)
805OPTION(1, 3855 /* -disable-mir-output-verify */, anonymous_50, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3882, 0, 0, 0, 0)
806OPTION(1, 3966 /* -disable-partial-libcall-inlining */, anonymous_51, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4000, 0, 0, 0, 0)
807OPTION(1, 4033 /* -disable-post-ra */, anonymous_52, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4050, 0, 0, 0, 0)
808OPTION(1, 4082 /* -disable-postra-machine-licm */, anonymous_53, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3788, 0, 0, 0, 0)
809OPTION(1, 4111 /* -disable-postra-machine-sink */, anonymous_54, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4140, 0, 0, 0, 0)
810OPTION(1, 4171 /* -disable-ra-fsprofile-loader */, anonymous_55, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4200, 0, 0, 0, 0)
811OPTION(1, 4241 /* -disable-replace-with-vec-lib */, anonymous_56, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4271, 0, 0, 0, 0)
812OPTION(1, 4314 /* -disable-select-optimize */, anonymous_57, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4339, 0, 0, 0, 0)
813OPTION(1, 4389 /* -disable-ssc */, anonymous_58, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4402, 0, 0, 0, 0)
814OPTION(1, 4430 /* -disable-tail-duplicate */, anonymous_59, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4454, 0, 0, 0, 0)
815OPTION(1, 4479 /* -enable-block-placement-stats */, anonymous_60, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4509, 0, 0, 0, 0)
816OPTION(1, 4558 /* -enable-gc-empty-basic-blocks */, anonymous_61, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4588, 0, 0, 0, 0)
817OPTION(1, 4633 /* -enable-global-merge-func */, anonymous_62, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4659, 0, 0, 0, 0)
818OPTION(1, 4721 /* -enable-implicit-null-checks */, anonymous_63, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4750, 0, 0, 0, 0)
819OPTION(1, 4799 /* -enable-ipra */, anonymous_64, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4812, 0, 0, 0, 0)
820OPTION(1, 4895 /* -fast-isel */, anonymous_66, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4906, 0, 0, 0, 0)
821OPTION(1, 4945 /* -fs-profile-file */, anonymous_67, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4962, 0, 4995, 0, 0)
822OPTION(1, 5006 /* -fs-remapping-file */, anonymous_68, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5025, 0, 4995, 0, 0)
823OPTION(1, 5068 /* -function-splitting */, anonymous_65, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5088, 0, 5145, 5167, 0)
824OPTION(1, 5187 /* -global-isel-abort */, anonymous_70, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5206, 0, 5298, 5306, 0)
825OPTION(1, 5312 /* -global-isel */, anonymous_69, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5325, 0, 0, 0, 0)
826OPTION(1, 5366 /* -misched-postra */, anonymous_71, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5382, 0, 0, 0, 0)
827OPTION(1, 5446 /* -print-after-isel */, anonymous_72, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5464, 0, 0, 0, 0)
828OPTION(1, 5496 /* -print-isel-input */, anonymous_73, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5514, 0, 0, 0, 0)
829OPTION(1, 5547 /* -print-regusage */, anonymous_74, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5563, 0, 0, 0, 0)
830OPTION(1, 5611 /* -profile-guided-section-prefix */, anonymous_28, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5642, 0, 0, 0, 0)
831OPTION(1, 5704 /* -profile-unknown-in-special-section */, anonymous_29, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5740, 0, 0, 0, 0)
832OPTION(1, 6124 /* -regalloc-fast-tied */, anonymous_75, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6144, 0, 0, 0, 0)
833OPTION(1, 6282 /* -split-static-data */, anonymous_76, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6301, 0, 0, 0, 0)
834OPTION(1, 6381 /* -start-after */, anonymous_77, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6394, 0, 6435, 0, 0)
835OPTION(1, 6447 /* -start-before */, anonymous_78, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6461, 0, 6435, 0, 0)
836OPTION(1, 6503 /* -stop-after */, anonymous_79, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6515, 0, 6435, 0, 0)
837OPTION(1, 6554 /* -stop-before */, anonymous_80, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6567, 0, 6435, 0, 0)
838OPTION(1, 6607 /* -verify-machineinstrs */, anonymous_81, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6629, 0, 0, 0, 0)
839#endif // OPTION
840
841#ifdef SIMPLE_ENUM_VALUE_TABLE
842
843struct SimpleEnumValue {
844 const char *Name;
845 unsigned Value;
846};
847
848struct SimpleEnumValueTable {
849 const SimpleEnumValue *Table;
850 unsigned Size;
851};
852static const SimpleEnumValueTable SimpleEnumValueTables[] = {};
853static const unsigned SimpleEnumValueTablesSize = std::size(SimpleEnumValueTables);
854#endif // SIMPLE_ENUM_VALUE_TABLE
855