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