refactor SLP constant insertion and provde entry insert helper
[gcc.git] / gcc / common.opt
1 ; Options for the language- and target-independent parts of the compiler.
2
3 ; Copyright (C) 2003-2020 Free Software Foundation, Inc.
4 ;
5 ; This file is part of GCC.
6 ;
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
10 ; version.
11 ;
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 ; for more details.
16 ;
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3. If not see
19 ; <http://www.gnu.org/licenses/>.
20
21 ; See the GCC internals manual (options.texi) for a description of this file's format.
22
23 ; Please try to keep this file in ASCII collating order.
24
25 Variable
26 int target_flags
27
28 Variable
29 int optimize
30
31 Variable
32 int optimize_size
33
34 Variable
35 int optimize_debug
36
37 ; Not used directly to control optimizations, only to save -Ofast
38 ; setting for "optimize" attributes.
39 Variable
40 int optimize_fast
41
42 ; True if this is the lto front end. This is used to disable gimple
43 ; generation and lowering passes that are normally run on the output
44 ; of a front end. These passes must be bypassed for lto since they
45 ; have already been done before the gimple was written.
46 Variable
47 bool in_lto_p = false
48
49 ; This variable is set to non-0 only by LTO front-end. 1 indicates that
50 ; the output produced will be used for incrmeental linking (thus weak symbols
51 ; can still be bound) and 2 indicates that the IL is going to be linked and
52 ; and output to LTO object file.
53 Variable
54 enum incremental_link flag_incremental_link = INCREMENTAL_LINK_NONE
55
56 ; 0 means straightforward implementation of complex divide acceptable.
57 ; 1 means wide ranges of inputs must work for complex divide.
58 ; 2 means C99-like requirements for complex multiply and divide.
59 Variable
60 int flag_complex_method = 1
61
62 ; Language specific warning pass for unused results.
63 Variable
64 bool flag_warn_unused_result = false
65
66 ; Nonzero if we should write GIMPLE bytecode for link-time optimization.
67 Variable
68 int flag_generate_lto
69
70 ; Nonzero if we should write GIMPLE bytecode for offload compilation.
71 Variable
72 int flag_generate_offload = 0
73
74 ; Nonzero means we should be saving declaration info into a .X file.
75 Variable
76 int flag_gen_aux_info = 0
77
78 ; Nonzero if we are compiling code for a shared library, zero for
79 ; executable.
80 Variable
81 int flag_shlib
82
83 ; These two are really VEC(char_p,heap) *.
84
85 Variable
86 void *flag_instrument_functions_exclude_functions
87
88 Variable
89 void *flag_instrument_functions_exclude_files
90
91 ; Generic structs (e.g. templates not explicitly specialized)
92 ; may not have a compilation unit associated with them, and so
93 ; may need to be treated differently from ordinary structs.
94 ;
95 ; Structs only handled by reference (indirectly), will also usually
96 ; not need as much debugging information.
97
98 Variable
99 enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
100
101 Variable
102 enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
103
104 ; True if we should exit after parsing options.
105 Variable
106 bool exit_after_options
107
108 ; Type(s) of debugging information we are producing (if any). See
109 ; flag-types.h for the definitions of the different possible types of
110 ; debugging information.
111 Variable
112 enum debug_info_type write_symbols = NO_DEBUG
113
114 ; Level of debugging information we are producing. See flag-types.h
115 ; for the definitions of the different possible levels.
116 Variable
117 enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
118
119 ; Nonzero means use GNU-only extensions in the generated symbolic
120 ; debugging information. Currently, this only has an effect when
121 ; write_symbols is set to DBX_DEBUG or XCOFF_DEBUG.
122 Variable
123 bool use_gnu_debug_info_extensions
124
125 ; Original value of maximum field alignment in bytes, specified via
126 ; -fpack-struct=<value>.
127 Variable
128 unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
129
130 ; Type of stack check.
131 Variable
132 enum stack_check_type flag_stack_check = NO_STACK_CHECK
133
134 ; True if stack usage information needs to be computed.
135 Variable
136 bool flag_stack_usage_info = false
137
138 ; -dA causes debug commentary information to be produced in
139 ; the generated assembly code (to make it more readable). This option
140 ; is generally only of use to those who actually need to read the
141 ; generated assembly code (perhaps while debugging the compiler itself).
142 ; Currently, this switch is only used by dwarf2out.c; however, it is intended
143 ; to be a catchall for printing debug information in the assembler file.
144 Variable
145 int flag_debug_asm
146
147 ; How many NOP insns to place at each function entry by default
148 Variable
149 HOST_WIDE_INT function_entry_patch_area_size
150
151 ; And how far the real asm entry point is into this area
152 Variable
153 HOST_WIDE_INT function_entry_patch_area_start
154
155 ; Balance between GNAT encodings and standard DWARF to emit.
156 Variable
157 enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
158
159 ; -dP causes the rtl to be emitted as a comment in assembly.
160 Variable
161 int flag_dump_rtl_in_asm
162
163 ; Whether -da was passed (used only in handle_common_deferred_options).
164 Variable
165 bool flag_dump_all_passed
166
167 ; Other flags saying which kinds of debugging dump have been requested.
168
169 Variable
170 int rtl_dump_and_exit
171
172 Variable
173 int flag_print_asm_name
174
175 ; Name of top-level original source file (what was input to cpp).
176 ; This comes from the #-command at the beginning of the actual input.
177 ; If there isn't any there, then this is the cc1 input file name.
178 Variable
179 const char *main_input_filename
180
181 ; Pointer to base name in main_input_filename, with directories and a
182 ; single final extension removed, and the length of this base
183 ; name.
184
185 Variable
186 const char *main_input_basename
187
188 Variable
189 int main_input_baselength
190
191 ; The base name used for auxiliary output files.
192 ; dump_base_name minus dump_base_ext.
193
194 Variable
195 const char *aux_base_name
196
197 ; Which options have been printed by --help.
198 Variable
199 char *help_printed
200
201 ; Which enums have been printed by --help. 0 = not printed, no
202 ; relevant options seen, 1 = relevant option seen, not yet printed, 2
203 ; = printed.
204 Variable
205 char *help_enum_printed
206
207 ; The number of columns for --help output.
208 Variable
209 unsigned int help_columns
210
211 ; Whether this options structure has been through finish_options
212 Variable
213 bool flag_opts_finished
214
215 ; What the sanitizer should instrument
216 Variable
217 unsigned int flag_sanitize
218
219 ; What sanitizers should recover from errors
220 Variable
221 unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
222
223 ; What the coverage sanitizers should instrument
224 Variable
225 unsigned int flag_sanitize_coverage
226
227 ; Flag whether a prefix has been added to dump_base_name
228 Variable
229 bool dump_base_name_prefixed = false
230
231 ; Flag whether HSA generation has been explicitely disabled
232 Variable
233 bool flag_disable_hsa = false
234
235 ###
236 Driver
237
238 -assemble
239 Driver Alias(S)
240
241 -compile
242 Driver Alias(c)
243
244 -completion=
245 Common Driver Joined Undocumented
246 Provide bash completion for options starting with provided string.
247
248 -coverage
249 Driver Alias(coverage)
250
251 -debug
252 Common Alias(g)
253
254 -dump
255 Common Separate Alias(d)
256
257 -dump=
258 Common Joined Alias(d)
259
260 -dumpbase
261 Driver Common Separate Alias(dumpbase)
262
263 -dumpbase-ext
264 Driver Common Separate Alias(dumpbase-ext)
265
266 -dumpdir
267 Driver Common Separate Alias(dumpdir)
268
269 -entry
270 Driver Separate Alias(e)
271
272 -entry=
273 Driver Joined Alias(e)
274
275 -extra-warnings
276 Common Warning Alias(Wextra)
277
278 -for-assembler
279 Driver Separate Alias(Xassembler)
280
281 -for-assembler=
282 Driver JoinedOrMissing Alias(Xassembler)
283
284 -for-linker
285 Driver Separate Alias(Xlinker)
286
287 -for-linker=
288 Driver JoinedOrMissing Alias(Xlinker)
289
290 -force-link
291 Driver Separate Alias(u)
292
293 -force-link=
294 Driver Joined Alias(u)
295
296 -help
297 Common Driver Var(help_flag)
298 Display this information.
299
300 -help=
301 Common Driver Report Joined
302 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params.
303
304 -language
305 Driver Separate Alias(x)
306
307 -language=
308 Driver Joined Alias(x)
309
310 -library-directory
311 Driver Separate Alias(L)
312
313 -library-directory=
314 Driver Joined Alias(L)
315
316 -no-canonical-prefixes
317 Driver Alias(no-canonical-prefixes)
318
319 -no-standard-libraries
320 Driver Alias(nostdlib)
321
322 -no-sysroot-suffix
323 Driver Var(no_sysroot_suffix)
324
325 -no-warnings
326 Common Alias(w)
327
328 -optimize
329 Common Alias(O)
330
331 -output
332 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
333
334 -output=
335 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
336
337 -pass-exit-codes
338 Driver Alias(pass-exit-codes)
339
340 -pedantic
341 Common Alias(Wpedantic)
342
343 -pedantic-errors
344 Common Alias(pedantic-errors)
345
346 -pie
347 Driver Alias(pie)
348
349 -static-pie
350 Driver Alias(static-pie)
351
352 -pipe
353 Driver Alias(pipe)
354
355 -prefix
356 Driver Separate Alias(B)
357
358 -prefix=
359 Driver JoinedOrMissing Alias(B)
360
361 -preprocess
362 Driver Alias(E)
363
364 -print-file-name
365 Driver Separate Alias(print-file-name=)
366
367 -print-file-name=
368 Driver JoinedOrMissing Alias(print-file-name=)
369
370 -print-libgcc-file-name
371 Driver Alias(print-libgcc-file-name)
372
373 -print-multi-directory
374 Driver Alias(print-multi-directory)
375
376 -print-multi-lib
377 Driver Alias(print-multi-lib)
378
379 -print-multi-os-directory
380 Driver Alias(print-multi-os-directory)
381
382 -print-multiarch
383 Driver Alias(print-multiarch)
384
385 -print-prog-name
386 Driver Separate Alias(print-prog-name=)
387
388 -print-prog-name=
389 Driver JoinedOrMissing Alias(print-prog-name=)
390
391 -print-search-dirs
392 Driver Alias(print-search-dirs)
393
394 -print-sysroot
395 Driver Alias(print-sysroot)
396
397 -print-sysroot-headers-suffix
398 Driver Alias(print-sysroot-headers-suffix)
399
400 -profile
401 Common Alias(p)
402
403 -save-temps
404 Driver Alias(save-temps)
405
406 -shared
407 Driver Alias(shared)
408
409 -specs
410 Driver Separate Alias(specs=)
411
412 -specs=
413 Driver Joined Alias(specs=)
414
415 -static
416 Driver Alias(static)
417
418 -symbolic
419 Driver Alias(symbolic)
420
421 -target-help
422 Common Driver
423 Alias for --help=target.
424
425 -time
426 Driver Alias(time)
427
428 -verbose
429 Driver Alias(v)
430
431 ;; The driver used to convert options such as --help into forms such
432 ;; as -fhelp; the following four entries are for compatibility with
433 ;; any direct uses of those (undocumented) -f forms
434 fhelp
435 Common Driver Alias(-help)
436
437 fhelp=
438 Common Driver Joined Alias(-help=)
439
440 ftarget-help
441 Common Driver Alias(-target-help)
442
443 fversion
444 Common Driver Alias(-version)
445
446 -sysroot
447 Driver Separate Alias(-sysroot=)
448
449 -sysroot=
450 Driver JoinedOrMissing
451
452 -version
453 Common Driver
454
455 B
456 Driver Joined Separate
457
458 E
459 Driver
460
461 L
462 Driver Joined Separate
463
464 N
465 Driver
466
467 O
468 Common JoinedOrMissing Optimization
469 -O<number> Set optimization level to <number>.
470
471 Os
472 Common Optimization
473 Optimize for space rather than speed.
474
475 Ofast
476 Common Optimization
477 Optimize for speed disregarding exact standards compliance.
478
479 Og
480 Common Optimization
481 Optimize for debugging experience rather than speed or size.
482
483 Q
484 Driver
485
486 Qn
487 Driver Negative(Qy)
488
489 Qy
490 Driver Negative(Qn)
491
492 R
493 Driver Joined Separate
494
495 S
496 Driver
497
498 T
499 Driver Joined Separate
500
501 Tbss
502 Driver Separate
503
504 Tbss=
505 Driver Joined
506
507 Tdata
508 Driver Separate
509
510 Tdata=
511 Driver Joined
512
513 Ttext
514 Driver Separate
515
516 Ttext=
517 Driver Joined
518
519 W
520 Common RejectNegative Warning Alias(Wextra)
521 This switch is deprecated; use -Wextra instead.
522
523 Wa,
524 Driver JoinedOrMissing RejectNegative
525
526 Wl,
527 Driver JoinedOrMissing RejectNegative
528
529 Wp,
530 Driver JoinedOrMissing RejectNegative
531
532 Waggregate-return
533 Common Var(warn_aggregate_return) Warning
534 Warn about returning structures, unions or arrays.
535
536 Waggressive-loop-optimizations
537 Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
538 Warn if a loop with constant number of iterations triggers undefined behavior.
539
540 Warray-bounds
541 Common Var(warn_array_bounds) Warning
542 Warn if an array is accessed out of bounds.
543
544 Warray-bounds=
545 Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
546 Warn if an array is accessed out of bounds.
547
548 Wattributes
549 Common Var(warn_attributes) Init(1) Warning
550 Warn about inappropriate attribute usage.
551
552 Wattribute-alias
553 Common Alias(Wattribute_alias=, 1, 0) Warning
554 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
555
556 Wattribute-alias=
557 Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2)
558 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
559
560 Wcannot-profile
561 Common Var(warn_cannot_profile) Init(1) Warning
562 Warn when profiling instrumentation was requested, but could not be applied to
563 a certain function.
564
565 Wcast-align
566 Common Var(warn_cast_align) Warning
567 Warn about pointer casts which increase alignment.
568
569 Wcast-align=strict
570 Common Var(warn_cast_align,2) Warning
571 Warn about pointer casts which increase alignment.
572
573 Wcpp
574 Common Var(warn_cpp) Init(1) Warning
575 Warn when a #warning directive is encountered.
576
577 Wattribute-warning
578 Common Var(warn_attribute_warning) Init(1) Warning
579 Warn about uses of __attribute__((warning)) declarations.
580
581 Wdeprecated
582 Common Var(warn_deprecated) Init(1) Warning
583 Warn if a deprecated compiler feature, class, method, or field is used.
584
585 Wdeprecated-declarations
586 Common Var(warn_deprecated_decl) Init(1) Warning
587 Warn about uses of __attribute__((deprecated)) declarations.
588
589 Wdisabled-optimization
590 Common Var(warn_disabled_optimization) Warning
591 Warn when an optimization pass is disabled.
592
593 Werror
594 Common Var(warnings_are_errors)
595 Treat all warnings as errors.
596
597 Werror=
598 Common Joined
599 Treat specified warning as error.
600
601 Wextra
602 Common Var(extra_warnings) Warning
603 Print extra (possibly unwanted) warnings.
604
605 Wfatal-errors
606 Common Var(flag_fatal_errors)
607 Exit on the first error occurred.
608
609 Wframe-larger-than=
610 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_frame_larger_than_size) Init(HOST_WIDE_INT_MAX)
611 -Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
612
613 Wno-frame-larger-than
614 Common Alias(Wframe-larger-than=,18446744073709551615EiB,none) Warning
615 Disable -Wframe-larger-than= warning. Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger.
616
617 Wfree-nonheap-object
618 Common Var(warn_free_nonheap_object) Init(1) Warning
619 Warn when attempting to free a non-heap object.
620
621 Whsa
622 Common Var(warn_hsa) Init(1) Warning
623 Warn when a function cannot be expanded to HSAIL.
624
625 Wimplicit-fallthrough
626 Common Alias(Wimplicit-fallthrough=,3,0) Warning
627
628 Wimplicit-fallthrough=
629 Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
630 Warn when a switch case falls through.
631
632 Winline
633 Common Var(warn_inline) Warning Optimization
634 Warn when an inlined function cannot be inlined.
635
636 Winvalid-memory-model
637 Common Var(warn_invalid_memory_model) Init(1) Warning
638 Warn when an atomic memory model parameter is known to be outside the valid range.
639
640 Wlarger-than-
641 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
642
643 Wlarger-than=
644 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_larger_than_size) Init(HOST_WIDE_INT_MAX)
645 -Wlarger-than=<byte-size> Warn if an object's size exceeds <byte-size>.
646
647 Wno-larger-than
648 Common Alias(Wlarger-than=,18446744073709551615EiB,none) Warning
649 Disable -Wlarger-than= warning. Equivalent to -Wlarger-than=<SIZE_MAX> or larger.
650
651 Wnonnull-compare
652 Var(warn_nonnull_compare) Warning
653 Warn if comparing pointer parameter with nonnull attribute with NULL.
654
655 Wnull-dereference
656 Common Var(warn_null_dereference) Warning
657 Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
658
659 Wunsafe-loop-optimizations
660 Common Ignore Warning
661 Does nothing. Preserved for backward compatibility.
662
663 Wmissing-noreturn
664 Common Warning Alias(Wsuggest-attribute=noreturn)
665
666 Wodr
667 Common Var(warn_odr_violations) Init(1) Warning
668 Warn about some C++ One Definition Rule violations during link time optimization.
669
670 Woverflow
671 Common Var(warn_overflow) Init(1) Warning
672 Warn about overflow in arithmetic expressions.
673
674 Wlto-type-mismatch
675 Common Var(warn_lto_type_mismatch) Init(1) Warning
676 During link time optimization warn about mismatched types of global declarations.
677
678 Wpacked
679 Common Var(warn_packed) Warning
680 Warn when the packed attribute has no effect on struct layout.
681
682 Wpadded
683 Common Var(warn_padded) Warning
684 Warn when padding is required to align structure members.
685
686 Wpedantic
687 Common Var(pedantic) Init(0) Warning
688 Issue warnings needed for strict compliance to the standard.
689
690 Wreturn-local-addr
691 Common Var(warn_return_local_addr) Init(1) Warning
692 Warn about returning a pointer/reference to a local or temporary variable.
693
694 Wshadow
695 Common Var(warn_shadow) Warning
696 Warn when one variable shadows another. Same as -Wshadow=global.
697
698 Wshadow=global
699 Common Warning Alias(Wshadow)
700 Warn when one variable shadows another (globally).
701
702 Wshadow=local
703 Common Var(warn_shadow_local) Warning EnabledBy(Wshadow)
704 Warn when one local variable shadows another local variable or parameter.
705
706 Wshadow-local
707 Common Warning Undocumented Alias(Wshadow=local)
708
709 Wshadow=compatible-local
710 Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
711 Warn when one local variable shadows another local variable or parameter of compatible type.
712
713 Wshadow-compatible-local
714 Common Warning Undocumented Alias(Wshadow=compatible-local)
715
716 Wstack-protector
717 Common Var(warn_stack_protect) Warning
718 Warn when not issuing stack smashing protection for some reason.
719
720 Wstack-usage=
721 Common Joined RejectNegative Host_Wide_Int ByteSize Var(warn_stack_usage) Warning Init(HOST_WIDE_INT_MAX)
722 -Wstack-usage=<byte-size> Warn if stack usage might exceed <byte-size>.
723
724 Wno-stack-usage
725 Common Alias(Wstack-usage=,18446744073709551615EiB,none) Warning
726 Disable Wstack-usage= warning. Equivalent to Wstack-usage=<SIZE_MAX> or larger.
727
728 Wstrict-aliasing
729 Common Warning
730 Warn about code which might break strict aliasing rules.
731
732 Wstrict-aliasing=
733 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
734 Warn about code which might break strict aliasing rules.
735
736 Wstrict-overflow
737 Common Warning
738 Warn about optimizations that assume that signed overflow is undefined.
739
740 Wstrict-overflow=
741 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
742 Warn about optimizations that assume that signed overflow is undefined.
743
744 Wsuggest-attribute=cold
745 Common Var(warn_suggest_attribute_cold) Warning
746 Warn about functions which might be candidates for __attribute__((cold)).
747
748 Wsuggest-attribute=const
749 Common Var(warn_suggest_attribute_const) Warning
750 Warn about functions which might be candidates for __attribute__((const)).
751
752 Wsuggest-attribute=pure
753 Common Var(warn_suggest_attribute_pure) Warning
754 Warn about functions which might be candidates for __attribute__((pure)).
755
756 Wsuggest-attribute=noreturn
757 Common Var(warn_suggest_attribute_noreturn) Warning
758 Warn about functions which might be candidates for __attribute__((noreturn)).
759
760 Wsuggest-attribute=malloc
761 Common Var(warn_suggest_attribute_malloc) Warning
762 Warn about functions which might be candidates for __attribute__((malloc)).
763
764 Wsuggest-final-types
765 Common Var(warn_suggest_final_types) Warning
766 Warn about C++ polymorphic types where adding final keyword would improve code quality.
767
768 Wsuggest-final-methods
769 Common Var(warn_suggest_final_methods) Warning
770 Warn about C++ virtual methods where adding final keyword would improve code quality.
771
772 Wswitch-unreachable
773 Common Var(warn_switch_unreachable) Warning Init(1)
774 Warn about statements between switch's controlling expression and the first
775 case.
776
777 Wsystem-headers
778 Common Var(warn_system_headers) Warning
779 Do not suppress warnings from system headers.
780
781 Wtrampolines
782 Common Var(warn_trampolines) Warning
783 Warn whenever a trampoline is generated.
784
785 Wtype-limits
786 Common Var(warn_type_limits) Warning EnabledBy(Wextra)
787 Warn if a comparison is always true or always false due to the limited range of the data type.
788
789 Wuninitialized
790 Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
791 Warn about uninitialized automatic variables.
792
793 Wmaybe-uninitialized
794 Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
795 Warn about maybe uninitialized automatic variables.
796
797 Wunreachable-code
798 Common Ignore Warning
799 Does nothing. Preserved for backward compatibility.
800
801 Wunused
802 Common Var(warn_unused) Init(0) Warning
803 Enable all -Wunused- warnings.
804
805 Wunused-but-set-parameter
806 Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
807 Warn when a function parameter is only set, otherwise unused.
808
809 Wunused-but-set-variable
810 Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
811 Warn when a variable is only set, otherwise unused.
812
813 Wunused-function
814 Common Var(warn_unused_function) Warning EnabledBy(Wunused)
815 Warn when a function is unused.
816
817 Wunused-label
818 Common Var(warn_unused_label) Warning EnabledBy(Wunused)
819 Warn when a label is unused.
820
821 Wunused-parameter
822 Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
823 Warn when a function parameter is unused.
824
825 Wunused-value
826 Common Var(warn_unused_value) Warning EnabledBy(Wunused)
827 Warn when an expression value is unused.
828
829 Wunused-variable
830 Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
831 Warn when a variable is unused.
832
833 Wcoverage-mismatch
834 Common Var(warn_coverage_mismatch) Init(1) Warning
835 Warn in case profiles in -fprofile-use do not match.
836
837 Wmissing-profile
838 Common Var(warn_missing_profile) Init(1) Warning
839 Warn in case profiles in -fprofile-use do not exist.
840
841 Wvector-operation-performance
842 Common Var(warn_vector_operation_performance) Warning
843 Warn when a vector operation is compiled outside the SIMD.
844
845 Xassembler
846 Driver Separate
847
848 Xlinker
849 Driver Separate
850
851 Xpreprocessor
852 Driver Separate
853
854 Z
855 Driver
856
857 aux-info
858 Common Separate Var(aux_info_file_name)
859 -aux-info <file> Emit declaration information into <file>.
860
861 aux-info=
862 Common Joined Alias(aux-info)
863
864 coverage
865 Driver
866
867 c
868 Driver
869
870 d
871 Common Joined
872 -d<letters> Enable dumps from specific passes of the compiler.
873
874 dumpbase
875 Driver Common Separate Var(dump_base_name)
876 -dumpbase <file> Set the file basename to be used for dumps.
877
878 dumpbase-ext
879 Driver Common Separate Var(dump_base_ext)
880 -dumpbase-ext .<ext> Drop a trailing .<ext> from the dump basename to name auxiliary output files.
881
882 dumpdir
883 Driver Common Separate Var(dump_dir_name)
884 -dumpdir <dir> Set the directory name to be used for dumps.
885
886 dumpmachine
887 Driver
888
889 dumpspecs
890 Driver
891
892 dumpversion
893 Driver
894
895 dumpfullversion
896 Driver
897
898 e
899 Driver Joined Separate
900
901 ; This option has historically been passed down to the linker by an
902 ; accident of a %{e*} spec, so ensure it continues to be passed down
903 ; as a single option. The supported option for this purpose is
904 ; -rdynamic. See PR 47390.
905 export-dynamic
906 Driver Undocumented
907
908 ; The version of the C++ ABI in use. The following values are allowed:
909 ;
910 ; 0: The version of the ABI believed most conformant with the C++ ABI
911 ; specification. This ABI may change as bugs are discovered and fixed.
912 ; Therefore, 0 will not necessarily indicate the same ABI in different
913 ; versions of G++.
914 ;
915 ; 1: The version of the ABI first used in G++ 3.2. No longer selectable.
916 ;
917 ; 2: The version of the ABI first used in G++ 3.4, and the default
918 ; until GCC 4.9.
919 ;
920 ; 3: The version of the ABI that fixes the missing underscore
921 ; in template non-type arguments of pointer type.
922 ;
923 ; 4: The version of the ABI that introduces unambiguous mangling of
924 ; vector types. First selectable in G++ 4.5.
925 ;
926 ; 5: The version of the ABI that ignores attribute const/noreturn
927 ; in function pointer mangling, and corrects mangling of decltype and
928 ; function parameters used in other parameters and the return type.
929 ; First selectable in G++ 4.6.
930 ;
931 ; 6: The version of the ABI that doesn't promote scoped enums to int and
932 ; changes the mangling of template argument packs, const/static_cast,
933 ; prefix ++ and --, and a class scope function used as a template
934 ; argument.
935 ; First selectable in G++ 4.7.
936 ;
937 ; 7: The version of the ABI that treats nullptr_t as a builtin type and
938 ; corrects the mangling of lambdas in default argument scope.
939 ; First selectable in G++ 4.8.
940 ;
941 ; 8: The version of the ABI that corrects the substitution behavior of
942 ; function types with function-cv-qualifiers.
943 ; First selectable in G++ 4.9 and default in G++ 5.
944 ;
945 ; 9: The version of the ABI that corrects the alignment of nullptr_t.
946 ; First selectable and default in G++ 5.2.
947 ;
948 ; 10: The version of the ABI that mangles attributes that affect type
949 ; identity, such as ia32 calling convention attributes (stdcall, etc.)
950 ; Default in G++ 6 (set in c_common_post_options).
951 ;
952 ; 11: The version of the ABI that corrects mangling of sizeof... expressions
953 ; and introduces new inheriting constructor handling.
954 ; Default in G++ 7.
955 ;
956 ; 12: Corrects the calling convention for classes with only deleted copy/move
957 ; constructors and changes passing/returning of empty records.
958 ; Default in G++ 8.1.
959 ;
960 ; 13: Fixes the accidental change in 12 to the calling convention for classes
961 ; with deleted copy constructor and trivial move constructor.
962 ; Default in G++ 8.2.
963 ; 14: Corrects the mangling of nullptr expression.
964 ; Default in G++ 10.
965 ;
966 ; Additional positive integers will be assigned as new versions of
967 ; the ABI become the default version of the ABI.
968 fabi-version=
969 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
970 The version of the C++ ABI in use.
971
972 faggressive-loop-optimizations
973 Common Report Var(flag_aggressive_loop_optimizations) Optimization Init(1)
974 Aggressively optimize loops using language constraints.
975
976 falign-functions
977 Common Report Var(flag_align_functions) Optimization
978 Align the start of functions.
979
980 falign-functions=
981 Common RejectNegative Joined Var(str_align_functions) Optimization
982
983 flimit-function-alignment
984 Common Report Var(flag_limit_function_alignment) Optimization Init(0)
985
986 falign-jumps
987 Common Report Var(flag_align_jumps) Optimization
988 Align labels which are only reached by jumping.
989
990 falign-jumps=
991 Common RejectNegative Joined Var(str_align_jumps) Optimization
992
993 falign-labels
994 Common Report Var(flag_align_labels) Optimization
995 Align all labels.
996
997 falign-labels=
998 Common RejectNegative Joined Var(str_align_labels) Optimization
999
1000 falign-loops
1001 Common Report Var(flag_align_loops) Optimization
1002 Align the start of loops.
1003
1004 falign-loops=
1005 Common RejectNegative Joined Var(str_align_loops) Optimization
1006
1007 fallow-store-data-races
1008 Common Report Var(flag_store_data_races) Optimization
1009 Allow the compiler to introduce new data races on stores.
1010
1011 fanalyzer
1012 Common Var(flag_analyzer)
1013 Enable static analysis pass.
1014
1015 fargument-alias
1016 Common Ignore
1017 Does nothing. Preserved for backward compatibility.
1018
1019 fargument-noalias
1020 Common Ignore
1021 Does nothing. Preserved for backward compatibility.
1022
1023 fargument-noalias-global
1024 Common Ignore
1025 Does nothing. Preserved for backward compatibility.
1026
1027 fargument-noalias-anything
1028 Common Ignore
1029 Does nothing. Preserved for backward compatibility.
1030
1031 fsanitize=
1032 Common Driver Report Joined
1033 Select what to sanitize.
1034
1035 fsanitize-coverage=
1036 Common Report Joined
1037 Select type of coverage sanitization.
1038
1039 fasan-shadow-offset=
1040 Common Joined RejectNegative Var(common_deferred_options) Defer
1041 -fasan-shadow-offset=<number> Use custom shadow memory offset.
1042
1043 fsanitize-sections=
1044 Common Joined RejectNegative Var(common_deferred_options) Defer
1045 -fsanitize-sections=<sec1,sec2,...> Sanitize global variables
1046 in user-defined sections.
1047
1048 fsanitize-recover=
1049 Common Report Joined
1050 After diagnosing undefined behavior attempt to continue execution.
1051
1052 fsanitize-recover
1053 Common Report
1054 This switch is deprecated; use -fsanitize-recover= instead.
1055
1056 fsanitize-address-use-after-scope
1057 Common Driver Report Var(flag_sanitize_address_use_after_scope) Init(0)
1058
1059 fsanitize-undefined-trap-on-error
1060 Common Driver Report Var(flag_sanitize_undefined_trap_on_error) Init(0)
1061 Use trap instead of a library function for undefined behavior sanitization.
1062
1063 fasynchronous-unwind-tables
1064 Common Report Var(flag_asynchronous_unwind_tables) Optimization
1065 Generate unwind tables that are exact at each instruction boundary.
1066
1067 fauto-inc-dec
1068 Common Report Var(flag_auto_inc_dec) Init(1) Optimization
1069 Generate auto-inc/dec instructions.
1070
1071 fauto-profile
1072 Common Report Var(flag_auto_profile)
1073 Use sample profile information for call graph node weights. The default
1074 profile file is fbdata.afdo in 'pwd'.
1075
1076 fauto-profile=
1077 Common Joined RejectNegative Var(auto_profile_file)
1078 Use sample profile information for call graph node weights. The profile
1079 file is specified in the argument.
1080
1081 ; -fcheck-bounds causes gcc to generate array bounds checks.
1082 ; For C, C++ and ObjC: defaults off.
1083 ; For Java: defaults to on.
1084 ; For Fortran: defaults to off.
1085 fbounds-check
1086 Common Report Var(flag_bounds_check)
1087 Generate code to check bounds before indexing arrays.
1088
1089 fbranch-count-reg
1090 Common Report Var(flag_branch_on_count_reg) Optimization
1091 Replace add, compare, branch with branch on count register.
1092
1093 fbranch-probabilities
1094 Common Report Var(flag_branch_probabilities) Optimization
1095 Use profiling information for branch probabilities.
1096
1097 fbranch-target-load-optimize
1098 Common Ignore
1099 Does nothing. Preserved for backward compatibility.
1100
1101 fbranch-target-load-optimize2
1102 Common Ignore
1103 Does nothing. Preserved for backward compatibility.
1104
1105 fbtr-bb-exclusive
1106 Common Ignore
1107 Does nothing. Preserved for backward compatibility.
1108
1109 fcallgraph-info
1110 Common Report RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO);
1111 Output callgraph information on a per-file basis.
1112
1113 fcallgraph-info=
1114 Common Report RejectNegative Joined
1115 Output callgraph information on a per-file basis with decorations.
1116
1117 fcall-saved-
1118 Common Joined RejectNegative Var(common_deferred_options) Defer
1119 -fcall-saved-<register> Mark <register> as being preserved across functions.
1120
1121 fcall-used-
1122 Common Joined RejectNegative Var(common_deferred_options) Defer
1123 -fcall-used-<register> Mark <register> as being corrupted by function calls.
1124
1125 ; Nonzero for -fcaller-saves: allocate values in regs that need to
1126 ; be saved across function calls, if that produces overall better code.
1127 ; Optional now, so people can test it.
1128 fcaller-saves
1129 Common Report Var(flag_caller_saves) Optimization
1130 Save registers around function calls.
1131
1132 fcheck-data-deps
1133 Common Ignore
1134 This switch is deprecated; do not use.
1135
1136 fcheck-new
1137 Common Var(flag_check_new)
1138 Check the return value of new in C++.
1139
1140 fchecking
1141 Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
1142 Perform internal consistency checkings.
1143
1144 fchecking=
1145 Common Joined RejectNegative UInteger Var(flag_checking)
1146 Perform internal consistency checkings.
1147
1148 fcode-hoisting
1149 Common Report Var(flag_code_hoisting) Optimization
1150 Enable code hoisting.
1151
1152 fcombine-stack-adjustments
1153 Common Report Var(flag_combine_stack_adjustments) Optimization
1154 Looks for opportunities to reduce stack adjustments and stack references.
1155
1156 fcommon
1157 Common Report Var(flag_no_common,0) Init(1)
1158 Put uninitialized globals in the common section.
1159
1160 fcompare-debug
1161 Driver
1162 ; Converted by the driver to -fcompare-debug= options.
1163
1164 fcompare-debug=
1165 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
1166 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump.
1167
1168 fcompare-debug-second
1169 Common Driver RejectNegative Var(flag_compare_debug)
1170 Run only the second compilation of -fcompare-debug.
1171
1172 fcompare-elim
1173 Common Report Var(flag_compare_elim_after_reload) Optimization
1174 Perform comparison elimination after register allocation has finished.
1175
1176 fconserve-stack
1177 Common Var(flag_conserve_stack) Optimization
1178 Do not perform optimizations increasing noticeably stack usage.
1179
1180 fcprop-registers
1181 Common Report Var(flag_cprop_registers) Optimization
1182 Perform a register copy-propagation optimization pass.
1183
1184 fcrossjumping
1185 Common Report Var(flag_crossjumping) Optimization
1186 Perform cross-jumping optimization.
1187
1188 fcse-follow-jumps
1189 Common Report Var(flag_cse_follow_jumps) Optimization
1190 When running CSE, follow jumps to their targets.
1191
1192 fcse-skip-blocks
1193 Common Ignore
1194 Does nothing. Preserved for backward compatibility.
1195
1196 fcx-limited-range
1197 Common Report Var(flag_cx_limited_range) Optimization SetByCombined
1198 Omit range reduction step when performing complex division.
1199
1200 fcx-fortran-rules
1201 Common Report Var(flag_cx_fortran_rules) Optimization
1202 Complex multiplication and division follow Fortran rules.
1203
1204 fdata-sections
1205 Common Report Var(flag_data_sections)
1206 Place data items into their own section.
1207
1208 fdbg-cnt-list
1209 Common Report Var(common_deferred_options) Defer
1210 List all available debugging counters with their limits and counts.
1211
1212 fdbg-cnt=
1213 Common RejectNegative Joined Var(common_deferred_options) Defer
1214 -fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set the debug counter limit.
1215
1216 fdebug-prefix-map=
1217 Common Joined RejectNegative Var(common_deferred_options) Defer
1218 -fdebug-prefix-map=<old>=<new> Map one directory name to another in debug information.
1219
1220 ffile-prefix-map=
1221 Common Joined RejectNegative Var(common_deferred_options) Defer
1222 -ffile-prefix-map=<old>=<new> Map one directory name to another in compilation result.
1223
1224 fdebug-types-section
1225 Common Report Var(flag_debug_types_section) Init(0)
1226 Output .debug_types section when using DWARF v4 debuginfo.
1227
1228 ; Nonzero for -fdefer-pop: don't pop args after each function call
1229 ; instead save them up to pop many calls' args with one insns.
1230 fdefer-pop
1231 Common Report Var(flag_defer_pop) Optimization
1232 Defer popping functions args from stack until later.
1233
1234 fdelayed-branch
1235 Common Report Var(flag_delayed_branch) Optimization
1236 Attempt to fill delay slots of branch instructions.
1237
1238 fdelete-dead-exceptions
1239 Common Report Var(flag_delete_dead_exceptions) Init(0) Optimization
1240 Delete dead instructions that may throw exceptions.
1241
1242 fdelete-null-pointer-checks
1243 Common Report Var(flag_delete_null_pointer_checks) Init(-1) Optimization
1244 Delete useless null pointer checks.
1245
1246 fdevirtualize-at-ltrans
1247 Common Report Var(flag_ltrans_devirtualize)
1248 Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1249
1250 fdevirtualize-speculatively
1251 Common Report Var(flag_devirtualize_speculatively) Optimization
1252 Perform speculative devirtualization.
1253
1254 fdevirtualize
1255 Common Report Var(flag_devirtualize) Optimization
1256 Try to convert virtual calls to direct ones.
1257
1258 fdiagnostics-show-location=
1259 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
1260 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics.
1261
1262 ; Required for these enum values.
1263 SourceInclude
1264 pretty-print.h
1265
1266 Enum
1267 Name(diagnostic_prefixing_rule) Type(int)
1268
1269 EnumValue
1270 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1271
1272 EnumValue
1273 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1274
1275 fdiagnostics-show-caret
1276 Common Var(flag_diagnostics_show_caret) Init(1)
1277 Show the source line with a caret indicating the column.
1278
1279 fdiagnostics-show-labels
1280 Common Var(flag_diagnostics_show_labels) Init(1)
1281 Show labels annotating ranges of source code when showing source.
1282
1283 fdiagnostics-show-line-numbers
1284 Common Var(flag_diagnostics_show_line_numbers) Init(1)
1285 Show line numbers in the left margin when showing source.
1286
1287 fdiagnostics-color
1288 Common Alias(fdiagnostics-color=,always,never)
1289 ;
1290
1291 fdiagnostics-color=
1292 Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
1293 -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
1294
1295 ; Required for these enum values.
1296 SourceInclude
1297 diagnostic-color.h
1298
1299 Enum
1300 Name(diagnostic_color_rule) Type(int)
1301
1302 EnumValue
1303 Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1304
1305 EnumValue
1306 Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1307
1308 EnumValue
1309 Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1310
1311 fdiagnostics-urls=
1312 Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
1313 -fdiagnostics-urls=[never|always|auto] Embed URLs in diagnostics.
1314
1315 ; Required for these enum values.
1316 SourceInclude
1317 diagnostic-url.h
1318
1319 Enum
1320 Name(diagnostic_url_rule) Type(int)
1321
1322 EnumValue
1323 Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO)
1324
1325 EnumValue
1326 Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES)
1327
1328 EnumValue
1329 Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO)
1330
1331 fdiagnostics-format=
1332 Common Joined RejectNegative Enum(diagnostics_output_format)
1333 -fdiagnostics-format=[text|json] Select output format.
1334
1335 ; Required for these enum values.
1336 SourceInclude
1337 diagnostic.h
1338
1339 Enum
1340 Name(diagnostics_output_format) Type(int)
1341
1342 EnumValue
1343 Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT)
1344
1345 EnumValue
1346 Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON)
1347
1348 fdiagnostics-parseable-fixits
1349 Common Var(flag_diagnostics_parseable_fixits)
1350 Print fix-it hints in machine-readable form.
1351
1352 fdiagnostics-generate-patch
1353 Common Var(flag_diagnostics_generate_patch)
1354 Print fix-it hints to stderr in unified diff format.
1355
1356 fdiagnostics-show-option
1357 Common Var(flag_diagnostics_show_option) Init(1)
1358 Amend appropriate diagnostic messages with the command line option that controls them.
1359
1360 fdiagnostics-show-cwe
1361 Common Var(flag_diagnostics_show_cwe) Init(1)
1362 Print CWE identifiers for diagnostic messages, where available.
1363
1364 fdiagnostics-path-format=
1365 Common Joined RejectNegative Var(flag_diagnostics_path_format) Enum(diagnostic_path_format) Init(DPF_INLINE_EVENTS)
1366 Specify how to print any control-flow path associated with a diagnostic.
1367
1368 Enum
1369 Name(diagnostic_path_format) Type(int)
1370
1371 EnumValue
1372 Enum(diagnostic_path_format) String(none) Value(DPF_NONE)
1373
1374 EnumValue
1375 Enum(diagnostic_path_format) String(separate-events) Value(DPF_SEPARATE_EVENTS)
1376
1377 EnumValue
1378 Enum(diagnostic_path_format) String(inline-events) Value(DPF_INLINE_EVENTS)
1379
1380 fdiagnostics-show-path-depths
1381 Common Var(flag_diagnostics_show_path_depths) Init(0)
1382 Show stack depths of events in paths.
1383
1384 fdiagnostics-minimum-margin-width=
1385 Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
1386 Set minimum width of left margin of source code when showing source.
1387
1388 fdisable-
1389 Common Joined RejectNegative Var(common_deferred_options) Defer
1390 -fdisable-[tree|rtl|ipa]-<pass>=range1+range2 Disable an optimization pass.
1391
1392 fenable-
1393 Common Joined RejectNegative Var(common_deferred_options) Defer
1394 -fenable-[tree|rtl|ipa]-<pass>=range1+range2 Enable an optimization pass.
1395
1396 fdump-
1397 Common Joined RejectNegative Var(common_deferred_options) Defer
1398 -fdump-<type> Dump various compiler internals to a file.
1399
1400 fdump-final-insns
1401 Driver RejectNegative
1402
1403 fdump-final-insns=
1404 Common RejectNegative Joined Var(flag_dump_final_insns)
1405 -fdump-final-insns=filename Dump to filename the insns at the end of translation.
1406
1407 fdump-go-spec=
1408 Common RejectNegative Joined Var(flag_dump_go_spec)
1409 -fdump-go-spec=filename Write all declarations to file as Go code.
1410
1411 fdump-noaddr
1412 Common Report Var(flag_dump_noaddr)
1413 Suppress output of addresses in debugging dumps.
1414
1415 freport-bug
1416 Common Driver Var(flag_report_bug)
1417 Collect and dump debug information into temporary file if ICE in C/C++
1418 compiler occurred.
1419
1420 fdump-internal-locations
1421 Common Var(flag_dump_locations) Init(0)
1422 Dump detailed information on GCC's internal representation of source code locations.
1423
1424 fdump-passes
1425 Common Var(flag_dump_passes) Init(0)
1426 Dump optimization passes.
1427
1428 fdump-unnumbered
1429 Common Report Var(flag_dump_unnumbered)
1430 Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
1431
1432 fdump-unnumbered-links
1433 Common Report Var(flag_dump_unnumbered_links)
1434 Suppress output of previous and next insn numbers in debugging dumps.
1435
1436 fdwarf2-cfi-asm
1437 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1438 Enable CFI tables via GAS assembler directives.
1439
1440 fearly-inlining
1441 Common Report Var(flag_early_inlining) Init(1) Optimization
1442 Perform early inlining.
1443
1444 feliminate-dwarf2-dups
1445 Common Ignore
1446 Does nothing. Preserved for backward compatibility.
1447
1448 fipa-sra
1449 Common Report Var(flag_ipa_sra) Init(0) Optimization
1450 Perform interprocedural reduction of aggregates.
1451
1452 feliminate-unused-debug-symbols
1453 Common Report Var(flag_debug_only_used_symbols) Init(1)
1454 Perform unused symbol elimination in debug info.
1455
1456 feliminate-unused-debug-types
1457 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
1458 Perform unused type elimination in debug info.
1459
1460 femit-class-debug-always
1461 Common Report Var(flag_emit_class_debug_always) Init(0)
1462 Do not suppress C++ class debug information.
1463
1464 fexceptions
1465 Common Report Var(flag_exceptions) Optimization
1466 Enable exception handling.
1467
1468 fexpensive-optimizations
1469 Common Report Var(flag_expensive_optimizations) Optimization
1470 Perform a number of minor, expensive optimizations.
1471
1472 fexcess-precision=
1473 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined
1474 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision.
1475
1476 Enum
1477 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1478
1479 EnumValue
1480 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1481
1482 EnumValue
1483 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1484
1485 ; Whether we permit the extended set of values for FLT_EVAL_METHOD
1486 ; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1487 fpermitted-flt-eval-methods=
1488 Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1489 -fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted.
1490
1491 Enum
1492 Name(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs)
1493
1494 EnumValue
1495 Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1496
1497 EnumValue
1498 Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1499
1500 ffast-math
1501 Common Optimization
1502
1503 ffat-lto-objects
1504 Common Var(flag_fat_lto_objects)
1505 Output lto objects containing both the intermediate language and binary output.
1506
1507 ffinite-math-only
1508 Common Report Var(flag_finite_math_only) Optimization SetByCombined
1509 Assume no NaNs or infinities are generated.
1510
1511 ffinite-loops
1512 Common Report Var(flag_finite_loops) Optimization Init(0)
1513 Assume that loops with an exit will terminate and not loop indefinitely.
1514
1515 ffixed-
1516 Common Joined RejectNegative Var(common_deferred_options) Defer
1517 -ffixed-<register> Mark <register> as being unavailable to the compiler.
1518
1519 ffloat-store
1520 Common Report Var(flag_float_store) Optimization
1521 Don't allocate floats and doubles in extended-precision registers.
1522
1523 fforce-addr
1524 Common Ignore
1525 Does nothing. Preserved for backward compatibility.
1526
1527 fforward-propagate
1528 Common Report Var(flag_forward_propagate) Optimization
1529 Perform a forward propagation pass on RTL.
1530
1531 ffp-contract=
1532 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
1533 -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1534
1535 Enum
1536 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1537
1538 EnumValue
1539 Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1540
1541 ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1542 EnumValue
1543 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1544
1545 EnumValue
1546 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1547
1548 ffp-int-builtin-inexact
1549 Common Report Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1550 Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1551
1552 ; Nonzero means don't put addresses of constant functions in registers.
1553 ; Used for compiling the Unix kernel, where strange substitutions are
1554 ; done on the assembly output.
1555 ffunction-cse
1556 Common Report Var(flag_no_function_cse,0) Optimization
1557 Allow function addresses to be held in registers.
1558
1559 ffunction-sections
1560 Common Report Var(flag_function_sections)
1561 Place each function into its own section.
1562
1563 fgcse
1564 Common Report Var(flag_gcse) Optimization
1565 Perform global common subexpression elimination.
1566
1567 fgcse-lm
1568 Common Report Var(flag_gcse_lm) Init(1) Optimization
1569 Perform enhanced load motion during global common subexpression elimination.
1570
1571 fgcse-sm
1572 Common Report Var(flag_gcse_sm) Init(0) Optimization
1573 Perform store motion after global common subexpression elimination.
1574
1575 fgcse-las
1576 Common Report Var(flag_gcse_las) Init(0) Optimization
1577 Perform redundant load after store elimination in global common subexpression
1578 elimination.
1579
1580 fgcse-after-reload
1581 Common Report Var(flag_gcse_after_reload) Optimization
1582 Perform global common subexpression elimination after register allocation has
1583 finished.
1584
1585 Enum
1586 Name(dwarf_gnat_encodings) Type(int)
1587
1588 EnumValue
1589 Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1590
1591 EnumValue
1592 Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1593
1594 EnumValue
1595 Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1596
1597 fgnat-encodings=
1598 Common Enum(dwarf_gnat_encodings) Joined RejectNegative Report Undocumented Var(gnat_encodings)
1599 -fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
1600
1601 ; This option is not documented yet as its semantics will change.
1602 fgraphite
1603 Common Report Var(flag_graphite) Optimization
1604 Enable in and out of Graphite representation.
1605
1606 fgraphite-identity
1607 Common Report Var(flag_graphite_identity) Optimization
1608 Enable Graphite Identity transformation.
1609
1610 fhoist-adjacent-loads
1611 Common Report Var(flag_hoist_adjacent_loads) Optimization
1612 Enable hoisting adjacent loads to encourage generating conditional move
1613 instructions.
1614
1615 fkeep-gc-roots-live
1616 Common Undocumented Report Var(flag_keep_gc_roots_live) Optimization
1617 ; Always keep a pointer to a live memory block
1618
1619 flarge-source-files
1620 Common Report Var(flag_large_source_files) Init(0)
1621 Improve GCC's ability to track column numbers in large source files,
1622 at the expense of slower compilation.
1623
1624 floop-parallelize-all
1625 Common Report Var(flag_loop_parallelize_all) Optimization
1626 Mark all loops as parallel.
1627
1628 floop-strip-mine
1629 Common Alias(floop-nest-optimize)
1630 Enable loop nest transforms. Same as -floop-nest-optimize.
1631
1632 floop-interchange
1633 Common Report Var(flag_loop_interchange) Optimization
1634 Enable loop interchange on trees.
1635
1636 floop-block
1637 Common Alias(floop-nest-optimize)
1638 Enable loop nest transforms. Same as -floop-nest-optimize.
1639
1640 floop-unroll-and-jam
1641 Common Report Var(flag_unroll_jam) Optimization
1642 Perform unroll-and-jam on loops.
1643
1644 fgnu-tm
1645 Common Report Var(flag_tm)
1646 Enable support for GNU transactional memory.
1647
1648 fgnu-unique
1649 Common Report Var(flag_gnu_unique) Init(1)
1650 Use STB_GNU_UNIQUE if supported by the assembler.
1651
1652 floop-flatten
1653 Common Ignore
1654 Does nothing. Preserved for backward compatibility.
1655
1656 floop-nest-optimize
1657 Common Report Var(flag_loop_nest_optimize) Optimization
1658 Enable the loop nest optimizer.
1659
1660 fstrict-volatile-bitfields
1661 Common Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization
1662 Force bitfield accesses to match their type width.
1663
1664 fstore-merging
1665 Common Report Var(flag_store_merging) Optimization
1666 Merge adjacent stores.
1667
1668 fguess-branch-probability
1669 Common Report Var(flag_guess_branch_prob) Optimization
1670 Enable guessing of branch probabilities.
1671
1672 ; Nonzero means ignore `#ident' directives. 0 means handle them.
1673 ; Generate position-independent code for executables if possible
1674 ; On SVR4 targets, it also controls whether or not to emit a
1675 ; string identifying the compiler.
1676 fident
1677 Common Report Var(flag_no_ident,0)
1678 Process #ident directives.
1679
1680 fif-conversion
1681 Common Report Var(flag_if_conversion) Optimization
1682 Perform conversion of conditional jumps to branchless equivalents.
1683
1684 fif-conversion2
1685 Common Report Var(flag_if_conversion2) Optimization
1686 Perform conversion of conditional jumps to conditional execution.
1687
1688 fstack-reuse=
1689 Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
1690 -fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
1691
1692 Enum
1693 Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1694
1695 EnumValue
1696 Enum(stack_reuse_level) String(all) Value(SR_ALL)
1697
1698 EnumValue
1699 Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1700
1701 EnumValue
1702 Enum(stack_reuse_level) String(none) Value(SR_NONE)
1703
1704 ftree-loop-if-convert
1705 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
1706 Convert conditional jumps in innermost loops to branchless equivalents.
1707
1708 ftree-loop-if-convert-stores
1709 Common Ignore
1710 Does nothing. Preserved for backward compatibility.
1711
1712 ; -finhibit-size-directive inhibits output of .size for ELF.
1713 ; This is used only for compiling crtstuff.c,
1714 ; and it may be extended to other effects
1715 ; needed for crtstuff.c on other systems.
1716 finhibit-size-directive
1717 Common Report Var(flag_inhibit_size_directive)
1718 Do not generate .size directives.
1719
1720 findirect-inlining
1721 Common Report Var(flag_indirect_inlining) Optimization
1722 Perform indirect inlining.
1723
1724 ; General flag to enable inlining. Specifying -fno-inline will disable
1725 ; all inlining apart from always-inline functions.
1726 finline
1727 Common Report Var(flag_no_inline,0) Init(0) Optimization
1728 Enable inlining of function declared \"inline\", disabling disables all inlining.
1729
1730 finline-small-functions
1731 Common Report Var(flag_inline_small_functions) Optimization
1732 Integrate functions into their callers when code size is known not to grow.
1733
1734 finline-functions
1735 Common Report Var(flag_inline_functions) Optimization
1736 Integrate functions not declared \"inline\" into their callers when profitable.
1737
1738 finline-functions-called-once
1739 Common Report Var(flag_inline_functions_called_once) Optimization
1740 Integrate functions only required by their single caller.
1741
1742 finline-limit-
1743 Common RejectNegative Joined Alias(finline-limit=)
1744
1745 finline-limit=
1746 Common RejectNegative Joined UInteger
1747 -finline-limit=<number> Limit the size of inlined functions to <number>.
1748
1749 finline-atomics
1750 Common Report Var(flag_inline_atomics) Init(1) Optimization
1751 Inline __atomic operations when a lock free instruction sequence is available.
1752
1753 fcf-protection
1754 Common RejectNegative Alias(fcf-protection=,full)
1755
1756 fcf-protection=
1757 Common Report Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
1758 -fcf-protection=[full|branch|return|none] Instrument functions with checks to verify jump/call/return control-flow transfer
1759 instructions have valid targets.
1760
1761 Enum
1762 Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
1763
1764 EnumValue
1765 Enum(cf_protection_level) String(full) Value(CF_FULL)
1766
1767 EnumValue
1768 Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1769
1770 EnumValue
1771 Enum(cf_protection_level) String(return) Value(CF_RETURN)
1772
1773 EnumValue
1774 Enum(cf_protection_level) String(none) Value(CF_NONE)
1775
1776 finstrument-functions
1777 Common Report Var(flag_instrument_function_entry_exit)
1778 Instrument function entry and exit with profiling calls.
1779
1780 finstrument-functions-exclude-function-list=
1781 Common RejectNegative Joined
1782 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions.
1783
1784 finstrument-functions-exclude-file-list=
1785 Common RejectNegative Joined
1786 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
1787
1788 fipa-cp
1789 Common Report Var(flag_ipa_cp) Optimization
1790 Perform interprocedural constant propagation.
1791
1792 fipa-cp-clone
1793 Common Report Var(flag_ipa_cp_clone) Optimization
1794 Perform cloning to make Interprocedural constant propagation stronger.
1795
1796 fipa-cp-alignment
1797 Common Ignore
1798 Does nothing. Preserved for backward compatibility.
1799
1800 fipa-bit-cp
1801 Common Report Var(flag_ipa_bit_cp) Optimization
1802 Perform interprocedural bitwise constant propagation.
1803
1804 fipa-profile
1805 Common Report Var(flag_ipa_profile) Init(0) Optimization
1806 Perform interprocedural profile propagation.
1807
1808 fipa-pta
1809 Common Report Var(flag_ipa_pta) Init(0) Optimization
1810 Perform interprocedural points-to analysis.
1811
1812 fipa-pure-const
1813 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1814 Discover pure and const functions.
1815
1816 fipa-icf
1817 Common Report Var(flag_ipa_icf) Optimization
1818 Perform Identical Code Folding for functions and read-only variables.
1819
1820 fipa-icf-functions
1821 Common Report Var(flag_ipa_icf_functions) Optimization
1822 Perform Identical Code Folding for functions.
1823
1824 fipa-icf-variables
1825 Common Report Var(flag_ipa_icf_variables) Optimization
1826 Perform Identical Code Folding for variables.
1827
1828 fipa-reference
1829 Common Report Var(flag_ipa_reference) Init(0) Optimization
1830 Discover read-only and non addressable static variables.
1831
1832 fipa-reference-addressable
1833 Common Report Var(flag_ipa_reference_addressable) Init(0) Optimization
1834 Discover read-only, write-only and non-addressable static variables.
1835
1836 fipa-stack-alignment
1837 Common Report Var(flag_ipa_stack_alignment) Init(1) Optimization
1838 Reduce stack alignment on call sites if possible.
1839
1840 fipa-matrix-reorg
1841 Common Ignore
1842 Does nothing. Preserved for backward compatibility.
1843
1844 fipa-struct-reorg
1845 Common Ignore
1846 Does nothing. Preserved for backward compatibility.
1847
1848 fipa-vrp
1849 Common Report Var(flag_ipa_vrp) Optimization
1850 Perform IPA Value Range Propagation.
1851
1852 fira-algorithm=
1853 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
1854 -fira-algorithm=[CB|priority] Set the used IRA algorithm.
1855
1856 Enum
1857 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1858
1859 EnumValue
1860 Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1861
1862 EnumValue
1863 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1864
1865 fira-region=
1866 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization
1867 -fira-region=[one|all|mixed] Set regions for IRA.
1868
1869 Enum
1870 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1871
1872 EnumValue
1873 Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1874
1875 EnumValue
1876 Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1877
1878 EnumValue
1879 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1880
1881 fira-hoist-pressure
1882 Common Report Var(flag_ira_hoist_pressure) Init(1) Optimization
1883 Use IRA based register pressure calculation
1884 in RTL hoist optimizations.
1885
1886 fira-loop-pressure
1887 Common Report Var(flag_ira_loop_pressure) Optimization
1888 Use IRA based register pressure calculation
1889 in RTL loop optimizations.
1890
1891 fira-share-save-slots
1892 Common Report Var(flag_ira_share_save_slots) Init(1) Optimization
1893 Share slots for saving different hard registers.
1894
1895 fira-share-spill-slots
1896 Common Report Var(flag_ira_share_spill_slots) Init(1) Optimization
1897 Share stack slots for spilled pseudo-registers.
1898
1899 fira-verbose=
1900 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1901 -fira-verbose=<number> Control IRA's level of diagnostic messages.
1902
1903 fivopts
1904 Common Report Var(flag_ivopts) Init(1) Optimization
1905 Optimize induction variables on trees.
1906
1907 fjump-tables
1908 Common Var(flag_jump_tables) Init(1) Optimization
1909 Use jump tables for sufficiently large switch statements.
1910
1911 fkeep-inline-functions
1912 Common Report Var(flag_keep_inline_functions)
1913 Generate code for functions even if they are fully inlined.
1914
1915 fkeep-static-functions
1916 Common Report Var(flag_keep_static_functions)
1917 Generate code for static functions even if they are never called.
1918
1919 fkeep-static-consts
1920 Common Report Var(flag_keep_static_consts) Init(1)
1921 Emit static const variables even if they are not used.
1922
1923 fleading-underscore
1924 Common Report Var(flag_leading_underscore) Init(-1)
1925 Give external symbols a leading underscore.
1926
1927 floop-optimize
1928 Common Ignore
1929 Does nothing. Preserved for backward compatibility.
1930
1931 flra-remat
1932 Common Report Var(flag_lra_remat) Optimization
1933 Do CFG-sensitive rematerialization in LRA.
1934
1935 flto
1936 Common
1937 Enable link-time optimization.
1938
1939 flto=
1940 Common RejectNegative Joined Var(flag_lto)
1941 Link-time optimization with number of parallel jobs or jobserver.
1942
1943 Enum
1944 Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
1945
1946 EnumValue
1947 Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
1948
1949 EnumValue
1950 Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
1951
1952 EnumValue
1953 Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
1954
1955 EnumValue
1956 Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
1957
1958 EnumValue
1959 Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
1960
1961 flto-partition=
1962 Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
1963 Specify the algorithm to partition symbols and vars at linktime.
1964
1965 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1966 flto-compression-level=
1967 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19)
1968 -flto-compression-level=<number> Use zlib/zstd compression level <number> for IL.
1969
1970 flto-odr-type-merging
1971 Common Ignore
1972 Does nothing. Preserved for backward compatibility.
1973
1974 flto-report
1975 Common Report Var(flag_lto_report) Init(0)
1976 Report various link-time optimization statistics.
1977
1978 flto-report-wpa
1979 Common Report Var(flag_lto_report_wpa) Init(0)
1980 Report various link-time optimization statistics for WPA only.
1981
1982 fmath-errno
1983 Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
1984 Set errno after built-in math functions.
1985
1986 fmax-errors=
1987 Common Joined RejectNegative UInteger Var(flag_max_errors)
1988 -fmax-errors=<number> Maximum number of errors to report.
1989
1990 fmem-report
1991 Common Report Var(mem_report)
1992 Report on permanent memory allocation.
1993
1994 fmem-report-wpa
1995 Common Report Var(mem_report_wpa)
1996 Report on permanent memory allocation in WPA only.
1997
1998 ; This will attempt to merge constant section constants, if 1 only
1999 ; string constants and constants from constant pool, if 2 also constant
2000 ; variables.
2001 fmerge-all-constants
2002 Common Report Var(flag_merge_constants,2) Init(1)
2003 Attempt to merge identical constants and constant variables.
2004
2005 fmerge-constants
2006 Common Report Var(flag_merge_constants,1)
2007 Attempt to merge identical constants across compilation units.
2008
2009 fmerge-debug-strings
2010 Common Report Var(flag_merge_debug_strings) Init(1)
2011 Attempt to merge identical debug strings across compilation units.
2012
2013 fmessage-length=
2014 Common RejectNegative Joined UInteger
2015 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
2016
2017 fmodulo-sched
2018 Common Report Var(flag_modulo_sched) Optimization
2019 Perform SMS based modulo scheduling before the first scheduling pass.
2020
2021 fmodulo-sched-allow-regmoves
2022 Common Report Var(flag_modulo_sched_allow_regmoves) Optimization
2023 Perform SMS based modulo scheduling with register moves allowed.
2024
2025 fmove-loop-invariants
2026 Common Report Var(flag_move_loop_invariants) Optimization
2027 Move loop invariant computations out of loops.
2028
2029 fdce
2030 Common Var(flag_dce) Init(1) Optimization
2031 Use the RTL dead code elimination pass.
2032
2033 fdse
2034 Common Var(flag_dse) Init(0) Optimization
2035 Use the RTL dead store elimination pass.
2036
2037 freschedule-modulo-scheduled-loops
2038 Common Report Var(flag_resched_modulo_sched) Optimization
2039 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
2040
2041 fnon-call-exceptions
2042 Common Report Var(flag_non_call_exceptions) Optimization
2043 Support synchronous non-call exceptions.
2044
2045 foffload=
2046 Common Driver Joined MissingArgError(options or targets missing after %qs)
2047 -foffload=<targets>=<options> Specify offloading targets and options for them.
2048
2049 foffload-abi=
2050 Common Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET)
2051 -foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler.
2052
2053 Enum
2054 Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
2055
2056 EnumValue
2057 Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
2058
2059 EnumValue
2060 Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
2061
2062 fomit-frame-pointer
2063 Common Report Var(flag_omit_frame_pointer) Optimization
2064 When possible do not generate stack frames.
2065
2066 fopt-info
2067 Common Report Var(flag_opt_info) Optimization
2068 Enable all optimization info dumps on stderr.
2069
2070 fopt-info-
2071 Common Joined RejectNegative Var(common_deferred_options) Defer
2072 -fopt-info[-<type>=filename] Dump compiler optimization details.
2073
2074 fsave-optimization-record
2075 Common Report Var(flag_save_optimization_record) Optimization
2076 Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
2077
2078 foptimize-register-move
2079 Common Ignore
2080 Does nothing. Preserved for backward compatibility.
2081
2082 foptimize-sibling-calls
2083 Common Report Var(flag_optimize_sibling_calls) Optimization
2084 Optimize sibling and tail recursive calls.
2085
2086 fpartial-inlining
2087 Common Report Var(flag_partial_inlining) Optimization
2088 Perform partial inlining.
2089
2090 fpre-ipa-mem-report
2091 Common Report Var(pre_ipa_mem_report)
2092 Report on memory allocation before interprocedural optimization.
2093
2094 fpost-ipa-mem-report
2095 Common Report Var(post_ipa_mem_report)
2096 Report on memory allocation before interprocedural optimization.
2097
2098 fpack-struct
2099 Common Report Var(flag_pack_struct) Optimization
2100 Pack structure members together without holes.
2101
2102 fpack-struct=
2103 Common RejectNegative Joined UInteger Optimization
2104 -fpack-struct=<number> Set initial maximum structure member alignment.
2105
2106 fpcc-struct-return
2107 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
2108 Return small aggregates in memory, not registers.
2109
2110 fpeel-loops
2111 Common Report Var(flag_peel_loops) Optimization
2112 Perform loop peeling.
2113
2114 fpeephole
2115 Common Report Var(flag_no_peephole,0) Optimization
2116 Enable machine specific peephole optimizations.
2117
2118 fpeephole2
2119 Common Report Var(flag_peephole2) Optimization
2120 Enable an RTL peephole pass before sched2.
2121
2122 fPIC
2123 Common Report Var(flag_pic,2) Negative(fPIE) Init(-1)
2124 Generate position-independent code if possible (large mode).
2125
2126 fPIE
2127 Common Report Var(flag_pie,2) Negative(fpic) Init(-1)
2128 Generate position-independent code for executables if possible (large mode).
2129
2130 fpic
2131 Common Report Var(flag_pic,1) Negative(fpie) Init(-1)
2132 Generate position-independent code if possible (small mode).
2133
2134 fpie
2135 Common Report Var(flag_pie,1) Negative(fPIC) Init(-1)
2136 Generate position-independent code for executables if possible (small mode).
2137
2138 fplt
2139 Common Report Var(flag_plt) Init(1) Optimization
2140 Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
2141
2142 fplugin=
2143 Common Joined RejectNegative Var(common_deferred_options) Defer
2144 Specify a plugin to load.
2145
2146 fplugin-arg-
2147 Common Joined RejectNegative Var(common_deferred_options) Defer
2148 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
2149
2150 fpredictive-commoning
2151 Common Report Var(flag_predictive_commoning) Optimization
2152 Run predictive commoning optimization.
2153
2154 fprefetch-loop-arrays
2155 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
2156 Generate prefetch instructions, if available, for arrays in loops.
2157
2158 fprofile
2159 Common Report Var(profile_flag)
2160 Enable basic program profiling code.
2161
2162 fprofile-abs-path
2163 Common Report Var(profile_abs_path_flag)
2164 Generate absolute source path names for gcov.
2165
2166 fprofile-arcs
2167 Common Report Var(profile_arc_flag)
2168 Insert arc-based program profiling code.
2169
2170 fprofile-dir=
2171 Common Joined RejectNegative Var(profile_data_prefix)
2172 Set the top-level directory for storing the profile data.
2173 The default is 'pwd'.
2174
2175 fprofile-note=
2176 Common Joined RejectNegative Var(profile_note_location)
2177 Select the name for storing the profile note file.
2178
2179 fprofile-correction
2180 Common Report Var(flag_profile_correction)
2181 Enable correction of flow inconsistent profile data input.
2182
2183 fprofile-update=
2184 Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
2185 -fprofile-update=[single|atomic|prefer-atomic] Set the profile update method.
2186
2187 fprofile-filter-files=
2188 Common Joined RejectNegative Var(flag_profile_filter_files)
2189 Instrument only functions from files where names match any regular expression (separated by a semi-colon).
2190
2191 fprofile-exclude-files=
2192 Common Joined RejectNegative Var(flag_profile_exclude_files)
2193 Instrument only functions from files where names do not match all the regular expressions (separated by a semi-colon).
2194
2195 Enum
2196 Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs)
2197
2198 EnumValue
2199 Enum(profile_reproducibility) String(serial) Value(PROFILE_REPRODUCIBILITY_SERIAL)
2200
2201 EnumValue
2202 Enum(profile_reproducibility) String(parallel-runs) Value(PROFILE_REPRODUCIBILITY_PARALLEL_RUNS)
2203
2204 EnumValue
2205 Enum(profile_reproducibility) String(multithreaded) Value(PROFILE_REPRODUCIBILITY_MULTITHREADED)
2206
2207 fprofile-reproducible
2208 Common Joined RejectNegative Var(flag_profile_reproducible) Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL)
2209 -fprofile-reproducible=[serial|parallel-runs|multithreaded] Control level of reproducibility of profile gathered by -fprofile-generate.
2210
2211 Enum
2212 Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2213
2214 EnumValue
2215 Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2216
2217 EnumValue
2218 Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2219
2220 EnumValue
2221 Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
2222
2223 fprofile-prefix-path=
2224 Common Joined RejectNegative Var(profile_prefix_path)
2225 Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=.
2226
2227 fprofile-generate
2228 Common
2229 Enable common options for generating profile info for profile feedback directed optimizations.
2230
2231 fprofile-generate=
2232 Common Joined RejectNegative
2233 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2234
2235 fprofile-partial-training
2236 Common Report Var(flag_profile_partial_training) Optimization
2237 Do not assume that functions never executed during the train run are cold.
2238
2239 fprofile-use
2240 Common Var(flag_profile_use)
2241 Enable common options for performing profile feedback directed optimizations.
2242
2243 fprofile-use=
2244 Common Joined RejectNegative
2245 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2246
2247 fprofile-values
2248 Common Report Var(flag_profile_values)
2249 Insert code to profile values of expressions.
2250
2251 fprofile-report
2252 Common Report Var(profile_report)
2253 Report on consistency of profile.
2254
2255 fprofile-reorder-functions
2256 Common Report Var(flag_profile_reorder_functions) Optimization
2257 Enable function reordering that improves code placement.
2258
2259 fpatchable-function-entry=
2260 Common Joined Optimization
2261 Insert NOP instructions at each function entry.
2262
2263 frandom-seed
2264 Common Var(common_deferred_options) Defer
2265
2266 frandom-seed=
2267 Common Joined RejectNegative Var(common_deferred_options) Defer
2268 -frandom-seed=<string> Make compile reproducible using <string>.
2269
2270 ; This switch causes the command line that was used to create an
2271 ; object file to be recorded into the object file. The exact format
2272 ; of this recording is target and binary file format dependent.
2273 ; It is related to the -fverbose-asm switch, but that switch only
2274 ; records information in the assembler output file as comments, so
2275 ; they never reach the object file.
2276 frecord-gcc-switches
2277 Common Report Var(flag_record_gcc_switches)
2278 Record gcc command line switches in the object file.
2279
2280 freg-struct-return
2281 Common Report Var(flag_pcc_struct_return,0) Optimization
2282 Return small aggregates in registers.
2283
2284 fregmove
2285 Common Ignore
2286 Does nothing. Preserved for backward compatibility.
2287
2288 flifetime-dse
2289 Common Report Var(flag_lifetime_dse,2) Init(2) Optimization
2290 Tell DSE that the storage for a C++ object is dead when the constructor
2291 starts and when the destructor finishes.
2292
2293 flifetime-dse=
2294 Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
2295
2296 flive-patching
2297 Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
2298
2299 flive-patching=
2300 Common Report Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
2301 -flive-patching=[inline-only-static|inline-clone] Control IPA
2302 optimizations to provide a safe compilation for live-patching. At the same
2303 time, provides multiple-level control on the enabled IPA optimizations.
2304
2305 Enum
2306 Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs)
2307
2308 EnumValue
2309 Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC)
2310
2311 EnumValue
2312 Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
2313
2314 fallocation-dce
2315 Common Report Var(flag_allocation_dce) Init(1) Optimization
2316 Tell DCE to remove unused C++ allocations.
2317
2318 flive-range-shrinkage
2319 Common Report Var(flag_live_range_shrinkage) Init(0) Optimization
2320 Relief of register pressure through live range shrinkage.
2321
2322 frename-registers
2323 Common Report Var(flag_rename_registers) Init(2) Optimization
2324 Perform a register renaming optimization pass.
2325
2326 fschedule-fusion
2327 Common Report Var(flag_schedule_fusion) Init(2) Optimization
2328 Perform a target dependent instruction fusion optimization pass.
2329
2330 freorder-blocks
2331 Common Report Var(flag_reorder_blocks) Optimization
2332 Reorder basic blocks to improve code placement.
2333
2334 freorder-blocks-algorithm=
2335 Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
2336 -freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
2337
2338 Enum
2339 Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2340
2341 EnumValue
2342 Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2343
2344 EnumValue
2345 Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2346
2347 freorder-blocks-and-partition
2348 Common Report Var(flag_reorder_blocks_and_partition) Optimization
2349 Reorder basic blocks and partition into hot and cold sections.
2350
2351 freorder-functions
2352 Common Report Var(flag_reorder_functions) Optimization
2353 Reorder functions to improve code placement.
2354
2355 frerun-cse-after-loop
2356 Common Report Var(flag_rerun_cse_after_loop) Optimization
2357 Add a common subexpression elimination pass after loop optimizations.
2358
2359 frerun-loop-opt
2360 Common Ignore
2361 Does nothing. Preserved for backward compatibility.
2362
2363 frounding-math
2364 Common Report Var(flag_rounding_math) Optimization SetByCombined
2365 Disable optimizations that assume default FP rounding behavior.
2366
2367 fsched-interblock
2368 Common Report Var(flag_schedule_interblock) Init(1) Optimization
2369 Enable scheduling across basic blocks.
2370
2371 fsched-pressure
2372 Common Report Var(flag_sched_pressure) Init(0) Optimization
2373 Enable register pressure sensitive insn scheduling.
2374
2375 fsched-spec
2376 Common Report Var(flag_schedule_speculative) Init(1) Optimization
2377 Allow speculative motion of non-loads.
2378
2379 fsched-spec-load
2380 Common Report Var(flag_schedule_speculative_load) Optimization
2381 Allow speculative motion of some loads.
2382
2383 fsched-spec-load-dangerous
2384 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
2385 Allow speculative motion of more loads.
2386
2387 fsched-verbose=
2388 Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
2389 -fsched-verbose=<number> Set the verbosity level of the scheduler.
2390
2391 fsched2-use-superblocks
2392 Common Report Var(flag_sched2_use_superblocks) Optimization
2393 If scheduling post reload, do superblock scheduling.
2394
2395 fsched2-use-traces
2396 Common Ignore
2397 Does nothing. Preserved for backward compatibility.
2398
2399 fschedule-insns
2400 Common Report Var(flag_schedule_insns) Optimization
2401 Reschedule instructions before register allocation.
2402
2403 fschedule-insns2
2404 Common Report Var(flag_schedule_insns_after_reload) Optimization
2405 Reschedule instructions after register allocation.
2406
2407 ; This flag should be on when a target implements non-trivial
2408 ; scheduling hooks, maybe saving some information for its own sake.
2409 ; On IA64, for example, this is used for correct bundling.
2410 fselective-scheduling
2411 Common Report Var(flag_selective_scheduling) Optimization
2412 Schedule instructions using selective scheduling algorithm.
2413
2414 fselective-scheduling2
2415 Common Report Var(flag_selective_scheduling2) Optimization
2416 Run selective scheduling after reload.
2417
2418 fself-test=
2419 Common Undocumented Joined Var(flag_self_test)
2420 Run self-tests, using the given path to locate test files.
2421
2422 fsel-sched-pipelining
2423 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
2424 Perform software pipelining of inner loops during selective scheduling.
2425
2426 fsel-sched-pipelining-outer-loops
2427 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
2428 Perform software pipelining of outer loops during selective scheduling.
2429
2430 fsel-sched-reschedule-pipelined
2431 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
2432 Reschedule pipelined regions without pipelining.
2433
2434 fsemantic-interposition
2435 Common Report Var(flag_semantic_interposition) Init(1)
2436 Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
2437
2438 ; sched_stalled_insns means that insns can be moved prematurely from the queue
2439 ; of stalled insns into the ready list.
2440 fsched-stalled-insns
2441 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
2442 Allow premature scheduling of queued insns.
2443
2444 fsched-stalled-insns=
2445 Common RejectNegative Joined UInteger Optimization
2446 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled.
2447
2448 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
2449 ; be examined for a dependency on a stalled insn that is candidate for
2450 ; premature removal from the queue of stalled insns into the ready list (has
2451 ; an effect only if the flag 'sched_stalled_insns' is set).
2452 fsched-stalled-insns-dep
2453 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
2454 Set dependence distance checking in premature scheduling of queued insns.
2455
2456 fsched-stalled-insns-dep=
2457 Common RejectNegative Joined UInteger Optimization
2458 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
2459
2460 fsched-group-heuristic
2461 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
2462 Enable the group heuristic in the scheduler.
2463
2464 fsched-critical-path-heuristic
2465 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
2466 Enable the critical path heuristic in the scheduler.
2467
2468 fsched-spec-insn-heuristic
2469 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
2470 Enable the speculative instruction heuristic in the scheduler.
2471
2472 fsched-rank-heuristic
2473 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
2474 Enable the rank heuristic in the scheduler.
2475
2476 fsched-last-insn-heuristic
2477 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
2478 Enable the last instruction heuristic in the scheduler.
2479
2480 fsched-dep-count-heuristic
2481 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
2482 Enable the dependent count heuristic in the scheduler.
2483
2484 fsection-anchors
2485 Common Report Var(flag_section_anchors) Optimization
2486 Access data in the same section from shared anchor points.
2487
2488 fsee
2489 Common Ignore
2490 Does nothing. Preserved for backward compatibility.
2491
2492 fzee
2493 Common Ignore
2494 Does nothing. Preserved for backward compatibility.
2495
2496 free
2497 Common Report Var(flag_ree) Init(0) Optimization
2498 Turn on Redundant Extensions Elimination pass.
2499
2500 fshow-column
2501 Common Report Var(flag_show_column) Init(1)
2502 Show column numbers in diagnostics, when available. Default on.
2503
2504 fshrink-wrap
2505 Common Report Var(flag_shrink_wrap) Optimization
2506 Emit function prologues only before parts of the function that need it,
2507 rather than at the top of the function.
2508
2509 fshrink-wrap-separate
2510 Common Report Var(flag_shrink_wrap_separate) Init(1) Optimization
2511 Shrink-wrap parts of the prologue and epilogue separately.
2512
2513 fsignaling-nans
2514 Common Report Var(flag_signaling_nans) Optimization SetByCombined
2515 Disable optimizations observable by IEEE signaling NaNs.
2516
2517 fsigned-zeros
2518 Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
2519 Disable floating point optimizations that ignore the IEEE signedness of zero.
2520
2521 fsingle-precision-constant
2522 Common Report Var(flag_single_precision_constant) Optimization
2523 Convert floating point constants to single precision constants.
2524
2525 fsplit-ivs-in-unroller
2526 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
2527 Split lifetimes of induction variables when loops are unrolled.
2528
2529 fsplit-stack
2530 Common Report Var(flag_split_stack) Init(-1)
2531 Generate discontiguous stack frames.
2532
2533 fsplit-wide-types
2534 Common Report Var(flag_split_wide_types) Optimization
2535 Split wide types into independent registers.
2536
2537 fsplit-wide-types-early
2538 Common Report Var(flag_split_wide_types_early) Optimization
2539 Split wide types into independent registers earlier.
2540
2541 fssa-backprop
2542 Common Report Var(flag_ssa_backprop) Init(1) Optimization
2543 Enable backward propagation of use properties at the SSA level.
2544
2545 fssa-phiopt
2546 Common Report Var(flag_ssa_phiopt) Optimization
2547 Optimize conditional patterns using SSA PHI nodes.
2548
2549 fstdarg-opt
2550 Common Report Var(flag_stdarg_opt) Init(1) Optimization
2551 Optimize amount of stdarg registers saved to stack at start of function.
2552
2553 fvariable-expansion-in-unroller
2554 Common Report Var(flag_variable_expansion_in_unroller) Optimization
2555 Apply variable expansion when loops are unrolled.
2556
2557 fstack-check=
2558 Common Report RejectNegative Joined Optimization
2559 -fstack-check=[no|generic|specific] Insert stack checking code into the program.
2560
2561 fstack-check
2562 Common Alias(fstack-check=, specific, no)
2563 Insert stack checking code into the program. Same as -fstack-check=specific.
2564
2565 fstack-clash-protection
2566 Common Report Var(flag_stack_clash_protection) Optimization
2567 Insert code to probe each page of stack space as it is allocated to protect
2568 from stack-clash style attacks.
2569
2570 fstack-limit
2571 Common Var(common_deferred_options) Defer
2572
2573 fstack-limit-register=
2574 Common RejectNegative Joined Var(common_deferred_options) Defer
2575 -fstack-limit-register=<register> Trap if the stack goes past <register>.
2576
2577 fstack-limit-symbol=
2578 Common RejectNegative Joined Var(common_deferred_options) Defer
2579 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
2580
2581 fstack-protector
2582 Common Report Var(flag_stack_protect, 1) Init(-1) Optimization
2583 Use propolice as a stack protection method.
2584
2585 fstack-protector-all
2586 Common Report RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
2587 Use a stack protection method for every function.
2588
2589 fstack-protector-strong
2590 Common Report RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
2591 Use a smart stack protection method for certain functions.
2592
2593 fstack-protector-explicit
2594 Common Report RejectNegative Var(flag_stack_protect, 4) Optimization
2595 Use stack protection method only for functions with the stack_protect attribute.
2596
2597 fstack-usage
2598 Common RejectNegative Var(flag_stack_usage)
2599 Output stack usage information on a per-function basis.
2600
2601 fstrength-reduce
2602 Common Ignore
2603 Does nothing. Preserved for backward compatibility.
2604
2605 ; Nonzero if we should do (language-dependent) alias analysis.
2606 ; Typically, this analysis will assume that expressions of certain
2607 ; types do not alias expressions of certain other types. Only used
2608 ; if alias analysis (in general) is enabled.
2609 fstrict-aliasing
2610 Common Report Var(flag_strict_aliasing) Optimization
2611 Assume strict aliasing rules apply.
2612
2613 fstrict-overflow
2614 Common Report
2615 Treat signed overflow as undefined. Negated as -fwrapv -fwrapv-pointer.
2616
2617 fsync-libcalls
2618 Common Report Var(flag_sync_libcalls) Init(1)
2619 Implement __atomic operations via libcalls to legacy __sync functions.
2620
2621 fsyntax-only
2622 Common Report Var(flag_syntax_only)
2623 Check for syntax errors, then stop.
2624
2625 ftest-coverage
2626 Common Report Var(flag_test_coverage)
2627 Create data files needed by \"gcov\".
2628
2629 fthread-jumps
2630 Common Report Var(flag_thread_jumps) Optimization
2631 Perform jump threading optimizations.
2632
2633 ftime-report
2634 Common Report Var(time_report)
2635 Report the time taken by each compiler pass.
2636
2637 ftime-report-details
2638 Common Report Var(time_report_details)
2639 Record times taken by sub-phases separately.
2640
2641 ftls-model=
2642 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
2643 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model.
2644
2645 Enum
2646 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2647
2648 EnumValue
2649 Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2650
2651 EnumValue
2652 Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2653
2654 EnumValue
2655 Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2656
2657 EnumValue
2658 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2659
2660 ftoplevel-reorder
2661 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
2662 Reorder top level functions, variables, and asms.
2663
2664 ftracer
2665 Common Report Var(flag_tracer) Optimization
2666 Perform superblock formation via tail duplication.
2667
2668 ftrampolines
2669 Common Report Var(flag_trampolines) Init(0)
2670 For targets that normally need trampolines for nested functions, always
2671 generate them instead of using descriptors.
2672
2673 ; Zero means that floating-point math operations cannot generate a
2674 ; (user-visible) trap. This is the case, for example, in nonstop
2675 ; IEEE 754 arithmetic.
2676 ftrapping-math
2677 Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
2678 Assume floating-point operations can trap.
2679
2680 ftrapv
2681 Common Report Var(flag_trapv) Optimization
2682 Trap for signed overflow in addition, subtraction and multiplication.
2683
2684 ftree-ccp
2685 Common Report Var(flag_tree_ccp) Optimization
2686 Enable SSA-CCP optimization on trees.
2687
2688 ftree-bit-ccp
2689 Common Report Var(flag_tree_bit_ccp) Optimization
2690 Enable SSA-BIT-CCP optimization on trees.
2691
2692 ftree-store-ccp
2693 Common Ignore
2694 Does nothing. Preserved for backward compatibility.
2695
2696 ftree-ch
2697 Common Report Var(flag_tree_ch) Optimization
2698 Enable loop header copying on trees.
2699
2700 ftree-coalesce-inlined-vars
2701 Common Ignore RejectNegative
2702 Does nothing. Preserved for backward compatibility.
2703
2704 ftree-coalesce-vars
2705 Common Report Var(flag_tree_coalesce_vars) Optimization
2706 Enable SSA coalescing of user variables.
2707
2708 ftree-copyrename
2709 Common Ignore
2710 Does nothing. Preserved for backward compatibility.
2711
2712 ftree-copy-prop
2713 Common Report Var(flag_tree_copy_prop) Optimization
2714 Enable copy propagation on trees.
2715
2716 ftree-store-copy-prop
2717 Common Ignore
2718 Does nothing. Preserved for backward compatibility.
2719
2720 ftree-cselim
2721 Common Report Var(flag_tree_cselim) Init(2) Optimization
2722 Transform condition stores into unconditional ones.
2723
2724 ftree-switch-conversion
2725 Common Report Var(flag_tree_switch_conversion) Optimization
2726 Perform conversions of switch initializations.
2727
2728 ftree-dce
2729 Common Report Var(flag_tree_dce) Optimization
2730 Enable SSA dead code elimination optimization on trees.
2731
2732 ftree-dominator-opts
2733 Common Report Var(flag_tree_dom) Optimization
2734 Enable dominator optimizations.
2735
2736 ftree-tail-merge
2737 Common Report Var(flag_tree_tail_merge) Optimization
2738 Enable tail merging on trees.
2739
2740 ftree-dse
2741 Common Report Var(flag_tree_dse) Optimization
2742 Enable dead store elimination.
2743
2744 ftree-forwprop
2745 Common Report Var(flag_tree_forwprop) Init(1) Optimization
2746 Enable forward propagation on trees.
2747
2748 ftree-fre
2749 Common Report Var(flag_tree_fre) Optimization
2750 Enable Full Redundancy Elimination (FRE) on trees.
2751
2752 foptimize-strlen
2753 Common Report Var(flag_optimize_strlen) Optimization
2754 Enable string length optimizations on trees.
2755
2756 fisolate-erroneous-paths-dereference
2757 Common Report Var(flag_isolate_erroneous_paths_dereference) Optimization
2758 Detect paths that trigger erroneous or undefined behavior due to
2759 dereferencing a null pointer. Isolate those paths from the main control
2760 flow and turn the statement with erroneous or undefined behavior into a trap.
2761
2762 fisolate-erroneous-paths-attribute
2763 Common Report Var(flag_isolate_erroneous_paths_attribute) Optimization
2764 Detect paths that trigger erroneous or undefined behavior due to a null value
2765 being used in a way forbidden by a returns_nonnull or nonnull
2766 attribute. Isolate those paths from the main control flow and turn the
2767 statement with erroneous or undefined behavior into a trap.
2768
2769 ftree-loop-distribution
2770 Common Report Var(flag_tree_loop_distribution) Optimization
2771 Enable loop distribution on trees.
2772
2773 ftree-loop-distribute-patterns
2774 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
2775 Enable loop distribution for patterns transformed into a library call.
2776
2777 ftree-loop-im
2778 Common Report Var(flag_tree_loop_im) Init(1) Optimization
2779 Enable loop invariant motion on trees.
2780
2781 ftree-loop-linear
2782 Common Alias(floop-nest-optimize)
2783 Enable loop nest transforms. Same as -floop-nest-optimize.
2784
2785 ftree-loop-ivcanon
2786 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
2787 Create canonical induction variables in loops.
2788
2789 ftree-loop-optimize
2790 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
2791 Enable loop optimizations on tree level.
2792
2793 ftree-parallelize-loops=
2794 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
2795 -ftree-parallelize-loops=<number> Enable automatic parallelization of loops.
2796
2797 ftree-phiprop
2798 Common Report Var(flag_tree_phiprop) Init(1) Optimization
2799 Enable hoisting loads from conditional pointers.
2800
2801 ftree-pre
2802 Common Report Var(flag_tree_pre) Optimization
2803 Enable SSA-PRE optimization on trees.
2804
2805 ftree-partial-pre
2806 Common Report Var(flag_tree_partial_pre) Optimization
2807 In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
2808
2809 ftree-pta
2810 Common Report Var(flag_tree_pta) Optimization
2811 Perform function-local points-to analysis on trees.
2812
2813 ftree-reassoc
2814 Common Report Var(flag_tree_reassoc) Init(1) Optimization
2815 Enable reassociation on tree level.
2816
2817 ftree-salias
2818 Common Ignore
2819 Does nothing. Preserved for backward compatibility.
2820
2821 ftree-sink
2822 Common Report Var(flag_tree_sink) Optimization
2823 Enable SSA code sinking on trees.
2824
2825 ftree-slsr
2826 Common Report Var(flag_tree_slsr) Optimization
2827 Perform straight-line strength reduction.
2828
2829 ftree-sra
2830 Common Report Var(flag_tree_sra) Optimization
2831 Perform scalar replacement of aggregates.
2832
2833 ftree-ter
2834 Common Report Var(flag_tree_ter) Optimization
2835 Replace temporary expressions in the SSA->normal pass.
2836
2837 ftree-lrs
2838 Common Report Var(flag_tree_live_range_split) Optimization
2839 Perform live range splitting during the SSA->normal pass.
2840
2841 ftree-vrp
2842 Common Report Var(flag_tree_vrp) Init(0) Optimization
2843 Perform Value Range Propagation on trees.
2844
2845 fsplit-paths
2846 Common Report Var(flag_split_paths) Init(0) Optimization
2847 Split paths leading to loop backedges.
2848
2849 funconstrained-commons
2850 Common Var(flag_unconstrained_commons) Optimization
2851 Assume common declarations may be overridden with ones with a larger
2852 trailing array.
2853
2854 funit-at-a-time
2855 Common Report Var(flag_unit_at_a_time) Init(1)
2856 Compile whole compilation unit at a time.
2857
2858 funroll-loops
2859 Common Report Var(flag_unroll_loops) Optimization
2860 Perform loop unrolling when iteration count is known.
2861
2862 funroll-all-loops
2863 Common Report Var(flag_unroll_all_loops) Optimization
2864 Perform loop unrolling for all loops.
2865
2866 funroll-completely-grow-size
2867 Undocumented Var(flag_cunroll_grow_size) Init(2) Optimization
2868 ; Internal undocumented flag, allow size growth during complete unrolling
2869
2870 ; Nonzero means that loop optimizer may assume that the induction variables
2871 ; that control loops do not overflow and that the loops with nontrivial
2872 ; exit condition are not infinite
2873 funsafe-loop-optimizations
2874 Common Ignore
2875 Does nothing. Preserved for backward compatibility.
2876
2877 fassociative-math
2878 Common Report Var(flag_associative_math) SetByCombined Optimization
2879 Allow optimization for floating-point arithmetic which may change the
2880 result of the operation due to rounding.
2881
2882 freciprocal-math
2883 Common Report Var(flag_reciprocal_math) SetByCombined Optimization
2884 Same as -fassociative-math for expressions which include division.
2885
2886 ; Nonzero means that unsafe floating-point math optimizations are allowed
2887 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
2888 ; are allowed to assume that their arguments and results are "normal"
2889 ; (e.g., nonnegative for SQRT).
2890 funsafe-math-optimizations
2891 Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
2892 Allow math optimizations that may violate IEEE or ISO standards.
2893
2894 funswitch-loops
2895 Common Report Var(flag_unswitch_loops) Optimization
2896 Perform loop unswitching.
2897
2898 fsplit-loops
2899 Common Report Var(flag_split_loops) Optimization
2900 Perform loop splitting.
2901
2902 fversion-loops-for-strides
2903 Common Report Var(flag_version_loops_for_strides) Optimization
2904 Version loops based on whether indices have a stride of one.
2905
2906 funwind-tables
2907 Common Report Var(flag_unwind_tables) Optimization
2908 Just generate unwind tables for exception handling.
2909
2910 fuse-ld=bfd
2911 Common Driver Negative(fuse-ld=gold)
2912 Use the bfd linker instead of the default linker.
2913
2914 fuse-ld=gold
2915 Common Driver Negative(fuse-ld=bfd)
2916 Use the gold linker instead of the default linker.
2917
2918 fuse-ld=lld
2919 Common Driver Negative(fuse-ld=lld)
2920 Use the lld LLVM linker instead of the default linker.
2921
2922 fuse-linker-plugin
2923 Common Undocumented Var(flag_use_linker_plugin)
2924
2925 ; Positive if we should track variables, negative if we should run
2926 ; the var-tracking pass only to discard debug annotations, zero if
2927 ; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
2928 ; will be set according to optimize, debug_info_level and debug_hooks
2929 ; in process_options ().
2930 fvar-tracking
2931 Common Report Var(flag_var_tracking) Init(2) PerFunction
2932 Perform variable tracking.
2933
2934 ; Positive if we should track variables at assignments, negative if
2935 ; we should run the var-tracking pass only to discard debug
2936 ; annotations. When flag_var_tracking_assignments ==
2937 ; AUTODETECT_VALUE it will be set according to flag_var_tracking.
2938 fvar-tracking-assignments
2939 Common Report Var(flag_var_tracking_assignments) Init(2) PerFunction
2940 Perform variable tracking by annotating assignments.
2941
2942 ; Nonzero if we should toggle flag_var_tracking_assignments after
2943 ; processing options and computing its default. */
2944 fvar-tracking-assignments-toggle
2945 Common Report Var(flag_var_tracking_assignments_toggle) PerFunction
2946 Toggle -fvar-tracking-assignments.
2947
2948 ; Positive if we should track uninitialized variables, negative if
2949 ; we should run the var-tracking pass only to discard debug
2950 ; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it
2951 ; will be set according to flag_var_tracking.
2952 fvar-tracking-uninit
2953 Common Report Var(flag_var_tracking_uninit) PerFunction
2954 Perform variable tracking and also tag variables that are uninitialized.
2955
2956 ; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
2957 ftree-vectorize
2958 Common Report Optimization
2959 Enable vectorization on trees.
2960
2961 ftree-vectorizer-verbose=
2962 Common Joined RejectNegative Ignore
2963 Does nothing. Preserved for backward compatibility.
2964
2965 ftree-loop-vectorize
2966 Common Report Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
2967 Enable loop vectorization on trees.
2968
2969 ftree-slp-vectorize
2970 Common Report Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
2971 Enable basic block vectorization (SLP) on trees.
2972
2973 fvect-cost-model=
2974 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
2975 -fvect-cost-model=[unlimited|dynamic|cheap] Specifies the cost model for vectorization.
2976
2977 fsimd-cost-model=
2978 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
2979 -fsimd-cost-model=[unlimited|dynamic|cheap] Specifies the vectorization cost model for code marked with a simd directive.
2980
2981 Enum
2982 Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
2983
2984 EnumValue
2985 Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
2986
2987 EnumValue
2988 Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
2989
2990 EnumValue
2991 Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
2992
2993 fvect-cost-model
2994 Common Alias(fvect-cost-model=,dynamic,unlimited)
2995 Enables the dynamic vectorizer cost model. Preserved for backward compatibility.
2996
2997 ftree-vect-loop-version
2998 Common Ignore
2999 Does nothing. Preserved for backward compatibility.
3000
3001 ftree-scev-cprop
3002 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
3003 Enable copy propagation of scalar-evolution information.
3004
3005 ; -fverbose-asm causes extra commentary information to be produced in
3006 ; the generated assembly code (to make it more readable). This option
3007 ; is generally only of use to those who actually need to read the
3008 ; generated assembly code (perhaps while debugging the compiler itself).
3009 ; -fno-verbose-asm, the default, causes the extra information
3010 ; to not be added and is useful when comparing two assembler files.
3011 fverbose-asm
3012 Common Report Var(flag_verbose_asm)
3013 Add extra commentary to assembler output.
3014
3015 fvisibility=
3016 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
3017 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility.
3018
3019 Enum
3020 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
3021
3022 EnumValue
3023 Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
3024
3025 EnumValue
3026 Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
3027
3028 EnumValue
3029 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
3030
3031 EnumValue
3032 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
3033
3034 fvtable-verify=
3035 Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
3036 Validate vtable pointers before using them.
3037
3038 Enum
3039 Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
3040
3041 EnumValue
3042 Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
3043
3044 EnumValue
3045 Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
3046
3047 EnumValue
3048 Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
3049
3050 fvtv-counts
3051 Common Var(flag_vtv_counts)
3052 Output vtable verification counters.
3053
3054 fvtv-debug
3055 Common Var(flag_vtv_debug)
3056 Output vtable verification pointer sets information.
3057
3058 fvpt
3059 Common Report Var(flag_value_profile_transformations) Optimization
3060 Use expression value profiles in optimizations.
3061
3062 fweb
3063 Common Report Var(flag_web) Init(2) Optimization
3064 Construct webs and split unrelated uses of single variable.
3065
3066 ftree-builtin-call-dce
3067 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
3068 Enable conditional dead code elimination for builtin calls.
3069
3070 fwhole-program
3071 Common Report Var(flag_whole_program) Init(0)
3072 Perform whole program optimizations.
3073
3074 fwrapv-pointer
3075 Common Report Var(flag_wrapv_pointer) Optimization
3076 Assume pointer overflow wraps around.
3077
3078 fwrapv
3079 Common Report Var(flag_wrapv) Optimization
3080 Assume signed arithmetic overflow wraps around.
3081
3082 fzero-initialized-in-bss
3083 Common Report Var(flag_zero_initialized_in_bss) Init(1)
3084 Put zero initialized data in the bss section.
3085
3086 g
3087 Common Driver RejectNegative JoinedOrMissing
3088 Generate debug information in default format.
3089
3090 gas-loc-support
3091 Common Driver Var(dwarf2out_as_loc_support) Init(2)
3092 Assume assembler support for (DWARF2+) .loc directives.
3093
3094 gas-locview-support
3095 Common Driver Var(dwarf2out_as_locview_support) Init(2)
3096 Assume assembler support for view in (DWARF2+) .loc directives.
3097
3098 gcoff
3099 Common Driver WarnRemoved
3100 Does nothing. Preserved for backward compatibility.
3101
3102 gcoff1
3103 Common Driver WarnRemoved
3104 Does nothing. Preserved for backward compatibility.
3105
3106 gcoff2
3107 Common Driver WarnRemoved
3108 Does nothing. Preserved for backward compatibility.
3109
3110 gcoff3
3111 Common Driver WarnRemoved
3112 Does nothing. Preserved for backward compatibility.
3113
3114 gcolumn-info
3115 Common Driver Var(debug_column_info,1) Init(1)
3116 Record DW_AT_decl_column and DW_AT_call_column in DWARF.
3117
3118 gdwarf
3119 Common Driver JoinedOrMissing Negative(gdwarf-)
3120 Generate debug information in default version of DWARF format.
3121
3122 gdwarf-
3123 Common Driver Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
3124 Generate debug information in DWARF v2 (or later) format.
3125
3126 ggdb
3127 Common Driver JoinedOrMissing
3128 Generate debug information in default extended format.
3129
3130 ginline-points
3131 Common Driver Var(debug_inline_points) Init(2)
3132 Generate extended entry point information for inlined functions.
3133
3134 ginternal-reset-location-views
3135 Common Driver Var(debug_internal_reset_location_views) Init(2)
3136 Compute locview reset points based on insn length estimates.
3137
3138 gno-
3139 RejectNegative Joined Undocumented
3140 ; Catch the gno- prefix, so it doesn't backtrack to g<level>.
3141
3142 gno-pubnames
3143 Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
3144 Don't generate DWARF pubnames and pubtypes sections.
3145
3146 gpubnames
3147 Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
3148 Generate DWARF pubnames and pubtypes sections.
3149
3150 ggnu-pubnames
3151 Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
3152 Generate DWARF pubnames and pubtypes sections with GNU extensions.
3153
3154 grecord-gcc-switches
3155 Common Driver Var(dwarf_record_gcc_switches) Init(1)
3156 Record gcc command line switches in DWARF DW_AT_producer.
3157
3158 gsplit-dwarf
3159 Common Driver Var(dwarf_split_debug_info) Init(0)
3160 Generate debug information in separate .dwo files.
3161
3162 gstabs
3163 Common Driver JoinedOrMissing Negative(gstabs+)
3164 Generate debug information in STABS format.
3165
3166 gstabs+
3167 Common Driver JoinedOrMissing Negative(gvms)
3168 Generate debug information in extended STABS format.
3169
3170 gstatement-frontiers
3171 Common Driver Var(debug_nonbind_markers_p) Init(2)
3172 Emit progressive recommended breakpoint locations.
3173
3174 gstrict-dwarf
3175 Common Driver Report Var(dwarf_strict) Init(0)
3176 Don't emit DWARF additions beyond selected version.
3177
3178 gdescribe-dies
3179 Common Driver Report Var(flag_describe_dies) Init(0)
3180 Add description attributes to some DWARF DIEs that have no name attribute.
3181
3182 gtoggle
3183 Common Driver Report Var(flag_gtoggle)
3184 Toggle debug information generation.
3185
3186 gvariable-location-views
3187 Common Driver Var(debug_variable_location_views, 1) Init(2)
3188 Augment variable location lists with progressive views.
3189
3190 gvariable-location-views=incompat5
3191 Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
3192
3193 gvms
3194 Common Driver JoinedOrMissing Negative(gxcoff)
3195 Generate debug information in VMS format.
3196
3197 gxcoff
3198 Common Driver JoinedOrMissing Negative(gxcoff+)
3199 Generate debug information in XCOFF format.
3200
3201 gxcoff+
3202 Common Driver JoinedOrMissing Negative(gdwarf)
3203 Generate debug information in extended XCOFF format.
3204
3205 Enum
3206 Name(compressed_debug_sections) Type(int)
3207
3208 ; Since -gz= is completely handled in specs, the values aren't used and we
3209 ; assign arbitrary constants.
3210 EnumValue
3211 Enum(compressed_debug_sections) String(none) Value(0)
3212
3213 EnumValue
3214 Enum(compressed_debug_sections) String(zlib) Value(1)
3215
3216 EnumValue
3217 Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
3218
3219 gz
3220 Common Driver
3221 Generate compressed debug sections.
3222
3223 gz=
3224 Common Driver RejectNegative Joined Enum(compressed_debug_sections)
3225 -gz=<format> Generate compressed debug sections in format <format>.
3226
3227 h
3228 Driver Joined Separate
3229
3230 iplugindir=
3231 Common Joined Var(plugindir_string) Init(0)
3232 -iplugindir=<dir> Set <dir> to be the default plugin directory.
3233
3234 imultiarch
3235 Common Joined Separate RejectDriver Var(imultiarch) Init(0)
3236 -imultiarch <dir> Set <dir> to be the multiarch include subdirectory.
3237
3238 l
3239 Driver Joined Separate
3240
3241 n
3242 Driver
3243
3244 no-canonical-prefixes
3245 Driver
3246
3247 nodefaultlibs
3248 Driver
3249
3250 nostartfiles
3251 Driver
3252
3253 nolibc
3254 Driver
3255
3256 nostdlib
3257 Driver
3258
3259 o
3260 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
3261 -o <file> Place output into <file>.
3262
3263 p
3264 Common Var(profile_flag)
3265 Enable function profiling.
3266
3267 pass-exit-codes
3268 Driver Var(pass_exit_codes)
3269
3270 pedantic
3271 Common Alias(Wpedantic)
3272
3273 pedantic-errors
3274 Common Var(flag_pedantic_errors)
3275 Like -pedantic but issue them as errors.
3276
3277 pg
3278 Driver
3279
3280 pipe
3281 Driver Var(use_pipes)
3282
3283 print-file-name=
3284 Driver JoinedOrMissing Var(print_file_name)
3285
3286 print-libgcc-file-name
3287 Driver
3288
3289 print-multi-directory
3290 Driver Var(print_multi_directory)
3291
3292 print-multi-lib
3293 Driver Var(print_multi_lib)
3294
3295 print-multi-os-directory
3296 Driver Var(print_multi_os_directory)
3297
3298 print-multiarch
3299 Driver Var(print_multiarch)
3300
3301 print-prog-name=
3302 Driver JoinedOrMissing Var(print_prog_name)
3303
3304 print-search-dirs
3305 Driver Var(print_search_dirs)
3306
3307 print-sysroot
3308 Driver Var(print_sysroot)
3309
3310 print-sysroot-headers-suffix
3311 Driver Var(print_sysroot_headers_suffix)
3312
3313 quiet
3314 Common Var(quiet_flag) RejectDriver
3315 Do not display functions compiled or elapsed time.
3316
3317 r
3318 Driver
3319
3320 s
3321 Driver
3322
3323 save-temps
3324 Driver
3325
3326 save-temps=
3327 Driver Joined
3328
3329 t
3330 Driver
3331
3332 time
3333 Driver Var(report_times)
3334
3335 time=
3336 Driver JoinedOrMissing
3337
3338 u
3339 Driver Joined Separate
3340
3341 undef
3342 Driver
3343 ; C option, but driver must not handle as "-u ndef".
3344
3345 v
3346 Common Driver Var(verbose_flag)
3347 Enable verbose output.
3348
3349 version
3350 Common Var(version_flag) RejectDriver
3351 Display the compiler's version.
3352
3353 w
3354 Common Var(inhibit_warnings)
3355 Suppress warnings.
3356
3357 wrapper
3358 Driver Separate Var(wrapper_string)
3359
3360 x
3361 Driver Joined Separate
3362
3363 shared
3364 Driver RejectNegative Negative(static-pie)
3365 Create a shared library.
3366
3367 shared-libgcc
3368 Driver
3369
3370 specs
3371 Driver Separate Alias(specs=)
3372
3373 specs=
3374 Driver Joined
3375
3376 static
3377 Driver
3378
3379 static-libgcc
3380 Driver
3381
3382 static-libgfortran
3383 Driver
3384 ; Documented for Fortran, but always accepted by driver.
3385
3386 static-libstdc++
3387 Driver
3388
3389 static-libgo
3390 Driver
3391 ; Documented for Go, but always accepted by driver.
3392
3393 static-libasan
3394 Driver
3395
3396 static-libtsan
3397 Driver
3398
3399 static-liblsan
3400 Driver
3401
3402 static-libubsan
3403 Driver
3404
3405 symbolic
3406 Driver
3407
3408 no-pie
3409 Driver RejectNegative Negative(shared)
3410 Don't create a dynamically linked position independent executable.
3411
3412 pie
3413 Driver RejectNegative Negative(no-pie)
3414 Create a dynamically linked position independent executable.
3415
3416 static-pie
3417 Driver RejectNegative Negative(pie)
3418 Create a static position independent executable.
3419
3420 z
3421 Driver Joined Separate
3422
3423 fipa-ra
3424 Common Report Var(flag_ipa_ra) Optimization
3425 Use caller save register across calls if possible.
3426
3427 ; This comment is to ensure we retain the blank line above.