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_branch_hint_probability_threshold,
19 OPT_disable_spill_fusing,
20 OPT_disable_x86_domain_reassignment,
21 OPT_disable_x86_lea_opt,
22 OPT_enable_branch_hint,
23 OPT_enable_x86_scalar_amx,
24 OPT_fixup_byte_word_insts,
25 OPT_no_x86_call_frame_opt,
26 OPT_partial_reg_update_clearance,
27 OPT_print_failed_fuse_candidates,
28 OPT_remat_pic_stub_load,
29 OPT_undef_reg_clearance,
30 OPT_x86_and_imm_shrink,
31 OPT_x86_br_merging_base_cost,
32 OPT_x86_br_merging_ccmp_bias,
33 OPT_x86_br_merging_likely_bias,
34 OPT_x86_br_merging_unlikely_bias,
35 OPT_x86_cmov_converter_force_all,
36 OPT_x86_cmov_converter_force_mem_operand,
37 OPT_x86_cmov_converter_threshold,
38 OPT_x86_cmov_converter,
39 OPT_x86_disable_avoid_SFB,
40 OPT_x86_disable_regalloc_hints_for_ndd,
41 OPT_x86_early_ifcvt,
42 OPT_x86_enable_apx_for_relocation,
43 OPT_x86_experimental_pref_innermost_loop_alignment,
44 OPT_x86_indirect_branch_tracking,
45 OPT_x86_lvi_load_dot_only,
46 OPT_x86_lvi_load_dot_verify,
47 OPT_x86_lvi_load_dot,
48 OPT_x86_lvi_load_no_cbranch,
49 OPT_x86_lvi_load_opt_plugin,
50 OPT_x86_machine_combiner,
51 OPT_x86_max_nf_conversions_for_cmp_reuse,
52 OPT_x86_promote_anyext_load,
53 OPT_x86_seses_enable_without_lvi_cfi,
54 OPT_x86_seses_omit_branch_lfences,
55 OPT_x86_seses_one_lfence_per_bb,
56 OPT_x86_seses_only_lfence_non_const,
57 OPT_x86_setjmp_csr_warning_threshold,
58 OPT_x86_sfb_inspection_limit,
59 OPT_x86_slh_fence_call_and_ret,
60 OPT_x86_slh_indirect,
61 OPT_x86_slh_ip,
62 OPT_x86_slh_lfence,
63 OPT_x86_slh_loads,
64 OPT_x86_slh_post_load,
65 OPT_x86_speculative_load_hardening,
66 OPT_x86_tile_ra,
67 OPT_x86_use_base_pointer,
68 OPT_x86_use_fsrm_for_memcpy,
69 OPT_x86_use_vzeroupper,
70 OPT_x86_wineh_unwindv2_force_mode,
71 OPT_x86_wineh_unwindv2_instruction_count_threshold,
72 OPT_x86_wineh_unwindv2_unwind_codes_threshold,
73 OPT_x86_wineh_unwindv3_instr_avg_size,
74};
75} // namespace
76
77static llvm::opt::OptTable::Tables optionTables() {
78 using llvm::opt::DefaultVis, llvm::opt::HelpHidden,
79 llvm::opt::RenderAsInput, llvm::opt::RenderJoined,
80 llvm::opt::RenderSeparate;
81
82#ifdef __GNUC__
83#pragma GCC diagnostic push
84#pragma GCC diagnostic ignored "-Woverlength-strings"
85#endif
86static constexpr char OptionStrTableStorage[] =
87 "\0"
88 "-\0"
89 "--\0"
90 "<input>\0"
91 "<unknown>\0"
92 "-branch-hint-probability-threshold\0"
93 "The probability threshold of enabling branch hint\0"
94 "-disable-spill-fusing\0"
95 "Disable fusing of spill code into instructions\0"
96 "-disable-x86-domain-reassignment\0"
97 "X86: Disable Virtual Register Reassignment\0"
98 "-disable-x86-lea-opt\0"
99 "X86: Disable LEA optimizations\0"
100 "-enable-branch-hint\0"
101 "Enable branch hint\0"
102 "-enable-x86-scalar-amx\0"
103 "X86: enable AMX scalarizition\0"
104 "-fixup-byte-word-insts\0"
105 "Change byte and word instructions to larger sizes\0"
106 "-no-x86-call-frame-opt\0"
107 "Avoid optimizing x86 call frames for size\0"
108 "-partial-reg-update-clearance\0"
109 "Clearance between two register writes for inserting XOR to avoid partial register update\0"
110 "-print-failed-fuse-candidates\0"
111 "Print instructions that the allocator wants to fuse, but the X86 backend currently can't\0"
112 "-remat-pic-stub-load\0"
113 "Re-materialize load from stub in PIC mode\0"
114 "-undef-reg-clearance\0"
115 "How many idle instructions we would like before certain undef register reads\0"
116 "-x86-and-imm-shrink\0"
117 "Enable setting constant bits to reduce size of mask immediates\0"
118 "-x86-br-merging-base-cost\0"
119 "Sets the cost threshold for when multiple conditionals will be merged into one branch versus be split in multiple branches. Merging conditionals saves branches at the cost of additional instructions. This value sets the instruction cost limit, below which conditionals will be merged, and above which conditionals will be split. Set to -1 to never merge branches\0"
120 "-x86-br-merging-ccmp-bias\0"
121 "Increases 'x86-br-merging-base-cost' in cases that the target supports conditional compare instructions\0"
122 "-x86-br-merging-likely-bias\0"
123 "Increases 'x86-br-merging-base-cost' in cases that it is likely that all conditionals will be executed. For example for merging the conditionals (a == b && c > d), if its known that a == b is likely, then it is likely that if the conditionals are split both sides will be executed, so it may be desirable to increase the instruction cost threshold. Set to -1 to never merge likely branches\0"
124 "-x86-br-merging-unlikely-bias\0"
125 "Decreases 'x86-br-merging-base-cost' in cases that it is unlikely that all conditionals will be executed. For example for merging the conditionals (a == b && c > d), if its known that a == b is unlikely, then it is unlikely that if the conditionals are split both sides will be executed, so it may be desirable to decrease the instruction cost threshold. Set to -1 to never merge unlikely branches\0"
126 "-x86-cmov-converter-force-all\0"
127 "Convert all cmovs to branches\0"
128 "-x86-cmov-converter-force-mem-operand\0"
129 "Convert cmovs to branches whenever they have memory operands\0"
130 "-x86-cmov-converter-threshold\0"
131 "Minimum gain per loop (in cycles) threshold\0"
132 "-x86-cmov-converter\0"
133 "Enable the X86 cmov-to-branch optimization\0"
134 "-x86-disable-avoid-SFB\0"
135 "X86: Disable Store Forwarding Blocks fixup\0"
136 "-x86-disable-regalloc-hints-for-ndd\0"
137 "Disable two address hints for register allocation\0"
138 "-x86-early-ifcvt\0"
139 "Enable early if-conversion on X86\0"
140 "-x86-enable-apx-for-relocation\0"
141 "Enable APX features (EGPR, NDD and NF) for instructions with relocations on x86-64 ELF\0"
142 "-x86-experimental-pref-innermost-loop-alignment\0"
143 "Sets the preferable loop alignment for experiments (as log2 bytes) for innermost loops only. If specified, this option overrides alignment set by x86-experimental-pref-loop-alignment\0"
144 "-x86-indirect-branch-tracking\0"
145 "Enable X86 indirect branch tracking pass\0"
146 "-x86-lvi-load-dot-only\0"
147 "For each function, emit a dot graph depicting potential LVI gadgets, and do not insert any fences\0"
148 "-x86-lvi-load-dot-verify\0"
149 "For each function, emit a dot graph to stdout depicting potential LVI gadgets, used for testing purposes only\0"
150 "-x86-lvi-load-dot\0"
151 "For each function, emit a dot graph depicting potential LVI gadgets\0"
152 "-x86-lvi-load-no-cbranch\0"
153 "Don't treat conditional branches as disclosure gadgets. This may improve performance, at the cost of security\0"
154 "-x86-lvi-load-opt-plugin\0"
155 "Specify a plugin to optimize LFENCE insertion\0"
156 "-x86-machine-combiner\0"
157 "Enable the machine combiner pass\0"
158 "-x86-max-nf-conversions-for-cmp-reuse\0"
159 "Maximum number of NF conversions allowed to reuse EFLAGS from a producer dominating a multi-predecessor block\0"
160 "-x86-promote-anyext-load\0"
161 "Enable promoting aligned anyext load to wider load\0"
162 "-x86-seses-enable-without-lvi-cfi\0"
163 "Force enable speculative execution side effect suppression. (Note: User must pass -mlvi-cfi in order to mitigate indirect branches and returns.)\0"
164 "-x86-seses-omit-branch-lfences\0"
165 "Omit all lfences before branch instructions\0"
166 "-x86-seses-one-lfence-per-bb\0"
167 "Omit all lfences other than the first to be placed in a basic block\0"
168 "-x86-seses-only-lfence-non-const\0"
169 "Only lfence before groups of terminators where at least one branch instruction has an input to the addressing mode that is a register other than %rip\0"
170 "-x86-setjmp-csr-warning-threshold\0"
171 "Basic block count threshold for emitting a warning about callee-saved registers reserved due to setjmp\0"
172 "-x86-sfb-inspection-limit\0"
173 "X86: Number of instructions backward to inspect for store forwarding blocks\0"
174 "-x86-slh-fence-call-and-ret\0"
175 "Use a full speculation fence to harden both call and ret edges rather than a lighter weight mitigation\0"
176 "-x86-slh-indirect\0"
177 "Harden indirect calls and jumps against using speculatively stored attacker controlled addresses. This is designed to mitigate Spectre v1.2 style attacks\0"
178 "-x86-slh-ip\0"
179 "Harden interprocedurally by passing our state in and out of functions in the high bits of the stack pointer\0"
180 "-x86-slh-lfence\0"
181 "Use LFENCE along each conditional edge to harden against speculative loads rather than conditional movs and poisoned pointers\0"
182 "-x86-slh-loads\0"
183 "Sanitize loads from memory. When disable, no significant security is provided\0"
184 "-x86-slh-post-load\0"
185 "Harden the value loaded *after* it is loaded by flushing the loaded bits to 1. This is hard to do in general but can be done easily for GPRs\0"
186 "-x86-speculative-load-hardening\0"
187 "Force enable speculative load hardening\0"
188 "-x86-tile-ra\0"
189 "Enable the tile register allocation pass\0"
190 "-x86-use-base-pointer\0"
191 "Enable use of a base pointer for complex stack frames\0"
192 "-x86-use-fsrm-for-memcpy\0"
193 "Use fast short rep mov in memcpy lowering\0"
194 "-x86-use-vzeroupper\0"
195 "Minimize AVX to SSE transition penalty\0"
196 "-x86-wineh-unwindv2-force-mode\0"
197 "Overwrites the Unwind v2 mode for testing purposes\0"
198 "-x86-wineh-unwindv2-instruction-count-threshold\0"
199 "Maximum number of (approximate) instructions before splitting into a new unwind info\0"
200 "-x86-wineh-unwindv2-unwind-codes-threshold\0"
201 "Maximum number of unwind codes before splitting into a new unwind info\0"
202 "-x86-wineh-unwindv3-instr-avg-size\0"
203 "Average size of an instruction. This value is used in determining split points for chained unwinder info\0"
204 ;
205#ifdef __GNUC__
206#pragma GCC diagnostic pop
207#endif
208
209static constexpr llvm::StringTable
210OptionStrTable = OptionStrTableStorage;
211
212 static constexpr llvm::StringTable::Offset OptionPrefixesTable[] = {
213 0 /* prefixes */,
214 2 /* prefixes */, 1 /* '-' */, 3 /* '--' */
215 };
216
217 static constexpr llvm::opt::OptTable::HelpTextVariant OptionHelpTextVariantsTable[] = {
218 {0, 0},
219 };
220
221 static constexpr unsigned OptionSubCommandIDsTable[] = {
222 0 /* subcommands */
223 };
224
225 static constexpr llvm::opt::OptTable::InfoExtra OptionInfoExtrasTable[] = {
226 {0, 0, 0, 0, 0, 0, 0, 0},
227 {0, 0, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0},
228 };
229
230 static constexpr llvm::opt::OptTable::Info OptionInfoTable[] = {
231 {6 /* <input> */, 0, 0, 0, 1, 0, llvm::opt::Option::InputClass},
232 {14 /* <unknown> */, 0, 0, 0, 1, 0, llvm::opt::Option::UnknownClass},
233 {24 /* -branch-hint-probability-threshold */, 59, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
234 {109 /* -disable-spill-fusing */, 131, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
235 {178 /* -disable-x86-domain-reassignment */, 211, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
236 {254 /* -disable-x86-lea-opt */, 275, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
237 {306 /* -enable-branch-hint */, 326, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
238 {345 /* -enable-x86-scalar-amx */, 368, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
239 {398 /* -fixup-byte-word-insts */, 421, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
240 {471 /* -no-x86-call-frame-opt */, 494, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
241 {536 /* -partial-reg-update-clearance */, 566, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
242 {655 /* -print-failed-fuse-candidates */, 685, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
243 {774 /* -remat-pic-stub-load */, 795, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
244 {837 /* -undef-reg-clearance */, 858, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
245 {935 /* -x86-and-imm-shrink */, 955, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
246 {1018 /* -x86-br-merging-base-cost */, 1044, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
247 {1407 /* -x86-br-merging-ccmp-bias */, 1433, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
248 {1537 /* -x86-br-merging-likely-bias */, 1565, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
249 {1955 /* -x86-br-merging-unlikely-bias */, 1985, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
250 {2383 /* -x86-cmov-converter-force-all */, 2413, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
251 {2443 /* -x86-cmov-converter-force-mem-operand */, 2481, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
252 {2542 /* -x86-cmov-converter-threshold */, 2572, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
253 {2616 /* -x86-cmov-converter */, 2636, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
254 {2679 /* -x86-disable-avoid-SFB */, 2702, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
255 {2745 /* -x86-disable-regalloc-hints-for-ndd */, 2781, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
256 {2831 /* -x86-early-ifcvt */, 2848, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
257 {2882 /* -x86-enable-apx-for-relocation */, 2913, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
258 {3000 /* -x86-experimental-pref-innermost-loop-alignment */, 3048, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
259 {3231 /* -x86-indirect-branch-tracking */, 3261, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
260 {3302 /* -x86-lvi-load-dot-only */, 3325, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
261 {3423 /* -x86-lvi-load-dot-verify */, 3448, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
262 {3558 /* -x86-lvi-load-dot */, 3576, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
263 {3644 /* -x86-lvi-load-no-cbranch */, 3669, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
264 {3779 /* -x86-lvi-load-opt-plugin */, 3804, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
265 {3850 /* -x86-machine-combiner */, 3872, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
266 {3905 /* -x86-max-nf-conversions-for-cmp-reuse */, 3943, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
267 {4053 /* -x86-promote-anyext-load */, 4078, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
268 {4129 /* -x86-seses-enable-without-lvi-cfi */, 4163, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
269 {4308 /* -x86-seses-omit-branch-lfences */, 4339, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
270 {4383 /* -x86-seses-one-lfence-per-bb */, 4412, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
271 {4480 /* -x86-seses-only-lfence-non-const */, 4513, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
272 {4663 /* -x86-setjmp-csr-warning-threshold */, 4697, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
273 {4800 /* -x86-sfb-inspection-limit */, 4826, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
274 {4902 /* -x86-slh-fence-call-and-ret */, 4930, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
275 {5033 /* -x86-slh-indirect */, 5051, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
276 {5205 /* -x86-slh-ip */, 5217, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
277 {5325 /* -x86-slh-lfence */, 5341, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
278 {5467 /* -x86-slh-loads */, 5482, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
279 {5560 /* -x86-slh-post-load */, 5579, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
280 {5720 /* -x86-speculative-load-hardening */, 5752, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
281 {5792 /* -x86-tile-ra */, 5805, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
282 {5846 /* -x86-use-base-pointer */, 5868, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
283 {5922 /* -x86-use-fsrm-for-memcpy */, 5947, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
284 {5989 /* -x86-use-vzeroupper */, 6009, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass},
285 {6048 /* -x86-wineh-unwindv2-force-mode */, 6079, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
286 {6130 /* -x86-wineh-unwindv2-instruction-count-threshold */, 6178, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
287 {6263 /* -x86-wineh-unwindv2-unwind-codes-threshold */, 6306, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
288 {6377 /* -x86-wineh-unwindv3-instr-avg-size */, 6412, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass},
289 };
290
291 return {OptionStrTable, OptionPrefixesTable,
292 OptionInfoTable, OptionInfoExtrasTable, OptionHelpTextVariantsTable, {}, OptionSubCommandIDsTable};
293}
294#undef OPTTABLE_CODE
295#endif // OPTTABLE_CODE || OPTIONS_STRUCT_DEFS
296
297
298#ifdef OPTIONS_STRUCT_DECL
299#undef OPTIONS_STRUCT_DECL
300#include "llvm/ADT/ArrayRef.h"
301#include "llvm/ADT/BoolOrDefault.h"
302#include "llvm/ADT/StringRef.h"
303#include "llvm/Support/Allocator.h"
304#include "llvm/Support/LibraryOptionsContext.h"
305
306namespace llvm {
307namespace opt {
308class Arg;
309class LibraryOptionsParser;
310class OptTable;
311} // namespace opt
312} // namespace llvm
313
314namespace llvm {
315struct X86Options {
316 bool disable_avoid_SFB{false};
317 unsigned sfb_inspection_limit{20};
318 bool no_x86_call_frame_opt{false};
319 bool cmov_converter{true};
320 bool cmov_converter_force_all{false};
321 bool cmov_converter_force_mem_operand{true};
322 unsigned cmov_converter_threshold{4};
323 bool disable_x86_domain_reassignment{false};
324 bool fixup_byte_word_insts{true};
325 bool and_imm_shrink{true};
326 bool promote_anyext_load{true};
327 int br_merging_base_cost{2};
328 int br_merging_ccmp_bias{6};
329 int br_merging_likely_bias{0};
330 int br_merging_unlikely_bias{-1};
331 std::optional<int> experimental_pref_innermost_loop_alignment{std::nullopt};
332 bool indirect_branch_tracking{false};
333 bool use_vzeroupper{true};
334 bool disable_spill_fusing{false};
335 unsigned max_nf_conversions_for_cmp_reuse{6};
336 unsigned partial_reg_update_clearance{64};
337 bool print_failed_fuse_candidates{false};
338 bool remat_pic_stub_load{false};
339 unsigned undef_reg_clearance{128};
340 bool lvi_load_dot{false};
341 bool lvi_load_dot_only{false};
342 bool lvi_load_dot_verify{false};
343 bool lvi_load_no_cbranch{false};
344 StringRef lvi_load_opt_plugin{};
345 bool enable_x86_scalar_amx{false};
346 unsigned branch_hint_probability_threshold{50};
347 bool enable_branch_hint{false};
348 bool disable_x86_lea_opt{false};
349 bool disable_regalloc_hints_for_ndd{false};
350 unsigned setjmp_csr_warning_threshold{50};
351 bool use_base_pointer{true};
352 bool use_fsrm_for_memcpy{false};
353 bool seses_enable_without_lvi_cfi{false};
354 bool seses_omit_branch_lfences{false};
355 bool seses_one_lfence_per_bb{false};
356 bool seses_only_lfence_non_const{false};
357 bool slh_fence_call_and_ret{false};
358 bool slh_indirect{true};
359 bool slh_ip{true};
360 bool slh_lfence{false};
361 bool slh_loads{true};
362 bool slh_post_load{true};
363 bool speculative_load_hardening{false};
364 bool early_ifcvt{false};
365 bool enable_apx_for_relocation{false};
366 bool machine_combiner{true};
367 bool tile_ra{true};
368 std::optional<unsigned> wineh_unwindv2_force_mode{std::nullopt};
369 unsigned wineh_unwindv2_instruction_count_threshold{600};
370 unsigned wineh_unwindv2_unwind_codes_threshold{UINT8_MAX};
371 unsigned wineh_unwindv3_instr_avg_size{7};
372
373 static constexpr bool PerContext = true;
374 static const llvm::opt::OptTable &optTable();
375 /// Sets the member that \p A names, allocating a list from \p Alloc.
376 /// Returns false if the value is invalid.
377 bool apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc);
378
379private:
380 friend class llvm::cl::LibraryOptionsContext;
381 friend class llvm::opt::LibraryOptionsParser;
382
383 static X86Options Global;
384 static const X86Options Default;
385};
386} // namespace llvm
387#endif // OPTIONS_STRUCT_DECL
388
389#ifdef OPTIONS_STRUCT_DEFS
390#undef OPTIONS_STRUCT_DEFS
391llvm::X86Options llvm::X86Options::Global;
392LLVM_REQUIRE_CONSTANT_INITIALIZATION const llvm::X86Options llvm::X86Options::Default;
393
394const llvm::opt::OptTable &llvm::X86Options::optTable() {
395 static const llvm::opt::LibraryOptTable T(optionTables());
396 return T;
397}
398
399bool llvm::X86Options::apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc) {
400 switch (A.getOption().getID()) {
401 case OPT_branch_hint_probability_threshold:
402 return llvm::opt::parseArgValue(A.getValue(), branch_hint_probability_threshold, Alloc);
403 case OPT_disable_spill_fusing:
404 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_spill_fusing, Alloc);
405 case OPT_disable_x86_domain_reassignment:
406 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_x86_domain_reassignment, Alloc);
407 case OPT_disable_x86_lea_opt:
408 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_x86_lea_opt, Alloc);
409 case OPT_enable_branch_hint:
410 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_branch_hint, Alloc);
411 case OPT_enable_x86_scalar_amx:
412 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_x86_scalar_amx, Alloc);
413 case OPT_fixup_byte_word_insts:
414 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", fixup_byte_word_insts, Alloc);
415 case OPT_no_x86_call_frame_opt:
416 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", no_x86_call_frame_opt, Alloc);
417 case OPT_partial_reg_update_clearance:
418 return llvm::opt::parseArgValue(A.getValue(), partial_reg_update_clearance, Alloc);
419 case OPT_print_failed_fuse_candidates:
420 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", print_failed_fuse_candidates, Alloc);
421 case OPT_remat_pic_stub_load:
422 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", remat_pic_stub_load, Alloc);
423 case OPT_undef_reg_clearance:
424 return llvm::opt::parseArgValue(A.getValue(), undef_reg_clearance, Alloc);
425 case OPT_x86_and_imm_shrink:
426 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", and_imm_shrink, Alloc);
427 case OPT_x86_br_merging_base_cost:
428 return llvm::opt::parseArgValue(A.getValue(), br_merging_base_cost, Alloc);
429 case OPT_x86_br_merging_ccmp_bias:
430 return llvm::opt::parseArgValue(A.getValue(), br_merging_ccmp_bias, Alloc);
431 case OPT_x86_br_merging_likely_bias:
432 return llvm::opt::parseArgValue(A.getValue(), br_merging_likely_bias, Alloc);
433 case OPT_x86_br_merging_unlikely_bias:
434 return llvm::opt::parseArgValue(A.getValue(), br_merging_unlikely_bias, Alloc);
435 case OPT_x86_cmov_converter_force_all:
436 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cmov_converter_force_all, Alloc);
437 case OPT_x86_cmov_converter_force_mem_operand:
438 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cmov_converter_force_mem_operand, Alloc);
439 case OPT_x86_cmov_converter_threshold:
440 return llvm::opt::parseArgValue(A.getValue(), cmov_converter_threshold, Alloc);
441 case OPT_x86_cmov_converter:
442 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", cmov_converter, Alloc);
443 case OPT_x86_disable_avoid_SFB:
444 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_avoid_SFB, Alloc);
445 case OPT_x86_disable_regalloc_hints_for_ndd:
446 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", disable_regalloc_hints_for_ndd, Alloc);
447 case OPT_x86_early_ifcvt:
448 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", early_ifcvt, Alloc);
449 case OPT_x86_enable_apx_for_relocation:
450 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", enable_apx_for_relocation, Alloc);
451 case OPT_x86_experimental_pref_innermost_loop_alignment:
452 return llvm::opt::parseArgValue(A.getValue(), experimental_pref_innermost_loop_alignment, Alloc);
453 case OPT_x86_indirect_branch_tracking:
454 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", indirect_branch_tracking, Alloc);
455 case OPT_x86_lvi_load_dot_only:
456 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", lvi_load_dot_only, Alloc);
457 case OPT_x86_lvi_load_dot_verify:
458 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", lvi_load_dot_verify, Alloc);
459 case OPT_x86_lvi_load_dot:
460 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", lvi_load_dot, Alloc);
461 case OPT_x86_lvi_load_no_cbranch:
462 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", lvi_load_no_cbranch, Alloc);
463 case OPT_x86_lvi_load_opt_plugin:
464 return llvm::opt::parseArgValue(A.getValue(), lvi_load_opt_plugin, Alloc);
465 case OPT_x86_machine_combiner:
466 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", machine_combiner, Alloc);
467 case OPT_x86_max_nf_conversions_for_cmp_reuse:
468 return llvm::opt::parseArgValue(A.getValue(), max_nf_conversions_for_cmp_reuse, Alloc);
469 case OPT_x86_promote_anyext_load:
470 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", promote_anyext_load, Alloc);
471 case OPT_x86_seses_enable_without_lvi_cfi:
472 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", seses_enable_without_lvi_cfi, Alloc);
473 case OPT_x86_seses_omit_branch_lfences:
474 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", seses_omit_branch_lfences, Alloc);
475 case OPT_x86_seses_one_lfence_per_bb:
476 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", seses_one_lfence_per_bb, Alloc);
477 case OPT_x86_seses_only_lfence_non_const:
478 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", seses_only_lfence_non_const, Alloc);
479 case OPT_x86_setjmp_csr_warning_threshold:
480 return llvm::opt::parseArgValue(A.getValue(), setjmp_csr_warning_threshold, Alloc);
481 case OPT_x86_sfb_inspection_limit:
482 return llvm::opt::parseArgValue(A.getValue(), sfb_inspection_limit, Alloc);
483 case OPT_x86_slh_fence_call_and_ret:
484 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", slh_fence_call_and_ret, Alloc);
485 case OPT_x86_slh_indirect:
486 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", slh_indirect, Alloc);
487 case OPT_x86_slh_ip:
488 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", slh_ip, Alloc);
489 case OPT_x86_slh_lfence:
490 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", slh_lfence, Alloc);
491 case OPT_x86_slh_loads:
492 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", slh_loads, Alloc);
493 case OPT_x86_slh_post_load:
494 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", slh_post_load, Alloc);
495 case OPT_x86_speculative_load_hardening:
496 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", speculative_load_hardening, Alloc);
497 case OPT_x86_tile_ra:
498 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", tile_ra, Alloc);
499 case OPT_x86_use_base_pointer:
500 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", use_base_pointer, Alloc);
501 case OPT_x86_use_fsrm_for_memcpy:
502 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", use_fsrm_for_memcpy, Alloc);
503 case OPT_x86_use_vzeroupper:
504 return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true", use_vzeroupper, Alloc);
505 case OPT_x86_wineh_unwindv2_force_mode:
506 return llvm::opt::parseArgValue(A.getValue(), wineh_unwindv2_force_mode, Alloc);
507 case OPT_x86_wineh_unwindv2_instruction_count_threshold:
508 return llvm::opt::parseArgValue(A.getValue(), wineh_unwindv2_instruction_count_threshold, Alloc);
509 case OPT_x86_wineh_unwindv2_unwind_codes_threshold:
510 return llvm::opt::parseArgValue(A.getValue(), wineh_unwindv2_unwind_codes_threshold, Alloc);
511 case OPT_x86_wineh_unwindv3_instr_avg_size:
512 return llvm::opt::parseArgValue(A.getValue(), wineh_unwindv3_instr_avg_size, Alloc);
513 }
514 llvm_unreachable("option without a member");
515}
516#endif // OPTIONS_STRUCT_DEFS
517/////////
518// ValuesCode
519
520#ifdef OPTTABLE_VALUES_CODE
521static llvm::StringRef getOptionValuesCode(unsigned ID) {
522 switch (ID) {
523 }
524 return {};
525}
526#undef OPTTABLE_VALUES_CODE
527#endif // OPTTABLE_VALUES_CODE
528/////////
529// Groups
530
531#ifdef OPTION
532
533//////////
534// Options
535
536OPTION(0, 6 /* <input> */, INPUT, Input, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0)
537OPTION(0, 14 /* <unknown> */, UNKNOWN, Unknown, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0)
538OPTION(1, 24 /* -branch-hint-probability-threshold */, anonymous_30, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 59, 0, 0, 0, 0)
539OPTION(1, 109 /* -disable-spill-fusing */, anonymous_18, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 131, 0, 0, 0, 0)
540OPTION(1, 178 /* -disable-x86-domain-reassignment */, anonymous_7, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 211, 0, 0, 0, 0)
541OPTION(1, 254 /* -disable-x86-lea-opt */, anonymous_32, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 275, 0, 0, 0, 0)
542OPTION(1, 306 /* -enable-branch-hint */, anonymous_31, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 326, 0, 0, 0, 0)
543OPTION(1, 345 /* -enable-x86-scalar-amx */, anonymous_29, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 368, 0, 0, 0, 0)
544OPTION(1, 398 /* -fixup-byte-word-insts */, anonymous_8, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 421, 0, 0, 0, 0)
545OPTION(1, 471 /* -no-x86-call-frame-opt */, anonymous_2, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 494, 0, 0, 0, 0)
546OPTION(1, 536 /* -partial-reg-update-clearance */, anonymous_20, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 566, 0, 0, 0, 0)
547OPTION(1, 655 /* -print-failed-fuse-candidates */, anonymous_21, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 685, 0, 0, 0, 0)
548OPTION(1, 774 /* -remat-pic-stub-load */, anonymous_22, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 795, 0, 0, 0, 0)
549OPTION(1, 837 /* -undef-reg-clearance */, anonymous_23, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 858, 0, 0, 0, 0)
550OPTION(1, 935 /* -x86-and-imm-shrink */, anonymous_9, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 955, 0, 0, 0, 0)
551OPTION(1, 1018 /* -x86-br-merging-base-cost */, anonymous_11, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1044, 0, 0, 0, 0)
552OPTION(1, 1407 /* -x86-br-merging-ccmp-bias */, anonymous_12, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1433, 0, 0, 0, 0)
553OPTION(1, 1537 /* -x86-br-merging-likely-bias */, anonymous_13, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1565, 0, 0, 0, 0)
554OPTION(1, 1955 /* -x86-br-merging-unlikely-bias */, anonymous_14, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1985, 0, 0, 0, 0)
555OPTION(1, 2383 /* -x86-cmov-converter-force-all */, anonymous_4, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2413, 0, 0, 0, 0)
556OPTION(1, 2443 /* -x86-cmov-converter-force-mem-operand */, anonymous_5, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2481, 0, 0, 0, 0)
557OPTION(1, 2542 /* -x86-cmov-converter-threshold */, anonymous_6, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2572, 0, 0, 0, 0)
558OPTION(1, 2616 /* -x86-cmov-converter */, anonymous_3, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2636, 0, 0, 0, 0)
559OPTION(1, 2679 /* -x86-disable-avoid-SFB */, anonymous_0, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2702, 0, 0, 0, 0)
560OPTION(1, 2745 /* -x86-disable-regalloc-hints-for-ndd */, anonymous_33, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2781, 0, 0, 0, 0)
561OPTION(1, 2831 /* -x86-early-ifcvt */, anonymous_48, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2848, 0, 0, 0, 0)
562OPTION(1, 2882 /* -x86-enable-apx-for-relocation */, anonymous_49, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2913, 0, 0, 0, 0)
563OPTION(1, 3000 /* -x86-experimental-pref-innermost-loop-alignment */, anonymous_15, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3048, 0, 0, 0, 0)
564OPTION(1, 3231 /* -x86-indirect-branch-tracking */, anonymous_16, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3261, 0, 0, 0, 0)
565OPTION(1, 3302 /* -x86-lvi-load-dot-only */, anonymous_25, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3325, 0, 0, 0, 0)
566OPTION(1, 3423 /* -x86-lvi-load-dot-verify */, anonymous_26, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3448, 0, 0, 0, 0)
567OPTION(1, 3558 /* -x86-lvi-load-dot */, anonymous_24, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3576, 0, 0, 0, 0)
568OPTION(1, 3644 /* -x86-lvi-load-no-cbranch */, anonymous_27, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3669, 0, 0, 0, 0)
569OPTION(1, 3779 /* -x86-lvi-load-opt-plugin */, anonymous_28, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3804, 0, 0, 0, 0)
570OPTION(1, 3850 /* -x86-machine-combiner */, anonymous_50, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3872, 0, 0, 0, 0)
571OPTION(1, 3905 /* -x86-max-nf-conversions-for-cmp-reuse */, anonymous_19, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3943, 0, 0, 0, 0)
572OPTION(1, 4053 /* -x86-promote-anyext-load */, anonymous_10, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4078, 0, 0, 0, 0)
573OPTION(1, 4129 /* -x86-seses-enable-without-lvi-cfi */, anonymous_37, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4163, 0, 0, 0, 0)
574OPTION(1, 4308 /* -x86-seses-omit-branch-lfences */, anonymous_38, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4339, 0, 0, 0, 0)
575OPTION(1, 4383 /* -x86-seses-one-lfence-per-bb */, anonymous_39, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4412, 0, 0, 0, 0)
576OPTION(1, 4480 /* -x86-seses-only-lfence-non-const */, anonymous_40, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4513, 0, 0, 0, 0)
577OPTION(1, 4663 /* -x86-setjmp-csr-warning-threshold */, anonymous_34, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4697, 0, 0, 0, 0)
578OPTION(1, 4800 /* -x86-sfb-inspection-limit */, anonymous_1, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4826, 0, 0, 0, 0)
579OPTION(1, 4902 /* -x86-slh-fence-call-and-ret */, anonymous_41, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4930, 0, 0, 0, 0)
580OPTION(1, 5033 /* -x86-slh-indirect */, anonymous_42, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5051, 0, 0, 0, 0)
581OPTION(1, 5205 /* -x86-slh-ip */, anonymous_43, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5217, 0, 0, 0, 0)
582OPTION(1, 5325 /* -x86-slh-lfence */, anonymous_44, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5341, 0, 0, 0, 0)
583OPTION(1, 5467 /* -x86-slh-loads */, anonymous_45, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5482, 0, 0, 0, 0)
584OPTION(1, 5560 /* -x86-slh-post-load */, anonymous_46, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5579, 0, 0, 0, 0)
585OPTION(1, 5720 /* -x86-speculative-load-hardening */, anonymous_47, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5752, 0, 0, 0, 0)
586OPTION(1, 5792 /* -x86-tile-ra */, anonymous_51, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5805, 0, 0, 0, 0)
587OPTION(1, 5846 /* -x86-use-base-pointer */, anonymous_35, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5868, 0, 0, 0, 0)
588OPTION(1, 5922 /* -x86-use-fsrm-for-memcpy */, anonymous_36, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5947, 0, 0, 0, 0)
589OPTION(1, 5989 /* -x86-use-vzeroupper */, anonymous_17, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6009, 0, 0, 0, 0)
590OPTION(1, 6048 /* -x86-wineh-unwindv2-force-mode */, anonymous_52, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6079, 0, 0, 0, 0)
591OPTION(1, 6130 /* -x86-wineh-unwindv2-instruction-count-threshold */, anonymous_53, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6178, 0, 0, 0, 0)
592OPTION(1, 6263 /* -x86-wineh-unwindv2-unwind-codes-threshold */, anonymous_54, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6306, 0, 0, 0, 0)
593OPTION(1, 6377 /* -x86-wineh-unwindv3-instr-avg-size */, anonymous_55, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6412, 0, 0, 0, 0)
594#endif // OPTION
595
596#ifdef SIMPLE_ENUM_VALUE_TABLE
597
598struct SimpleEnumValue {
599 const char *Name;
600 unsigned Value;
601};
602
603struct SimpleEnumValueTable {
604 const SimpleEnumValue *Table;
605 unsigned Size;
606};
607static const SimpleEnumValueTable SimpleEnumValueTables[] = {};
608static const unsigned SimpleEnumValueTablesSize = std::size(SimpleEnumValueTables);
609#endif // SIMPLE_ENUM_VALUE_TABLE
610