i386.opt revision 1.14 1 1.1 mrg ; Options for the IA-32 and AMD64 ports of the compiler.
2 1.1 mrg
3 1.14 mrg ; Copyright (C) 2005-2022 Free Software Foundation, Inc.
4 1.1 mrg ;
5 1.1 mrg ; This file is part of GCC.
6 1.1 mrg ;
7 1.1 mrg ; GCC is free software; you can redistribute it and/or modify it under
8 1.1 mrg ; the terms of the GNU General Public License as published by the Free
9 1.1 mrg ; Software Foundation; either version 3, or (at your option) any later
10 1.1 mrg ; version.
11 1.1 mrg ;
12 1.1 mrg ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 1.1 mrg ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 1.1 mrg ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 1.1 mrg ; for more details.
16 1.1 mrg ;
17 1.1 mrg ; You should have received a copy of the GNU General Public License
18 1.1 mrg ; along with GCC; see the file COPYING3. If not see
19 1.1 mrg ; <http://www.gnu.org/licenses/>.
20 1.1 mrg
21 1.3 mrg HeaderInclude
22 1.3 mrg config/i386/i386-opts.h
23 1.3 mrg
24 1.3 mrg ; Bit flags that specify the ISA we are compiling for.
25 1.3 mrg Variable
26 1.3 mrg HOST_WIDE_INT ix86_isa_flags = TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_ISA_DEFAULT
27 1.3 mrg
28 1.10 mrg Variable
29 1.10 mrg HOST_WIDE_INT ix86_isa_flags2 = 0
30 1.10 mrg
31 1.3 mrg ; A mask of ix86_isa_flags that includes bit X if X was set or cleared
32 1.3 mrg ; on the command line.
33 1.3 mrg Variable
34 1.3 mrg HOST_WIDE_INT ix86_isa_flags_explicit
35 1.3 mrg
36 1.10 mrg Variable
37 1.10 mrg HOST_WIDE_INT ix86_isa_flags2_explicit
38 1.10 mrg
39 1.10 mrg ; Additional target flags
40 1.10 mrg Variable
41 1.10 mrg int ix86_target_flags
42 1.10 mrg
43 1.3 mrg TargetVariable
44 1.3 mrg int recip_mask = RECIP_MASK_DEFAULT
45 1.3 mrg
46 1.3 mrg Variable
47 1.3 mrg int recip_mask_explicit
48 1.3 mrg
49 1.3 mrg TargetSave
50 1.3 mrg int x_recip_mask_explicit
51 1.3 mrg
52 1.13 mrg ;; A copy of flag_excess_precision as a target variable that should
53 1.13 mrg ;; force a different DECL_FUNCTION_SPECIFIC_TARGET upon
54 1.13 mrg ;; flag_excess_precision changes.
55 1.13 mrg TargetVariable
56 1.13 mrg enum excess_precision ix86_excess_precision = EXCESS_PRECISION_DEFAULT
57 1.13 mrg
58 1.13 mrg ;; Similarly for flag_unsafe_math_optimizations.
59 1.13 mrg TargetVariable
60 1.13 mrg bool ix86_unsafe_math_optimizations = false
61 1.13 mrg
62 1.1 mrg ;; Definitions to add to the cl_target_option structure
63 1.1 mrg ;; -march= processor
64 1.1 mrg TargetSave
65 1.1 mrg unsigned char arch
66 1.1 mrg
67 1.1 mrg ;; -mtune= processor
68 1.1 mrg TargetSave
69 1.1 mrg unsigned char tune
70 1.1 mrg
71 1.5 mrg ;; -march= processor-string
72 1.5 mrg TargetSave
73 1.5 mrg const char *x_ix86_arch_string
74 1.5 mrg
75 1.5 mrg ;; -mtune= processor-string
76 1.5 mrg TargetSave
77 1.5 mrg const char *x_ix86_tune_string
78 1.5 mrg
79 1.1 mrg ;; CPU schedule model
80 1.1 mrg TargetSave
81 1.1 mrg unsigned char schedule
82 1.1 mrg
83 1.5 mrg ;; True if processor has SSE prefetch instruction.
84 1.5 mrg TargetSave
85 1.5 mrg unsigned char prefetch_sse
86 1.5 mrg
87 1.1 mrg ;; branch cost
88 1.1 mrg TargetSave
89 1.1 mrg unsigned char branch_cost
90 1.1 mrg
91 1.1 mrg ;; which flags were passed by the user
92 1.1 mrg TargetSave
93 1.10 mrg HOST_WIDE_INT x_ix86_isa_flags2_explicit
94 1.5 mrg
95 1.5 mrg ;; which flags were passed by the user
96 1.1 mrg TargetSave
97 1.10 mrg HOST_WIDE_INT x_ix86_isa_flags_explicit
98 1.1 mrg
99 1.1 mrg ;; whether -mtune was not specified
100 1.1 mrg TargetSave
101 1.1 mrg unsigned char tune_defaulted
102 1.1 mrg
103 1.1 mrg ;; whether -march was specified
104 1.1 mrg TargetSave
105 1.1 mrg unsigned char arch_specified
106 1.1 mrg
107 1.5 mrg ;; -mcmodel= model
108 1.14 mrg TargetVariable
109 1.14 mrg enum cmodel ix86_cmodel = CM_32
110 1.5 mrg
111 1.5 mrg ;; -mabi=
112 1.14 mrg TargetVariable
113 1.14 mrg enum calling_abi ix86_abi = SYSV_ABI
114 1.5 mrg
115 1.5 mrg ;; -masm=
116 1.5 mrg TargetSave
117 1.5 mrg enum asm_dialect x_ix86_asm_dialect
118 1.5 mrg
119 1.5 mrg ;; -mbranch-cost=
120 1.5 mrg TargetSave
121 1.5 mrg int x_ix86_branch_cost
122 1.5 mrg
123 1.8 mrg ;; -mdump-tune-features=
124 1.5 mrg TargetSave
125 1.5 mrg int x_ix86_dump_tunes
126 1.5 mrg
127 1.5 mrg ;; -mstackrealign=
128 1.5 mrg TargetSave
129 1.5 mrg int x_ix86_force_align_arg_pointer
130 1.5 mrg
131 1.8 mrg ;; -mforce-drap=
132 1.5 mrg TargetSave
133 1.5 mrg int x_ix86_force_drap
134 1.5 mrg
135 1.5 mrg ;; -mincoming-stack-boundary=
136 1.14 mrg TargetVariable
137 1.14 mrg int ix86_incoming_stack_boundary_arg
138 1.5 mrg
139 1.5 mrg ;; -maddress-mode=
140 1.14 mrg TargetVariable
141 1.14 mrg enum pmode ix86_pmode = PMODE_SI
142 1.5 mrg
143 1.8 mrg ;; -mpreferred-stack-boundary=
144 1.14 mrg TargetVariable
145 1.14 mrg int ix86_preferred_stack_boundary_arg
146 1.5 mrg
147 1.5 mrg ;; -mrecip=
148 1.5 mrg TargetSave
149 1.5 mrg const char *x_ix86_recip_name
150 1.5 mrg
151 1.5 mrg ;; -mregparm=
152 1.14 mrg TargetVariable
153 1.14 mrg int ix86_regparm
154 1.5 mrg
155 1.5 mrg ;; -mlarge-data-threshold=
156 1.5 mrg TargetSave
157 1.5 mrg int x_ix86_section_threshold
158 1.5 mrg
159 1.5 mrg ;; -msse2avx=
160 1.5 mrg TargetSave
161 1.5 mrg int x_ix86_sse2avx
162 1.5 mrg
163 1.5 mrg ;; -mstack-protector-guard=
164 1.5 mrg TargetSave
165 1.5 mrg enum stack_protector_guard x_ix86_stack_protector_guard
166 1.5 mrg
167 1.5 mrg ;; -mstringop-strategy=
168 1.5 mrg TargetSave
169 1.5 mrg enum stringop_alg x_ix86_stringop_alg
170 1.5 mrg
171 1.5 mrg ;; -mtls-dialect=
172 1.5 mrg TargetSave
173 1.5 mrg enum tls_dialect x_ix86_tls_dialect
174 1.5 mrg
175 1.5 mrg ;; -mtune-ctrl=
176 1.5 mrg TargetSave
177 1.5 mrg const char *x_ix86_tune_ctrl_string
178 1.5 mrg
179 1.5 mrg ;; -mmemcpy-strategy=
180 1.5 mrg TargetSave
181 1.5 mrg const char *x_ix86_tune_memcpy_strategy
182 1.5 mrg
183 1.5 mrg ;; -mmemset-strategy=
184 1.5 mrg TargetSave
185 1.5 mrg const char *x_ix86_tune_memset_strategy
186 1.5 mrg
187 1.5 mrg ;; -mno-default=
188 1.5 mrg TargetSave
189 1.5 mrg int x_ix86_tune_no_default
190 1.5 mrg
191 1.5 mrg ;; -mveclibabi=
192 1.14 mrg TargetVariable
193 1.14 mrg enum ix86_veclibabi ix86_veclibabi_type = ix86_veclibabi_type_none
194 1.5 mrg
195 1.1 mrg ;; x86 options
196 1.1 mrg m128bit-long-double
197 1.14 mrg Target RejectNegative Mask(128BIT_LONG_DOUBLE) Save
198 1.8 mrg sizeof(long double) is 16.
199 1.1 mrg
200 1.1 mrg m80387
201 1.14 mrg Target Mask(80387) Save
202 1.8 mrg Use hardware fp.
203 1.1 mrg
204 1.1 mrg m96bit-long-double
205 1.14 mrg Target RejectNegative InverseMask(128BIT_LONG_DOUBLE) Save
206 1.8 mrg sizeof(long double) is 12.
207 1.1 mrg
208 1.3 mrg mlong-double-80
209 1.14 mrg Target RejectNegative Negative(mlong-double-64) InverseMask(LONG_DOUBLE_64) Save
210 1.8 mrg Use 80-bit long double.
211 1.3 mrg
212 1.3 mrg mlong-double-64
213 1.14 mrg Target RejectNegative Negative(mlong-double-128) Mask(LONG_DOUBLE_64) InverseMask(LONG_DOUBLE_128) Save
214 1.8 mrg Use 64-bit long double.
215 1.3 mrg
216 1.5 mrg mlong-double-128
217 1.14 mrg Target RejectNegative Negative(mlong-double-80) Mask(LONG_DOUBLE_128) InverseMask(LONG_DOUBLE_64) Save
218 1.8 mrg Use 128-bit long double.
219 1.5 mrg
220 1.1 mrg maccumulate-outgoing-args
221 1.14 mrg Target Mask(ACCUMULATE_OUTGOING_ARGS) Save
222 1.8 mrg Reserve space for outgoing arguments in the function prologue.
223 1.1 mrg
224 1.1 mrg malign-double
225 1.14 mrg Target Mask(ALIGN_DOUBLE) Save
226 1.8 mrg Align some doubles on dword boundary.
227 1.1 mrg
228 1.1 mrg malign-functions=
229 1.3 mrg Target RejectNegative Joined UInteger
230 1.8 mrg Function starts are aligned to this power of 2.
231 1.1 mrg
232 1.1 mrg malign-jumps=
233 1.3 mrg Target RejectNegative Joined UInteger
234 1.8 mrg Jump targets are aligned to this power of 2.
235 1.1 mrg
236 1.1 mrg malign-loops=
237 1.3 mrg Target RejectNegative Joined UInteger
238 1.8 mrg Loop code aligned to this power of 2.
239 1.1 mrg
240 1.1 mrg malign-stringops
241 1.14 mrg Target RejectNegative InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS) Save
242 1.8 mrg Align destination of the string operations.
243 1.1 mrg
244 1.5 mrg malign-data=
245 1.5 mrg Target RejectNegative Joined Var(ix86_align_data_type) Enum(ix86_align_data) Init(ix86_align_data_type_compat)
246 1.8 mrg Use the given data alignment.
247 1.5 mrg
248 1.5 mrg Enum
249 1.5 mrg Name(ix86_align_data) Type(enum ix86_align_data)
250 1.5 mrg Known data alignment choices (for use with the -malign-data= option):
251 1.5 mrg
252 1.5 mrg EnumValue
253 1.5 mrg Enum(ix86_align_data) String(compat) Value(ix86_align_data_type_compat)
254 1.5 mrg
255 1.5 mrg EnumValue
256 1.5 mrg Enum(ix86_align_data) String(abi) Value(ix86_align_data_type_abi)
257 1.5 mrg
258 1.5 mrg EnumValue
259 1.5 mrg Enum(ix86_align_data) String(cacheline) Value(ix86_align_data_type_cacheline)
260 1.5 mrg
261 1.1 mrg march=
262 1.12 mrg Target RejectNegative Negative(march=) Joined Var(ix86_arch_string)
263 1.8 mrg Generate code for given CPU.
264 1.1 mrg
265 1.1 mrg masm=
266 1.3 mrg Target RejectNegative Joined Enum(asm_dialect) Var(ix86_asm_dialect) Init(ASM_ATT)
267 1.8 mrg Use given assembler dialect.
268 1.1 mrg
269 1.3 mrg Enum
270 1.3 mrg Name(asm_dialect) Type(enum asm_dialect)
271 1.10 mrg Known assembler dialects (for use with the -masm= option):
272 1.3 mrg
273 1.3 mrg EnumValue
274 1.3 mrg Enum(asm_dialect) String(intel) Value(ASM_INTEL)
275 1.3 mrg
276 1.3 mrg EnumValue
277 1.3 mrg Enum(asm_dialect) String(att) Value(ASM_ATT)
278 1.3 mrg
279 1.1 mrg mbranch-cost=
280 1.11 mrg Target RejectNegative Joined UInteger Var(ix86_branch_cost) IntegerRange(0, 5)
281 1.11 mrg Branches are this expensive (arbitrary units).
282 1.1 mrg
283 1.1 mrg mlarge-data-threshold=
284 1.3 mrg Target RejectNegative Joined UInteger Var(ix86_section_threshold) Init(DEFAULT_LARGE_SECTION_THRESHOLD)
285 1.10 mrg -mlarge-data-threshold=<number> Data greater than given threshold will go into .ldata section in x86-64 medium model.
286 1.1 mrg
287 1.1 mrg mcmodel=
288 1.3 mrg Target RejectNegative Joined Enum(cmodel) Var(ix86_cmodel) Init(CM_32)
289 1.8 mrg Use given x86-64 code model.
290 1.1 mrg
291 1.3 mrg Enum
292 1.3 mrg Name(cmodel) Type(enum cmodel)
293 1.3 mrg Known code models (for use with the -mcmodel= option):
294 1.3 mrg
295 1.3 mrg EnumValue
296 1.3 mrg Enum(cmodel) String(small) Value(CM_SMALL)
297 1.3 mrg
298 1.3 mrg EnumValue
299 1.3 mrg Enum(cmodel) String(medium) Value(CM_MEDIUM)
300 1.3 mrg
301 1.3 mrg EnumValue
302 1.3 mrg Enum(cmodel) String(large) Value(CM_LARGE)
303 1.3 mrg
304 1.3 mrg EnumValue
305 1.3 mrg Enum(cmodel) String(32) Value(CM_32)
306 1.3 mrg
307 1.3 mrg EnumValue
308 1.3 mrg Enum(cmodel) String(kernel) Value(CM_KERNEL)
309 1.3 mrg
310 1.3 mrg maddress-mode=
311 1.3 mrg Target RejectNegative Joined Enum(pmode) Var(ix86_pmode) Init(PMODE_SI)
312 1.8 mrg Use given address mode.
313 1.3 mrg
314 1.3 mrg Enum
315 1.3 mrg Name(pmode) Type(enum pmode)
316 1.3 mrg Known address mode (for use with the -maddress-mode= option):
317 1.3 mrg
318 1.3 mrg EnumValue
319 1.3 mrg Enum(pmode) String(short) Value(PMODE_SI)
320 1.3 mrg
321 1.3 mrg EnumValue
322 1.3 mrg Enum(pmode) String(long) Value(PMODE_DI)
323 1.3 mrg
324 1.3 mrg mcpu=
325 1.3 mrg Target RejectNegative Joined Undocumented Alias(mtune=) Warn(%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead)
326 1.3 mrg
327 1.1 mrg mfancy-math-387
328 1.14 mrg Target RejectNegative InverseMask(NO_FANCY_MATH_387, USE_FANCY_MATH_387) Save
329 1.8 mrg Generate sin, cos, sqrt for FPU.
330 1.1 mrg
331 1.1 mrg mforce-drap
332 1.14 mrg Target Var(ix86_force_drap)
333 1.8 mrg Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack.
334 1.1 mrg
335 1.1 mrg mfp-ret-in-387
336 1.14 mrg Target Mask(FLOAT_RETURNS) Save
337 1.8 mrg Return values of functions in FPU registers.
338 1.1 mrg
339 1.1 mrg mfpmath=
340 1.3 mrg Target RejectNegative Joined Var(ix86_fpmath) Enum(fpmath_unit) Init(FPMATH_387) Save
341 1.8 mrg Generate floating point mathematics using given instruction set.
342 1.1 mrg
343 1.3 mrg Enum
344 1.3 mrg Name(fpmath_unit) Type(enum fpmath_unit)
345 1.3 mrg Valid arguments to -mfpmath=:
346 1.3 mrg
347 1.3 mrg EnumValue
348 1.3 mrg Enum(fpmath_unit) String(387) Value(FPMATH_387)
349 1.3 mrg
350 1.3 mrg EnumValue
351 1.3 mrg Enum(fpmath_unit) String(sse) Value(FPMATH_SSE)
352 1.3 mrg
353 1.3 mrg EnumValue
354 1.3 mrg Enum(fpmath_unit) String(387,sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
355 1.3 mrg
356 1.3 mrg EnumValue
357 1.3 mrg Enum(fpmath_unit) String(387+sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
358 1.3 mrg
359 1.3 mrg EnumValue
360 1.3 mrg Enum(fpmath_unit) String(sse,387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
361 1.3 mrg
362 1.3 mrg EnumValue
363 1.3 mrg Enum(fpmath_unit) String(sse+387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
364 1.3 mrg
365 1.3 mrg EnumValue
366 1.3 mrg Enum(fpmath_unit) String(both) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
367 1.3 mrg
368 1.1 mrg mhard-float
369 1.3 mrg Target RejectNegative Mask(80387) Save
370 1.8 mrg Use hardware fp.
371 1.1 mrg
372 1.1 mrg mieee-fp
373 1.14 mrg Target Mask(IEEE_FP) Save
374 1.8 mrg Use IEEE math for fp comparisons.
375 1.1 mrg
376 1.1 mrg minline-all-stringops
377 1.14 mrg Target Mask(INLINE_ALL_STRINGOPS) Save
378 1.8 mrg Inline all known string operations.
379 1.1 mrg
380 1.1 mrg minline-stringops-dynamically
381 1.14 mrg Target Mask(INLINE_STRINGOPS_DYNAMICALLY) Save
382 1.8 mrg Inline memset/memcpy string operations, but perform inline version only for small blocks.
383 1.1 mrg
384 1.1 mrg mintel-syntax
385 1.3 mrg Target Undocumented Alias(masm=, intel, att) Warn(%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-masm=intel%> and %<-masm=att%> instead)
386 1.1 mrg
387 1.1 mrg mms-bitfields
388 1.14 mrg Target Mask(MS_BITFIELD_LAYOUT) Save
389 1.8 mrg Use native (MS) bitfield layout.
390 1.1 mrg
391 1.1 mrg mno-align-stringops
392 1.14 mrg Target RejectNegative Mask(NO_ALIGN_STRINGOPS) Undocumented Save
393 1.1 mrg
394 1.1 mrg mno-fancy-math-387
395 1.14 mrg Target RejectNegative Mask(NO_FANCY_MATH_387) Undocumented Save
396 1.1 mrg
397 1.1 mrg mno-push-args
398 1.14 mrg Target RejectNegative Mask(NO_PUSH_ARGS) Undocumented Save
399 1.1 mrg
400 1.1 mrg mno-red-zone
401 1.14 mrg Target RejectNegative Mask(NO_RED_ZONE) Undocumented Save
402 1.1 mrg
403 1.1 mrg momit-leaf-frame-pointer
404 1.14 mrg Target Mask(OMIT_LEAF_FRAME_POINTER) Save
405 1.8 mrg Omit the frame pointer in leaf functions.
406 1.1 mrg
407 1.14 mrg mrelax-cmpxchg-loop
408 1.14 mrg Target Mask(RELAX_CMPXCHG_LOOP) Save
409 1.14 mrg Relax cmpxchg loop for atomic_fetch_{or,xor,and,nand} by adding load and cmp before cmpxchg, execute pause and loop back to load and compare if load value is not expected.
410 1.14 mrg
411 1.3 mrg mpc32
412 1.14 mrg Target RejectNegative
413 1.8 mrg Set 80387 floating-point precision to 32-bit.
414 1.3 mrg
415 1.3 mrg mpc64
416 1.14 mrg Target RejectNegative
417 1.8 mrg Set 80387 floating-point precision to 64-bit.
418 1.3 mrg
419 1.3 mrg mpc80
420 1.14 mrg Target RejectNegative
421 1.8 mrg Set 80387 floating-point precision to 80-bit.
422 1.1 mrg
423 1.14 mrg mdaz-ftz
424 1.14 mrg Target
425 1.14 mrg Set the FTZ and DAZ Flags.
426 1.14 mrg
427 1.1 mrg mpreferred-stack-boundary=
428 1.3 mrg Target RejectNegative Joined UInteger Var(ix86_preferred_stack_boundary_arg)
429 1.8 mrg Attempt to keep stack aligned to this power of 2.
430 1.1 mrg
431 1.1 mrg mincoming-stack-boundary=
432 1.3 mrg Target RejectNegative Joined UInteger Var(ix86_incoming_stack_boundary_arg)
433 1.8 mrg Assume incoming stack aligned to this power of 2.
434 1.1 mrg
435 1.1 mrg mpush-args
436 1.14 mrg Target InverseMask(NO_PUSH_ARGS, PUSH_ARGS) Save
437 1.8 mrg Use push instructions to save outgoing arguments.
438 1.1 mrg
439 1.1 mrg mred-zone
440 1.14 mrg Target RejectNegative InverseMask(NO_RED_ZONE, RED_ZONE) Save
441 1.8 mrg Use red-zone in the x86-64 code.
442 1.1 mrg
443 1.1 mrg mregparm=
444 1.3 mrg Target RejectNegative Joined UInteger Var(ix86_regparm)
445 1.8 mrg Number of registers used to pass integer arguments.
446 1.1 mrg
447 1.1 mrg mrtd
448 1.14 mrg Target Mask(RTD) Save
449 1.8 mrg Alternate calling convention.
450 1.1 mrg
451 1.1 mrg msoft-float
452 1.1 mrg Target InverseMask(80387) Save
453 1.8 mrg Do not use hardware fp.
454 1.1 mrg
455 1.1 mrg msseregparm
456 1.1 mrg Target RejectNegative Mask(SSEREGPARM) Save
457 1.8 mrg Use SSE register passing conventions for SF and DF mode.
458 1.1 mrg
459 1.1 mrg mstackrealign
460 1.14 mrg Target Var(ix86_force_align_arg_pointer)
461 1.8 mrg Realign stack in prologue.
462 1.1 mrg
463 1.1 mrg mstack-arg-probe
464 1.14 mrg Target Mask(STACK_PROBE) Save
465 1.8 mrg Enable stack probing.
466 1.1 mrg
467 1.5 mrg mmemcpy-strategy=
468 1.5 mrg Target RejectNegative Joined Var(ix86_tune_memcpy_strategy)
469 1.8 mrg Specify memcpy expansion strategy when expected size is known.
470 1.5 mrg
471 1.5 mrg mmemset-strategy=
472 1.5 mrg Target RejectNegative Joined Var(ix86_tune_memset_strategy)
473 1.8 mrg Specify memset expansion strategy when expected size is known.
474 1.5 mrg
475 1.1 mrg mstringop-strategy=
476 1.3 mrg Target RejectNegative Joined Enum(stringop_alg) Var(ix86_stringop_alg) Init(no_stringop)
477 1.8 mrg Chose strategy to generate stringop using.
478 1.1 mrg
479 1.3 mrg Enum
480 1.3 mrg Name(stringop_alg) Type(enum stringop_alg)
481 1.3 mrg Valid arguments to -mstringop-strategy=:
482 1.3 mrg
483 1.3 mrg EnumValue
484 1.3 mrg Enum(stringop_alg) String(rep_byte) Value(rep_prefix_1_byte)
485 1.3 mrg
486 1.3 mrg EnumValue
487 1.3 mrg Enum(stringop_alg) String(libcall) Value(libcall)
488 1.3 mrg
489 1.3 mrg EnumValue
490 1.3 mrg Enum(stringop_alg) String(rep_4byte) Value(rep_prefix_4_byte)
491 1.3 mrg
492 1.3 mrg EnumValue
493 1.3 mrg Enum(stringop_alg) String(rep_8byte) Value(rep_prefix_8_byte)
494 1.3 mrg
495 1.3 mrg EnumValue
496 1.3 mrg Enum(stringop_alg) String(byte_loop) Value(loop_1_byte)
497 1.3 mrg
498 1.3 mrg EnumValue
499 1.3 mrg Enum(stringop_alg) String(loop) Value(loop)
500 1.3 mrg
501 1.3 mrg EnumValue
502 1.3 mrg Enum(stringop_alg) String(unrolled_loop) Value(unrolled_loop)
503 1.3 mrg
504 1.5 mrg EnumValue
505 1.5 mrg Enum(stringop_alg) String(vector_loop) Value(vector_loop)
506 1.5 mrg
507 1.1 mrg mtls-dialect=
508 1.3 mrg Target RejectNegative Joined Var(ix86_tls_dialect) Enum(tls_dialect) Init(TLS_DIALECT_GNU)
509 1.8 mrg Use given thread-local storage dialect.
510 1.1 mrg
511 1.3 mrg Enum
512 1.3 mrg Name(tls_dialect) Type(enum tls_dialect)
513 1.3 mrg Known TLS dialects (for use with the -mtls-dialect= option):
514 1.3 mrg
515 1.3 mrg EnumValue
516 1.3 mrg Enum(tls_dialect) String(gnu) Value(TLS_DIALECT_GNU)
517 1.3 mrg
518 1.3 mrg EnumValue
519 1.3 mrg Enum(tls_dialect) String(gnu2) Value(TLS_DIALECT_GNU2)
520 1.3 mrg
521 1.1 mrg mtls-direct-seg-refs
522 1.14 mrg Target Mask(TLS_DIRECT_SEG_REFS)
523 1.8 mrg Use direct references against %gs when accessing tls data.
524 1.1 mrg
525 1.1 mrg mtune=
526 1.12 mrg Target RejectNegative Negative(mtune=) Joined Var(ix86_tune_string)
527 1.8 mrg Schedule code for given CPU.
528 1.1 mrg
529 1.5 mrg mtune-ctrl=
530 1.5 mrg Target RejectNegative Joined Var(ix86_tune_ctrl_string)
531 1.8 mrg Fine grain control of tune features.
532 1.5 mrg
533 1.5 mrg mno-default
534 1.11 mrg Target RejectNegative Var(ix86_tune_no_default)
535 1.8 mrg Clear all tune features.
536 1.5 mrg
537 1.5 mrg mdump-tune-features
538 1.11 mrg Target RejectNegative Var(ix86_dump_tunes)
539 1.5 mrg
540 1.8 mrg miamcu
541 1.14 mrg Target Mask(IAMCU)
542 1.8 mrg Generate code that conforms to Intel MCU psABI.
543 1.8 mrg
544 1.1 mrg mabi=
545 1.3 mrg Target RejectNegative Joined Var(ix86_abi) Enum(calling_abi) Init(SYSV_ABI)
546 1.8 mrg Generate code that conforms to the given ABI.
547 1.1 mrg
548 1.3 mrg Enum
549 1.3 mrg Name(calling_abi) Type(enum calling_abi)
550 1.3 mrg Known ABIs (for use with the -mabi= option):
551 1.3 mrg
552 1.3 mrg EnumValue
553 1.3 mrg Enum(calling_abi) String(sysv) Value(SYSV_ABI)
554 1.3 mrg
555 1.3 mrg EnumValue
556 1.3 mrg Enum(calling_abi) String(ms) Value(MS_ABI)
557 1.3 mrg
558 1.11 mrg mcall-ms2sysv-xlogues
559 1.14 mrg Target Mask(CALL_MS2SYSV_XLOGUES) Save
560 1.11 mrg Use libgcc stubs to save and restore registers clobbered by 64-bit Microsoft to System V ABI calls.
561 1.11 mrg
562 1.1 mrg mveclibabi=
563 1.3 mrg Target RejectNegative Joined Var(ix86_veclibabi_type) Enum(ix86_veclibabi) Init(ix86_veclibabi_type_none)
564 1.8 mrg Vector library ABI to use.
565 1.1 mrg
566 1.3 mrg Enum
567 1.3 mrg Name(ix86_veclibabi) Type(enum ix86_veclibabi)
568 1.3 mrg Known vectorization library ABIs (for use with the -mveclibabi= option):
569 1.3 mrg
570 1.3 mrg EnumValue
571 1.3 mrg Enum(ix86_veclibabi) String(svml) Value(ix86_veclibabi_type_svml)
572 1.3 mrg
573 1.3 mrg EnumValue
574 1.3 mrg Enum(ix86_veclibabi) String(acml) Value(ix86_veclibabi_type_acml)
575 1.3 mrg
576 1.3 mrg mvect8-ret-in-mem
577 1.14 mrg Target Mask(VECT8_RETURNS) Save
578 1.8 mrg Return 8-byte vectors in memory.
579 1.3 mrg
580 1.1 mrg mrecip
581 1.14 mrg Target Mask(RECIP) Save
582 1.1 mrg Generate reciprocals instead of divss and sqrtss.
583 1.1 mrg
584 1.3 mrg mrecip=
585 1.14 mrg Target RejectNegative Joined Var(ix86_recip_name)
586 1.3 mrg Control generation of reciprocal estimates.
587 1.3 mrg
588 1.1 mrg mcld
589 1.14 mrg Target Mask(CLD) Save
590 1.1 mrg Generate cld instruction in the function prologue.
591 1.1 mrg
592 1.3 mrg mvzeroupper
593 1.14 mrg Target Mask(VZEROUPPER) Save
594 1.3 mrg Generate vzeroupper instruction before a transfer of control flow out of
595 1.3 mrg the function.
596 1.3 mrg
597 1.8 mrg mstv
598 1.14 mrg Target Mask(STV) Save
599 1.8 mrg Disable Scalar to Vector optimization pass transforming 64-bit integer
600 1.8 mrg computations into a vector ones.
601 1.8 mrg
602 1.3 mrg mdispatch-scheduler
603 1.3 mrg Target RejectNegative Var(flag_dispatch_scheduler)
604 1.8 mrg Do dispatch scheduling if processor is bdver1, bdver2, bdver3, bdver4
605 1.8 mrg or znver1 and Haifa scheduling is selected.
606 1.3 mrg
607 1.3 mrg mprefer-avx128
608 1.11 mrg Target Alias(mprefer-vector-width=, 128, 256)
609 1.3 mrg Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer.
610 1.1 mrg
611 1.11 mrg mprefer-vector-width=
612 1.14 mrg Target RejectNegative Joined Var(prefer_vector_width_type) Enum(prefer_vector_width) Init(PVW_NONE) Save
613 1.11 mrg Use given register vector width instructions instead of maximum register width in the auto-vectorizer.
614 1.11 mrg
615 1.11 mrg Enum
616 1.11 mrg Name(prefer_vector_width) Type(enum prefer_vector_width)
617 1.12 mrg Known preferred register vector length (to use with the -mprefer-vector-width= option):
618 1.11 mrg
619 1.11 mrg EnumValue
620 1.11 mrg Enum(prefer_vector_width) String(none) Value(PVW_NONE)
621 1.11 mrg
622 1.11 mrg EnumValue
623 1.11 mrg Enum(prefer_vector_width) String(128) Value(PVW_AVX128)
624 1.11 mrg
625 1.11 mrg EnumValue
626 1.11 mrg Enum(prefer_vector_width) String(256) Value(PVW_AVX256)
627 1.11 mrg
628 1.11 mrg EnumValue
629 1.11 mrg Enum(prefer_vector_width) String(512) Value(PVW_AVX512)
630 1.11 mrg
631 1.14 mrg mmove-max=
632 1.14 mrg Target RejectNegative Joined Var(ix86_move_max) Enum(prefer_vector_width) Init(PVW_NONE) Save
633 1.14 mrg Maximum number of bits that can be moved from memory to memory efficiently.
634 1.14 mrg
635 1.14 mrg mstore-max=
636 1.14 mrg Target RejectNegative Joined Var(ix86_store_max) Enum(prefer_vector_width) Init(PVW_NONE) Save
637 1.14 mrg Maximum number of bits that can be stored to memory efficiently.
638 1.14 mrg
639 1.1 mrg ;; ISA support
640 1.1 mrg
641 1.1 mrg m32
642 1.14 mrg Target RejectNegative Negative(m64) InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
643 1.8 mrg Generate 32bit i386 code.
644 1.1 mrg
645 1.1 mrg m64
646 1.14 mrg Target RejectNegative Negative(mx32) Mask(ABI_64) Var(ix86_isa_flags) Save
647 1.8 mrg Generate 64bit x86-64 code.
648 1.1 mrg
649 1.3 mrg mx32
650 1.14 mrg Target RejectNegative Negative(m16) Mask(ABI_X32) Var(ix86_isa_flags) Save
651 1.8 mrg Generate 32bit x86-64 code.
652 1.3 mrg
653 1.5 mrg m16
654 1.14 mrg Target RejectNegative Negative(m32) Mask(CODE16) InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
655 1.8 mrg Generate 16bit i386 code.
656 1.5 mrg
657 1.1 mrg mmmx
658 1.14 mrg Target Mask(ISA_MMX) Var(ix86_isa_flags) Save
659 1.8 mrg Support MMX built-in functions.
660 1.1 mrg
661 1.1 mrg m3dnow
662 1.14 mrg Target Mask(ISA_3DNOW) Var(ix86_isa_flags) Save
663 1.8 mrg Support 3DNow! built-in functions.
664 1.1 mrg
665 1.1 mrg m3dnowa
666 1.14 mrg Target Mask(ISA_3DNOW_A) Var(ix86_isa_flags) Save
667 1.8 mrg Support Athlon 3Dnow! built-in functions.
668 1.1 mrg
669 1.1 mrg msse
670 1.14 mrg Target Mask(ISA_SSE) Var(ix86_isa_flags) Save
671 1.8 mrg Support MMX and SSE built-in functions and code generation.
672 1.1 mrg
673 1.1 mrg msse2
674 1.14 mrg Target Mask(ISA_SSE2) Var(ix86_isa_flags) Save
675 1.8 mrg Support MMX, SSE and SSE2 built-in functions and code generation.
676 1.1 mrg
677 1.1 mrg msse3
678 1.14 mrg Target Mask(ISA_SSE3) Var(ix86_isa_flags) Save
679 1.8 mrg Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation.
680 1.1 mrg
681 1.1 mrg mssse3
682 1.14 mrg Target Mask(ISA_SSSE3) Var(ix86_isa_flags) Save
683 1.8 mrg Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation.
684 1.1 mrg
685 1.1 mrg msse4.1
686 1.14 mrg Target Mask(ISA_SSE4_1) Var(ix86_isa_flags) Save
687 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation.
688 1.1 mrg
689 1.1 mrg msse4.2
690 1.14 mrg Target Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
691 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
692 1.1 mrg
693 1.1 mrg msse4
694 1.14 mrg Target RejectNegative Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
695 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
696 1.1 mrg
697 1.1 mrg mno-sse4
698 1.14 mrg Target RejectNegative InverseMask(ISA_SSE4_1) Var(ix86_isa_flags) Save
699 1.8 mrg Do not support SSE4.1 and SSE4.2 built-in functions and code generation.
700 1.1 mrg
701 1.3 mrg msse5
702 1.3 mrg Target Undocumented Alias(mavx) Warn(%<-msse5%> was removed)
703 1.3 mrg ;; Deprecated
704 1.3 mrg
705 1.1 mrg mavx
706 1.14 mrg Target Mask(ISA_AVX) Var(ix86_isa_flags) Save
707 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation.
708 1.1 mrg
709 1.3 mrg mavx2
710 1.14 mrg Target Mask(ISA_AVX2) Var(ix86_isa_flags) Save
711 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation.
712 1.3 mrg
713 1.5 mrg mavx512f
714 1.14 mrg Target Mask(ISA_AVX512F) Var(ix86_isa_flags) Save
715 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation.
716 1.5 mrg
717 1.5 mrg mavx512pf
718 1.14 mrg Target Mask(ISA_AVX512PF) Var(ix86_isa_flags) Save
719 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512PF built-in functions and code generation.
720 1.5 mrg
721 1.5 mrg mavx512er
722 1.14 mrg Target Mask(ISA_AVX512ER) Var(ix86_isa_flags) Save
723 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512ER built-in functions and code generation.
724 1.5 mrg
725 1.5 mrg mavx512cd
726 1.14 mrg Target Mask(ISA_AVX512CD) Var(ix86_isa_flags) Save
727 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-in functions and code generation.
728 1.5 mrg
729 1.5 mrg mavx512dq
730 1.14 mrg Target Mask(ISA_AVX512DQ) Var(ix86_isa_flags) Save
731 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512DQ built-in functions and code generation.
732 1.5 mrg
733 1.5 mrg mavx512bw
734 1.14 mrg Target Mask(ISA_AVX512BW) Var(ix86_isa_flags) Save
735 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512BW built-in functions and code generation.
736 1.5 mrg
737 1.5 mrg mavx512vl
738 1.14 mrg Target Mask(ISA_AVX512VL) Var(ix86_isa_flags) Save
739 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VL built-in functions and code generation.
740 1.5 mrg
741 1.5 mrg mavx512ifma
742 1.14 mrg Target Mask(ISA_AVX512IFMA) Var(ix86_isa_flags) Save
743 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation.
744 1.5 mrg
745 1.5 mrg mavx512vbmi
746 1.14 mrg Target Mask(ISA_AVX512VBMI) Var(ix86_isa_flags) Save
747 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation.
748 1.5 mrg
749 1.10 mrg mavx5124fmaps
750 1.14 mrg Target Mask(ISA2_AVX5124FMAPS) Var(ix86_isa_flags2) Save
751 1.10 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124FMAPS built-in functions and code generation.
752 1.10 mrg
753 1.10 mrg mavx5124vnniw
754 1.14 mrg Target Mask(ISA2_AVX5124VNNIW) Var(ix86_isa_flags2) Save
755 1.10 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124VNNIW built-in functions and code generation.
756 1.10 mrg
757 1.10 mrg mavx512vpopcntdq
758 1.14 mrg Target Mask(ISA_AVX512VPOPCNTDQ) Var(ix86_isa_flags) Save
759 1.10 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VPOPCNTDQ built-in functions and code generation.
760 1.10 mrg
761 1.11 mrg mavx512vbmi2
762 1.14 mrg Target Mask(ISA_AVX512VBMI2) Var(ix86_isa_flags) Save
763 1.11 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VBMI2 built-in functions and code generation.
764 1.11 mrg
765 1.11 mrg mavx512vnni
766 1.14 mrg Target Mask(ISA_AVX512VNNI) Var(ix86_isa_flags) Save
767 1.11 mrg Support AVX512VNNI built-in functions and code generation.
768 1.11 mrg
769 1.11 mrg mavx512bitalg
770 1.14 mrg Target Mask(ISA_AVX512BITALG) Var(ix86_isa_flags) Save
771 1.11 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512BITALG built-in functions and code generation.
772 1.11 mrg
773 1.13 mrg mavx512vp2intersect
774 1.14 mrg Target Mask(ISA2_AVX512VP2INTERSECT) Var(ix86_isa_flags2) Save
775 1.13 mrg Support AVX512VP2INTERSECT built-in functions and code generation.
776 1.13 mrg
777 1.1 mrg mfma
778 1.14 mrg Target Mask(ISA_FMA) Var(ix86_isa_flags) Save
779 1.8 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation.
780 1.1 mrg
781 1.1 mrg msse4a
782 1.14 mrg Target Mask(ISA_SSE4A) Var(ix86_isa_flags) Save
783 1.8 mrg Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation.
784 1.1 mrg
785 1.1 mrg mfma4
786 1.14 mrg Target Mask(ISA_FMA4) Var(ix86_isa_flags) Save
787 1.8 mrg Support FMA4 built-in functions and code generation.
788 1.1 mrg
789 1.1 mrg mxop
790 1.14 mrg Target Mask(ISA_XOP) Var(ix86_isa_flags) Save
791 1.8 mrg Support XOP built-in functions and code generation.
792 1.1 mrg
793 1.1 mrg mlwp
794 1.14 mrg Target Mask(ISA_LWP) Var(ix86_isa_flags) Save
795 1.8 mrg Support LWP built-in functions and code generation.
796 1.1 mrg
797 1.1 mrg mabm
798 1.14 mrg Target Mask(ISA_ABM) Var(ix86_isa_flags) Save
799 1.1 mrg Support code generation of Advanced Bit Manipulation (ABM) instructions.
800 1.1 mrg
801 1.1 mrg mpopcnt
802 1.14 mrg Target Mask(ISA_POPCNT) Var(ix86_isa_flags) Save
803 1.1 mrg Support code generation of popcnt instruction.
804 1.1 mrg
805 1.11 mrg mpconfig
806 1.14 mrg Target Mask(ISA2_PCONFIG) Var(ix86_isa_flags2) Save
807 1.11 mrg Support PCONFIG built-in functions and code generation.
808 1.11 mrg
809 1.11 mrg mwbnoinvd
810 1.14 mrg Target Mask(ISA2_WBNOINVD) Var(ix86_isa_flags2) Save
811 1.11 mrg Support WBNOINVD built-in functions and code generation.
812 1.11 mrg
813 1.12 mrg mptwrite
814 1.14 mrg Target Mask(ISA2_PTWRITE) Var(ix86_isa_flags2) Save
815 1.12 mrg Support PTWRITE built-in functions and code generation.
816 1.12 mrg
817 1.14 mrg muintr
818 1.14 mrg Target Mask(ISA2_UINTR) Var(ix86_isa_flags2) Save
819 1.14 mrg Support UINTR built-in functions and code generation.
820 1.14 mrg
821 1.10 mrg msgx
822 1.14 mrg Target Mask(ISA2_SGX) Var(ix86_isa_flags2) Save
823 1.10 mrg Support SGX built-in functions and code generation.
824 1.10 mrg
825 1.10 mrg mrdpid
826 1.14 mrg Target Mask(ISA2_RDPID) Var(ix86_isa_flags2) Save
827 1.10 mrg Support RDPID built-in functions and code generation.
828 1.10 mrg
829 1.11 mrg mgfni
830 1.14 mrg Target Mask(ISA_GFNI) Var(ix86_isa_flags) Save
831 1.11 mrg Support GFNI built-in functions and code generation.
832 1.11 mrg
833 1.11 mrg mvaes
834 1.14 mrg Target Mask(ISA2_VAES) Var(ix86_isa_flags2) Save
835 1.11 mrg Support VAES built-in functions and code generation.
836 1.11 mrg
837 1.11 mrg mvpclmulqdq
838 1.14 mrg Target Mask(ISA_VPCLMULQDQ) Var(ix86_isa_flags) Save
839 1.11 mrg Support VPCLMULQDQ built-in functions and code generation.
840 1.11 mrg
841 1.3 mrg mbmi
842 1.14 mrg Target Mask(ISA_BMI) Var(ix86_isa_flags) Save
843 1.8 mrg Support BMI built-in functions and code generation.
844 1.3 mrg
845 1.3 mrg mbmi2
846 1.14 mrg Target Mask(ISA_BMI2) Var(ix86_isa_flags) Save
847 1.8 mrg Support BMI2 built-in functions and code generation.
848 1.3 mrg
849 1.3 mrg mlzcnt
850 1.14 mrg Target Mask(ISA_LZCNT) Var(ix86_isa_flags) Save
851 1.8 mrg Support LZCNT built-in function and code generation.
852 1.3 mrg
853 1.3 mrg mhle
854 1.14 mrg Target Mask(ISA2_HLE) Var(ix86_isa_flags2) Save
855 1.8 mrg Support Hardware Lock Elision prefixes.
856 1.3 mrg
857 1.3 mrg mrdseed
858 1.14 mrg Target Mask(ISA_RDSEED) Var(ix86_isa_flags) Save
859 1.8 mrg Support RDSEED instruction.
860 1.3 mrg
861 1.3 mrg mprfchw
862 1.14 mrg Target Mask(ISA_PRFCHW) Var(ix86_isa_flags) Save
863 1.8 mrg Support PREFETCHW instruction.
864 1.3 mrg
865 1.3 mrg madx
866 1.14 mrg Target Mask(ISA_ADX) Var(ix86_isa_flags) Save
867 1.8 mrg Support flag-preserving add-carry instructions.
868 1.3 mrg
869 1.5 mrg mclflushopt
870 1.14 mrg Target Mask(ISA_CLFLUSHOPT) Var(ix86_isa_flags) Save
871 1.8 mrg Support CLFLUSHOPT instructions.
872 1.5 mrg
873 1.5 mrg mclwb
874 1.14 mrg Target Mask(ISA_CLWB) Var(ix86_isa_flags) Save
875 1.8 mrg Support CLWB instruction.
876 1.5 mrg
877 1.5 mrg mpcommit
878 1.13 mrg Target WarnRemoved
879 1.5 mrg
880 1.3 mrg mfxsr
881 1.14 mrg Target Mask(ISA_FXSR) Var(ix86_isa_flags) Save
882 1.8 mrg Support FXSAVE and FXRSTOR instructions.
883 1.3 mrg
884 1.3 mrg mxsave
885 1.14 mrg Target Mask(ISA_XSAVE) Var(ix86_isa_flags) Save
886 1.8 mrg Support XSAVE and XRSTOR instructions.
887 1.3 mrg
888 1.3 mrg mxsaveopt
889 1.14 mrg Target Mask(ISA_XSAVEOPT) Var(ix86_isa_flags) Save
890 1.8 mrg Support XSAVEOPT instruction.
891 1.3 mrg
892 1.5 mrg mxsavec
893 1.14 mrg Target Mask(ISA_XSAVEC) Var(ix86_isa_flags) Save
894 1.8 mrg Support XSAVEC instructions.
895 1.5 mrg
896 1.5 mrg mxsaves
897 1.14 mrg Target Mask(ISA_XSAVES) Var(ix86_isa_flags) Save
898 1.8 mrg Support XSAVES and XRSTORS instructions.
899 1.5 mrg
900 1.3 mrg mtbm
901 1.14 mrg Target Mask(ISA_TBM) Var(ix86_isa_flags) Save
902 1.8 mrg Support TBM built-in functions and code generation.
903 1.3 mrg
904 1.1 mrg mcx16
905 1.14 mrg Target Mask(ISA2_CX16) Var(ix86_isa_flags2) Save
906 1.1 mrg Support code generation of cmpxchg16b instruction.
907 1.1 mrg
908 1.1 mrg msahf
909 1.14 mrg Target Mask(ISA_SAHF) Var(ix86_isa_flags) Save
910 1.1 mrg Support code generation of sahf instruction in 64bit x86-64 code.
911 1.1 mrg
912 1.1 mrg mmovbe
913 1.14 mrg Target Mask(ISA2_MOVBE) Var(ix86_isa_flags2) Save
914 1.1 mrg Support code generation of movbe instruction.
915 1.1 mrg
916 1.1 mrg mcrc32
917 1.14 mrg Target Mask(ISA_CRC32) Var(ix86_isa_flags) Save
918 1.1 mrg Support code generation of crc32 instruction.
919 1.1 mrg
920 1.1 mrg maes
921 1.14 mrg Target Mask(ISA_AES) Var(ix86_isa_flags) Save
922 1.8 mrg Support AES built-in functions and code generation.
923 1.1 mrg
924 1.5 mrg msha
925 1.14 mrg Target Mask(ISA_SHA) Var(ix86_isa_flags) Save
926 1.8 mrg Support SHA1 and SHA256 built-in functions and code generation.
927 1.5 mrg
928 1.1 mrg mpclmul
929 1.14 mrg Target Mask(ISA_PCLMUL) Var(ix86_isa_flags) Save
930 1.8 mrg Support PCLMUL built-in functions and code generation.
931 1.1 mrg
932 1.1 mrg msse2avx
933 1.14 mrg Target Var(ix86_sse2avx)
934 1.8 mrg Encode SSE instructions with VEX prefix.
935 1.3 mrg
936 1.3 mrg mfsgsbase
937 1.14 mrg Target Mask(ISA_FSGSBASE) Var(ix86_isa_flags) Save
938 1.8 mrg Support FSGSBASE built-in functions and code generation.
939 1.3 mrg
940 1.3 mrg mrdrnd
941 1.14 mrg Target Mask(ISA_RDRND) Var(ix86_isa_flags) Save
942 1.8 mrg Support RDRND built-in functions and code generation.
943 1.3 mrg
944 1.3 mrg mf16c
945 1.14 mrg Target Mask(ISA_F16C) Var(ix86_isa_flags) Save
946 1.8 mrg Support F16C built-in functions and code generation.
947 1.3 mrg
948 1.5 mrg mprefetchwt1
949 1.14 mrg Target Mask(ISA_PREFETCHWT1) Var(ix86_isa_flags) Save
950 1.8 mrg Support PREFETCHWT1 built-in functions and code generation.
951 1.5 mrg
952 1.3 mrg mfentry
953 1.14 mrg Target Save Var(flag_fentry)
954 1.3 mrg Emit profiling counter call at function entry before prologue.
955 1.3 mrg
956 1.5 mrg mrecord-mcount
957 1.14 mrg Target Var(flag_record_mcount)
958 1.5 mrg Generate __mcount_loc section with all mcount or __fentry__ calls.
959 1.5 mrg
960 1.5 mrg mnop-mcount
961 1.14 mrg Target Var(flag_nop_mcount)
962 1.5 mrg Generate mcount/__fentry__ calls as nops. To activate they need to be
963 1.5 mrg patched in.
964 1.5 mrg
965 1.12 mrg mfentry-name=
966 1.12 mrg Target RejectNegative Joined Var(fentry_name)
967 1.12 mrg Set name of __fentry__ symbol called at function entry.
968 1.12 mrg
969 1.12 mrg mfentry-section=
970 1.12 mrg Target RejectNegative Joined Var(fentry_section)
971 1.12 mrg Set name of section to record mrecord-mcount calls.
972 1.12 mrg
973 1.5 mrg mskip-rax-setup
974 1.14 mrg Target Var(flag_skip_rax_setup)
975 1.5 mrg Skip setting up RAX register when passing variable arguments.
976 1.5 mrg
977 1.3 mrg m8bit-idiv
978 1.14 mrg Target Mask(USE_8BIT_IDIV) Save
979 1.8 mrg Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check.
980 1.3 mrg
981 1.3 mrg mavx256-split-unaligned-load
982 1.14 mrg Target Mask(AVX256_SPLIT_UNALIGNED_LOAD) Save
983 1.8 mrg Split 32-byte AVX unaligned load.
984 1.3 mrg
985 1.3 mrg mavx256-split-unaligned-store
986 1.14 mrg Target Mask(AVX256_SPLIT_UNALIGNED_STORE) Save
987 1.8 mrg Split 32-byte AVX unaligned store.
988 1.3 mrg
989 1.3 mrg mrtm
990 1.14 mrg Target Mask(ISA_RTM) Var(ix86_isa_flags) Save
991 1.8 mrg Support RTM built-in functions and code generation.
992 1.5 mrg
993 1.5 mrg mmpx
994 1.13 mrg Target WarnRemoved
995 1.13 mrg Removed in GCC 9. This switch has no effect.
996 1.5 mrg
997 1.5 mrg mmwaitx
998 1.14 mrg Target Mask(ISA2_MWAITX) Var(ix86_isa_flags2) Save
999 1.8 mrg Support MWAITX and MONITORX built-in functions and code generation.
1000 1.8 mrg
1001 1.8 mrg mclzero
1002 1.14 mrg Target Mask(ISA2_CLZERO) Var(ix86_isa_flags2) Save
1003 1.8 mrg Support CLZERO built-in functions and code generation.
1004 1.8 mrg
1005 1.8 mrg mpku
1006 1.14 mrg Target Mask(ISA_PKU) Var(ix86_isa_flags) Save
1007 1.8 mrg Support PKU built-in functions and code generation.
1008 1.5 mrg
1009 1.5 mrg mstack-protector-guard=
1010 1.5 mrg Target RejectNegative Joined Enum(stack_protector_guard) Var(ix86_stack_protector_guard) Init(SSP_TLS)
1011 1.8 mrg Use given stack-protector guard.
1012 1.5 mrg
1013 1.5 mrg Enum
1014 1.5 mrg Name(stack_protector_guard) Type(enum stack_protector_guard)
1015 1.5 mrg Known stack protector guard (for use with the -mstack-protector-guard= option):
1016 1.5 mrg
1017 1.5 mrg EnumValue
1018 1.5 mrg Enum(stack_protector_guard) String(tls) Value(SSP_TLS)
1019 1.5 mrg
1020 1.5 mrg EnumValue
1021 1.5 mrg Enum(stack_protector_guard) String(global) Value(SSP_GLOBAL)
1022 1.7 mrg
1023 1.11 mrg mstack-protector-guard-reg=
1024 1.14 mrg Target Save RejectNegative Joined Var(ix86_stack_protector_guard_reg_str)
1025 1.11 mrg Use the given base register for addressing the stack-protector guard.
1026 1.11 mrg
1027 1.11 mrg TargetVariable
1028 1.11 mrg addr_space_t ix86_stack_protector_guard_reg = ADDR_SPACE_GENERIC
1029 1.11 mrg
1030 1.11 mrg mstack-protector-guard-offset=
1031 1.14 mrg Target Save RejectNegative Joined Integer Var(ix86_stack_protector_guard_offset_str)
1032 1.11 mrg Use the given offset for addressing the stack-protector guard.
1033 1.11 mrg
1034 1.11 mrg TargetVariable
1035 1.11 mrg HOST_WIDE_INT ix86_stack_protector_guard_offset = 0
1036 1.11 mrg
1037 1.11 mrg mstack-protector-guard-symbol=
1038 1.14 mrg Target Save RejectNegative Joined Integer Var(ix86_stack_protector_guard_symbol_str)
1039 1.11 mrg Use the given symbol for addressing the stack-protector guard.
1040 1.11 mrg
1041 1.8 mrg mmitigate-rop
1042 1.13 mrg Target WarnRemoved
1043 1.8 mrg
1044 1.10 mrg mgeneral-regs-only
1045 1.14 mrg Target RejectNegative Mask(GENERAL_REGS_ONLY) Var(ix86_target_flags) Save
1046 1.10 mrg Generate code which uses only the general registers.
1047 1.10 mrg
1048 1.11 mrg mshstk
1049 1.14 mrg Target Mask(ISA_SHSTK) Var(ix86_isa_flags) Save
1050 1.11 mrg Enable shadow stack built-in functions from Control-flow Enforcement
1051 1.11 mrg Technology (CET).
1052 1.11 mrg
1053 1.11 mrg mcet-switch
1054 1.14 mrg Target Undocumented Var(flag_cet_switch) Init(0)
1055 1.11 mrg Turn on CET instrumentation for switch statements that use a jump table and
1056 1.11 mrg an indirect jump.
1057 1.11 mrg
1058 1.12 mrg mmanual-endbr
1059 1.14 mrg Target Var(flag_manual_endbr) Init(0)
1060 1.12 mrg Insert ENDBR instruction at function entry only via cf_check attribute
1061 1.12 mrg for CET instrumentation.
1062 1.12 mrg
1063 1.11 mrg mforce-indirect-call
1064 1.14 mrg Target Var(flag_force_indirect_call) Init(0)
1065 1.11 mrg Make all function calls indirect.
1066 1.11 mrg
1067 1.7 mrg mindirect-branch=
1068 1.14 mrg Target RejectNegative Joined Enum(indirect_branch) Var(ix86_indirect_branch) Init(indirect_branch_keep)
1069 1.7 mrg Convert indirect call and jump to call and return thunks.
1070 1.7 mrg
1071 1.7 mrg mfunction-return=
1072 1.14 mrg Target RejectNegative Joined Enum(indirect_branch) Var(ix86_function_return) Init(indirect_branch_keep)
1073 1.7 mrg Convert function return to call and return thunk.
1074 1.7 mrg
1075 1.7 mrg Enum
1076 1.7 mrg Name(indirect_branch) Type(enum indirect_branch)
1077 1.7 mrg Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):
1078 1.7 mrg
1079 1.7 mrg EnumValue
1080 1.7 mrg Enum(indirect_branch) String(keep) Value(indirect_branch_keep)
1081 1.7 mrg
1082 1.7 mrg EnumValue
1083 1.7 mrg Enum(indirect_branch) String(thunk) Value(indirect_branch_thunk)
1084 1.7 mrg
1085 1.7 mrg EnumValue
1086 1.7 mrg Enum(indirect_branch) String(thunk-inline) Value(indirect_branch_thunk_inline)
1087 1.7 mrg
1088 1.7 mrg EnumValue
1089 1.7 mrg Enum(indirect_branch) String(thunk-extern) Value(indirect_branch_thunk_extern)
1090 1.7 mrg
1091 1.14 mrg mindirect-branch-cs-prefix
1092 1.14 mrg Target Var(ix86_indirect_branch_cs_prefix) Init(0)
1093 1.14 mrg Add CS prefix to call and jmp to indirect thunk with branch target in r8-r15 registers.
1094 1.14 mrg
1095 1.7 mrg mindirect-branch-register
1096 1.14 mrg Target Var(ix86_indirect_branch_register) Init(0)
1097 1.7 mrg Force indirect call and jump via register.
1098 1.11 mrg
1099 1.11 mrg mmovdiri
1100 1.14 mrg Target Mask(ISA_MOVDIRI) Var(ix86_isa_flags) Save
1101 1.11 mrg Support MOVDIRI built-in functions and code generation.
1102 1.11 mrg
1103 1.11 mrg mmovdir64b
1104 1.14 mrg Target Mask(ISA2_MOVDIR64B) Var(ix86_isa_flags2) Save
1105 1.11 mrg Support MOVDIR64B built-in functions and code generation.
1106 1.12 mrg
1107 1.12 mrg mwaitpkg
1108 1.14 mrg Target Mask(ISA2_WAITPKG) Var(ix86_isa_flags2) Save
1109 1.12 mrg Support WAITPKG built-in functions and code generation.
1110 1.12 mrg
1111 1.12 mrg mcldemote
1112 1.14 mrg Target Mask(ISA2_CLDEMOTE) Var(ix86_isa_flags2) Save
1113 1.12 mrg Support CLDEMOTE built-in functions and code generation.
1114 1.12 mrg
1115 1.12 mrg minstrument-return=
1116 1.14 mrg Target RejectNegative Joined Enum(instrument_return) Var(ix86_instrument_return) Init(instrument_return_none)
1117 1.12 mrg Instrument function exit in instrumented functions with __fentry__.
1118 1.12 mrg
1119 1.12 mrg Enum
1120 1.12 mrg Name(instrument_return) Type(enum instrument_return)
1121 1.12 mrg Known choices for return instrumentation with -minstrument-return=:
1122 1.12 mrg
1123 1.12 mrg EnumValue
1124 1.12 mrg Enum(instrument_return) String(none) Value(instrument_return_none)
1125 1.12 mrg
1126 1.12 mrg EnumValue
1127 1.12 mrg Enum(instrument_return) String(call) Value(instrument_return_call)
1128 1.12 mrg
1129 1.12 mrg EnumValue
1130 1.12 mrg Enum(instrument_return) String(nop5) Value(instrument_return_nop5)
1131 1.12 mrg
1132 1.12 mrg mrecord-return
1133 1.14 mrg Target Var(ix86_flag_record_return) Init(0)
1134 1.12 mrg Generate a __return_loc section pointing to all return instrumentation code.
1135 1.13 mrg
1136 1.14 mrg mharden-sls=
1137 1.14 mrg Target RejectNegative Joined Enum(harden_sls) Var(ix86_harden_sls) Init(harden_sls_none)
1138 1.14 mrg Generate code to mitigate against straight line speculation.
1139 1.14 mrg
1140 1.14 mrg Enum
1141 1.14 mrg Name(harden_sls) Type(enum harden_sls)
1142 1.14 mrg Known choices for mitigation against straight line speculation with -mharden-sls=:
1143 1.14 mrg
1144 1.14 mrg EnumValue
1145 1.14 mrg Enum(harden_sls) String(none) Value(harden_sls_none)
1146 1.14 mrg
1147 1.14 mrg EnumValue
1148 1.14 mrg Enum(harden_sls) String(return) Value(harden_sls_return)
1149 1.14 mrg
1150 1.14 mrg EnumValue
1151 1.14 mrg Enum(harden_sls) String(indirect-jmp) Value(harden_sls_indirect_jmp)
1152 1.14 mrg
1153 1.14 mrg EnumValue
1154 1.14 mrg Enum(harden_sls) String(all) Value(harden_sls_all)
1155 1.14 mrg
1156 1.13 mrg mavx512bf16
1157 1.14 mrg Target Mask(ISA2_AVX512BF16) Var(ix86_isa_flags2) Save
1158 1.13 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and
1159 1.13 mrg AVX512BF16 built-in functions and code generation.
1160 1.13 mrg
1161 1.13 mrg menqcmd
1162 1.14 mrg Target Mask(ISA2_ENQCMD) Var(ix86_isa_flags2) Save
1163 1.13 mrg Support ENQCMD built-in functions and code generation.
1164 1.14 mrg
1165 1.14 mrg mserialize
1166 1.14 mrg Target Mask(ISA2_SERIALIZE) Var(ix86_isa_flags2) Save
1167 1.14 mrg Support SERIALIZE built-in functions and code generation.
1168 1.14 mrg
1169 1.14 mrg mtsxldtrk
1170 1.14 mrg Target Mask(ISA2_TSXLDTRK) Var(ix86_isa_flags2) Save
1171 1.14 mrg Support TSXLDTRK built-in functions and code generation.
1172 1.14 mrg
1173 1.14 mrg mamx-tile
1174 1.14 mrg Target Mask(ISA2_AMX_TILE) Var(ix86_isa_flags2) Save
1175 1.14 mrg Support AMX-TILE built-in functions and code generation.
1176 1.14 mrg
1177 1.14 mrg mamx-int8
1178 1.14 mrg Target Mask(ISA2_AMX_INT8) Var(ix86_isa_flags2) Save
1179 1.14 mrg Support AMX-INT8 built-in functions and code generation.
1180 1.14 mrg
1181 1.14 mrg mamx-bf16
1182 1.14 mrg Target Mask(ISA2_AMX_BF16) Var(ix86_isa_flags2) Save
1183 1.14 mrg Support AMX-BF16 built-in functions and code generation.
1184 1.14 mrg
1185 1.14 mrg mhreset
1186 1.14 mrg Target Mask(ISA2_HRESET) Var(ix86_isa_flags2) Save
1187 1.14 mrg Support HRESET built-in functions and code generation.
1188 1.14 mrg
1189 1.14 mrg mkl
1190 1.14 mrg Target Mask(ISA2_KL) Var(ix86_isa_flags2) Save
1191 1.14 mrg Support KL built-in functions and code generation.
1192 1.14 mrg
1193 1.14 mrg mwidekl
1194 1.14 mrg Target Mask(ISA2_WIDEKL) Var(ix86_isa_flags2) Save
1195 1.14 mrg Support WIDEKL built-in functions and code generation.
1196 1.14 mrg
1197 1.14 mrg mavxvnni
1198 1.14 mrg Target Mask(ISA2_AVXVNNI) Var(ix86_isa_flags2) Save
1199 1.14 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and
1200 1.14 mrg AVXVNNI built-in functions and code generation.
1201 1.14 mrg
1202 1.14 mrg mneeded
1203 1.14 mrg Target Var(ix86_needed) Save
1204 1.14 mrg Emit GNU_PROPERTY_X86_ISA_1_NEEDED GNU property.
1205 1.14 mrg
1206 1.14 mrg mmwait
1207 1.14 mrg Target Mask(ISA2_MWAIT) Var(ix86_isa_flags2) Save
1208 1.14 mrg Support MWAIT and MONITOR built-in functions and code generation.
1209 1.14 mrg
1210 1.14 mrg mavx512fp16
1211 1.14 mrg Target Mask(ISA2_AVX512FP16) Var(ix86_isa_flags2) Save
1212 1.14 mrg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512-FP16 built-in functions and code generation.
1213 1.14 mrg
1214 1.14 mrg mdirect-extern-access
1215 1.14 mrg Target Var(ix86_direct_extern_access) Init(1)
1216 1.14 mrg Do not use GOT to access external symbols.
1217 1.14 mrg
1218 1.14 mrg -param=x86-stlf-window-ninsns=
1219 1.14 mrg Target Joined UInteger Var(x86_stlf_window_ninsns) Init(64) Param
1220 1.14 mrg Instructions number above which STFL stall penalty can be compensated.
1221 1.14 mrg
1222 1.14 mrg mgather
1223 1.14 mrg Target Alias(mtune-ctrl=, use_gather, ^use_gather)
1224 1.14 mrg Enable vectorization for gather instruction.
1225 1.14 mrg
1226 1.14 mrg mscatter
1227 1.14 mrg Target Alias(mtune-ctrl=, use_scatter, ^use_scatter)
1228 1.14 mrg Enable vectorization for scatter instruction.
1229