xref: /dragonfly/contrib/gcc-4.7/gcc/common.opt (revision 8af44722)
1; Options for the language- and target-independent parts of the compiler.
2
3; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
4; Free Software Foundation, Inc.
5;
6; This file is part of GCC.
7;
8; GCC is free software; you can redistribute it and/or modify it under
9; the terms of the GNU General Public License as published by the Free
10; Software Foundation; either version 3, or (at your option) any later
11; version.
12;
13; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14; WARRANTY; without even the implied warranty of MERCHANTABILITY or
15; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
16; for more details.
17;
18; You should have received a copy of the GNU General Public License
19; along with GCC; see the file COPYING3.  If not see
20; <http://www.gnu.org/licenses/>.
21
22; See the GCC internals manual (options.texi) for a description of this file's format.
23
24; Please try to keep this file in ASCII collating order.
25
26Variable
27int target_flags
28
29Variable
30int optimize
31
32Variable
33int optimize_size
34
35; Not used directly to control optimizations, only to save -Ofast
36; setting for "optimize" attributes.
37Variable
38int optimize_fast
39
40; True if this is the lto front end.  This is used to disable gimple
41; generation and lowering passes that are normally run on the output
42; of a front end.  These passes must be bypassed for lto since they
43; have already been done before the gimple was written.
44Variable
45bool in_lto_p = false
46
47; 0 means straightforward implementation of complex divide acceptable.
48; 1 means wide ranges of inputs must work for complex divide.
49; 2 means C99-like requirements for complex multiply and divide.
50Variable
51int flag_complex_method = 1
52
53; Nonzero if subexpressions must be evaluated from left-to-right.
54Variable
55int flag_evaluation_order = 0
56
57; Language specific warning pass for unused results.
58Variable
59bool flag_warn_unused_result = false
60
61Variable
62int *param_values
63
64; Nonzero if we should write GIMPLE bytecode for link-time optimization.
65Variable
66int flag_generate_lto
67
68; True to warn about any objects definitions whose size is larger
69; than N bytes.  Also want about function definitions whose returned
70; values are larger than N bytes, where N is 'larger_than_size'.
71Variable
72bool warn_larger_than
73
74Variable
75HOST_WIDE_INT larger_than_size
76
77; True to warn about any function whose frame size is larger
78; than N bytes.
79Variable
80bool warn_frame_larger_than
81
82Variable
83HOST_WIDE_INT frame_larger_than_size
84
85; Nonzero means we should be saving declaration info into a .X file.
86Variable
87int flag_gen_aux_info = 0
88
89; Nonzero if we are compiling code for a shared library, zero for
90; executable.
91Variable
92int flag_shlib
93
94; These two are really VEC(char_p,heap) *.
95
96Variable
97void *flag_instrument_functions_exclude_functions
98
99Variable
100void *flag_instrument_functions_exclude_files
101
102; Generic structs (e.g. templates not explicitly specialized)
103; may not have a compilation unit associated with them, and so
104; may need to be treated differently from ordinary structs.
105;
106; Structs only handled by reference (indirectly), will also usually
107; not need as much debugging information.
108
109Variable
110enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
111
112Variable
113enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
114
115; True if we should exit after parsing options.
116Variable
117bool exit_after_options
118
119; Type(s) of debugging information we are producing (if any).  See
120; flag-types.h for the definitions of the different possible types of
121; debugging information.
122Variable
123enum debug_info_type write_symbols = NO_DEBUG
124
125; Level of debugging information we are producing.  See flag-types.h
126; for the definitions of the different possible levels.
127Variable
128enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
129
130; Nonzero means use GNU-only extensions in the generated symbolic
131; debugging information.  Currently, this only has an effect when
132; write_symbols is set to DBX_DEBUG, XCOFF_DEBUG, or DWARF_DEBUG.
133Variable
134bool use_gnu_debug_info_extensions
135
136; Original value of maximum field alignment in bytes, specified via
137; -fpack-struct=<value>.
138Variable
139unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
140
141Variable
142enum vect_verbosity_levels user_vect_verbosity_level = MAX_VERBOSITY_LEVEL
143
144; Type of stack check.
145Variable
146enum stack_check_type flag_stack_check = NO_STACK_CHECK
147
148; True if stack usage information needs to be computed.
149Variable
150bool flag_stack_usage_info = false
151
152; -dA causes debug commentary information to be produced in
153; the generated assembly code (to make it more readable).  This option
154; is generally only of use to those who actually need to read the
155; generated assembly code (perhaps while debugging the compiler itself).
156; Currently, this switch is only used by dwarf2out.c; however, it is intended
157; to be a catchall for printing debug information in the assembler file.
158Variable
159int flag_debug_asm
160
161; -dP causes the rtl to be emitted as a comment in assembly.
162Variable
163int flag_dump_rtl_in_asm
164
165; Whether -da was passed (used only in handle_common_deferred_options).
166Variable
167bool flag_dump_all_passed
168
169; Other flags saying which kinds of debugging dump have been requested.
170
171Variable
172int rtl_dump_and_exit
173
174Variable
175int flag_print_asm_name
176
177Variable
178enum graph_dump_types graph_dump_format = no_graph
179
180; Name of top-level original source file (what was input to cpp).
181; This comes from the #-command at the beginning of the actual input.
182; If there isn't any there, then this is the cc1 input file name.
183Variable
184const char *main_input_filename
185
186; Pointer to base name in main_input_filename, with directories and a
187; single final extension removed, and the length of this base
188; name.
189
190Variable
191const char *main_input_basename
192
193Variable
194int main_input_baselength
195
196; Which options have been printed by --help.
197Variable
198char *help_printed
199
200; Which enums have been printed by --help.  0 = not printed, no
201; relevant options seen, 1 = relevant option seen, not yet printed, 2
202; = printed.
203Variable
204char *help_enum_printed
205
206; The number of columns for --help output.
207Variable
208unsigned int help_columns
209
210; Whether this options structure has been through finish_options
211Variable
212bool flag_opts_finished
213
214###
215Driver
216
217-assemble
218Driver Alias(S)
219
220-compile
221Driver Alias(c)
222
223-coverage
224Driver Alias(coverage)
225
226-debug
227Common Alias(g)
228
229-dump
230Common Separate Alias(d)
231
232-dump=
233Common Joined Alias(d)
234
235-dumpbase
236Common Separate Alias(dumpbase)
237
238-dumpdir
239Common Separate Alias(dumpdir)
240
241-entry
242Driver Separate Alias(e)
243
244-entry=
245Driver Joined Alias(e)
246
247-extra-warnings
248Common Warning Alias(Wextra)
249
250-for-assembler
251Driver Separate Alias(Xassembler)
252
253-for-assembler=
254Driver JoinedOrMissing Alias(Xassembler)
255
256-for-linker
257Driver Separate Alias(Xlinker)
258
259-for-linker=
260Driver JoinedOrMissing Alias(Xlinker)
261
262-force-link
263Driver Separate Alias(u)
264
265-force-link=
266Driver Joined Alias(u)
267
268-help
269Common Driver Var(help_flag)
270Display this information
271
272-help=
273Common Driver Report Joined
274--help=<class>	Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params
275
276-language
277Driver Separate Alias(x)
278
279-language=
280Driver Joined Alias(x)
281
282-library-directory
283Driver Separate Alias(L)
284
285-library-directory=
286Driver Joined Alias(L)
287
288-no-canonical-prefixes
289Driver Alias(no-canonical-prefixes)
290
291-no-standard-libraries
292Driver Alias(nostdlib)
293
294-no-warnings
295Common Alias(w)
296
297-optimize
298Common Alias(O)
299
300-output
301Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
302
303-output=
304Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
305
306-pass-exit-codes
307Driver Alias(pass-exit-codes)
308
309-pedantic
310Common Alias(pedantic)
311
312-pedantic-errors
313Common Alias(pedantic-errors)
314
315-pie
316Driver Alias(pie)
317
318-pipe
319Driver Alias(pipe)
320
321-prefix
322Driver Separate Alias(B)
323
324-prefix=
325Driver JoinedOrMissing Alias(B)
326
327-preprocess
328Driver Alias(E)
329
330-print-file-name
331Driver Separate Alias(print-file-name=)
332
333-print-file-name=
334Driver JoinedOrMissing Alias(print-file-name=)
335
336-print-libgcc-file-name
337Driver Alias(print-libgcc-file-name)
338
339-print-multi-directory
340Driver Alias(print-multi-directory)
341
342-print-multi-lib
343Driver Alias(print-multi-lib)
344
345-print-multi-os-directory
346Driver Alias(print-multi-os-directory)
347
348-print-multiarch
349Driver Alias(print-multiarch)
350
351-print-prog-name
352Driver Separate Alias(print-prog-name=)
353
354-print-prog-name=
355Driver JoinedOrMissing Alias(print-prog-name=)
356
357-print-search-dirs
358Driver Alias(print-search-dirs)
359
360-print-sysroot
361Driver Alias(print-sysroot)
362
363-print-sysroot-headers-suffix
364Driver Alias(print-sysroot-headers-suffix)
365
366-profile
367Common Alias(p)
368
369-save-temps
370Driver Alias(save-temps)
371
372-shared
373Driver Alias(shared)
374
375-specs
376Driver Separate Alias(specs=)
377
378-specs=
379Driver Joined Alias(specs=)
380
381-static
382Driver Alias(static)
383
384-symbolic
385Driver Alias(symbolic)
386
387-target-help
388Common Driver
389Alias for --help=target
390
391-time
392Driver Alias(time)
393
394-verbose
395Driver Alias(v)
396
397;; The driver used to convert options such as --help into forms such
398;; as -fhelp; the following four entries are for compatibility with
399;; any direct uses of those (undocumented) -f forms
400fhelp
401Common Driver Alias(-help)
402
403fhelp=
404Common Driver Joined Alias(-help=)
405
406ftarget-help
407Common Driver Alias(-target-help)
408
409fversion
410Common Driver Alias(-version)
411
412-param
413Common Separate
414--param <param>=<value>	Set parameter <param> to value.  See below for a complete list of parameters
415
416-param=
417Common Joined Alias(-param)
418
419-sysroot
420Driver Separate Alias(-sysroot=)
421
422-sysroot=
423Driver JoinedOrMissing
424
425-version
426Common Driver
427
428B
429Driver Joined Separate
430
431E
432Driver
433
434L
435Driver Joined Separate
436
437N
438Driver
439
440O
441Common JoinedOrMissing Optimization
442-O<number>	Set optimization level to <number>
443
444Os
445Common Optimization
446Optimize for space rather than speed
447
448Ofast
449Common Optimization
450Optimize for speed disregarding exact standards compliance
451
452Q
453Driver
454
455Qn
456Driver Negative(Qy)
457
458Qy
459Driver Negative(Qn)
460
461R
462Driver Joined Separate
463
464S
465Driver
466
467T
468Driver Joined Separate
469
470Tbss
471Driver Separate
472
473Tbss=
474Driver Joined
475
476Tdata
477Driver Separate
478
479Tdata=
480Driver Joined
481
482Ttext
483Driver Separate
484
485Ttext=
486Driver Joined
487
488W
489Common RejectNegative Warning Alias(Wextra)
490This switch is deprecated; use -Wextra instead
491
492Wa,
493Driver JoinedOrMissing
494
495Wl,
496Driver JoinedOrMissing
497
498Wp,
499Driver JoinedOrMissing
500
501Waggregate-return
502Common Var(warn_aggregate_return) Warning
503Warn about returning structures, unions or arrays
504
505Warray-bounds
506Common Var(warn_array_bounds) Warning
507Warn if an array is accessed out of bounds
508
509Wattributes
510Common Var(warn_attributes) Init(1) Warning
511Warn about inappropriate attribute usage
512
513Wcast-align
514Common Var(warn_cast_align) Warning
515Warn about pointer casts which increase alignment
516
517Wcpp
518Common Var(warn_cpp) Init(1) Warning
519Warn when a #warning directive is encountered
520
521Wdeprecated-declarations
522Common Var(warn_deprecated_decl) Init(1) Warning
523Warn about uses of __attribute__((deprecated)) declarations
524
525Wdisabled-optimization
526Common Var(warn_disabled_optimization) Warning
527Warn when an optimization pass is disabled
528
529Werror
530Common Var(warnings_are_errors)
531Treat all warnings as errors
532
533Werror=
534Common Joined
535Treat specified warning as error
536
537Wextra
538Common Var(extra_warnings) Warning
539Print extra (possibly unwanted) warnings
540
541Wfatal-errors
542Common Var(flag_fatal_errors)
543Exit on the first error occurred
544
545Wframe-larger-than=
546Common RejectNegative Joined UInteger
547-Wframe-larger-than=<number>	Warn if a function's stack frame requires more than <number> bytes
548
549Wfree-nonheap-object
550Common Var(warn_free_nonheap_object) Init(1) Warning
551Warn when attempting to free a non-heap object
552
553Winline
554Common Var(warn_inline) Warning
555Warn when an inlined function cannot be inlined
556
557Winvalid-memory-model
558Common Var(warn_invalid_memory_model) Init(1) Warning
559Warn when an atomic memory model parameter is known to be outside the valid range.
560
561Wlarger-than-
562Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
563
564Wlarger-than=
565Common RejectNegative Joined UInteger Warning
566-Wlarger-than=<number>	Warn if an object is larger than <number> bytes
567
568Wunsafe-loop-optimizations
569Common Var(warn_unsafe_loop_optimizations) Warning
570Warn if the loop cannot be optimized due to nontrivial assumptions.
571
572Wmissing-noreturn
573Common Var(warn_missing_noreturn) Warning
574Warn about functions which might be candidates for __attribute__((noreturn))
575
576Woverflow
577Common Var(warn_overflow) Init(1) Warning
578Warn about overflow in arithmetic expressions
579
580Wpacked
581Common Var(warn_packed) Warning
582Warn when the packed attribute has no effect on struct layout
583
584Wpadded
585Common Var(warn_padded) Warning
586Warn when padding is required to align structure members
587
588Wshadow
589Common Var(warn_shadow) Warning
590Warn when one local variable shadows another
591
592Wstack-protector
593Common Var(warn_stack_protect) Warning
594Warn when not issuing stack smashing protection for some reason
595
596Wstack-usage=
597Common Joined RejectNegative UInteger Var(warn_stack_usage) Init(-1) Warning
598Warn if stack usage might be larger than specified amount
599
600Wstrict-aliasing
601Common Warning
602Warn about code which might break strict aliasing rules
603
604Wstrict-aliasing=
605Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
606Warn about code which might break strict aliasing rules
607
608Wstrict-overflow
609Common Warning
610Warn about optimizations that assume that signed overflow is undefined
611
612Wstrict-overflow=
613Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
614Warn about optimizations that assume that signed overflow is undefined
615
616Wsuggest-attribute=const
617Common Var(warn_suggest_attribute_const) Warning
618Warn about functions which might be candidates for __attribute__((const))
619
620Wsuggest-attribute=pure
621Common Var(warn_suggest_attribute_pure) Warning
622Warn about functions which might be candidates for __attribute__((pure))
623
624Wsuggest-attribute=noreturn
625Common Var(warn_suggest_attribute_noreturn) Warning
626Warn about functions which might be candidates for __attribute__((noreturn))
627
628Wswitch
629Common Var(warn_switch) Warning
630Warn about enumerated switches, with no default, missing a case
631
632Wswitch-default
633Common Var(warn_switch_default) Warning
634Warn about enumerated switches missing a \"default:\" statement
635
636Wswitch-enum
637Common Var(warn_switch_enum) Warning
638Warn about all enumerated switches missing a specific case
639
640Wsystem-headers
641Common Var(warn_system_headers) Warning
642Do not suppress warnings from system headers
643
644Wtrampolines
645Common Var(warn_trampolines) Warning
646Warn whenever a trampoline is generated
647
648Wtype-limits
649Common Var(warn_type_limits) Init(-1) Warning
650Warn if a comparison is always true or always false due to the limited range of the data type
651
652Wuninitialized
653Common Var(warn_uninitialized) Init(-1) Warning
654Warn about uninitialized automatic variables
655
656Wmaybe-uninitialized
657Common Var(warn_maybe_uninitialized) Warning
658Warn about maybe uninitialized automatic variables
659
660Wunreachable-code
661Common Ignore
662Does nothing. Preserved for backward compatibility.
663
664Wunused
665Common Var(warn_unused) Init(0) Warning
666Enable all -Wunused- warnings
667
668Wunused-but-set-parameter
669Common Var(warn_unused_but_set_parameter) Init(-1) Warning
670Warn when a function parameter is only set, otherwise unused
671
672Wunused-but-set-variable
673Common Var(warn_unused_but_set_variable) Init(-1) Warning
674Warn when a variable is only set, otherwise unused
675
676Wunused-function
677Common Var(warn_unused_function) Init(-1) Warning
678Warn when a function is unused
679
680Wunused-label
681Common Var(warn_unused_label) Init(-1) Warning
682Warn when a label is unused
683
684Wunused-parameter
685Common Var(warn_unused_parameter) Init(-1) Warning
686Warn when a function parameter is unused
687
688Wunused-value
689Common Var(warn_unused_value) Init(-1) Warning
690Warn when an expression value is unused
691
692Wunused-variable
693Common Var(warn_unused_variable) Init(-1) Warning
694Warn when a variable is unused
695
696Wcoverage-mismatch
697Common Var(warn_coverage_mismatch) Init(1) Warning
698Warn in case profiles in -fprofile-use do not match
699
700Wvector-operation-performance
701Common Var(warn_vector_operation_performance) Warning
702Warn when a vector operation is compiled outside the SIMD
703
704Xassembler
705Driver Separate
706
707Xlinker
708Driver Separate
709
710Xpreprocessor
711Driver Separate
712
713Z
714Driver
715
716aux-info
717Common Separate Var(aux_info_file_name)
718-aux-info <file>	Emit declaration information into <file>
719
720aux-info=
721Common Joined Alias(aux-info)
722
723auxbase
724Common Separate RejectDriver Var(aux_base_name)
725
726auxbase-strip
727Common Separate RejectDriver
728
729coverage
730Driver
731
732c
733Driver
734
735d
736Common Joined
737-d<letters>	Enable dumps from specific passes of the compiler
738
739dumpbase
740Common Separate Var(dump_base_name)
741-dumpbase <file>	Set the file basename to be used for dumps
742
743dumpdir
744Common Separate Var(dump_dir_name)
745-dumpdir <dir>	Set the directory name to be used for dumps
746
747dumpmachine
748Driver
749
750dumpspecs
751Driver
752
753dumpversion
754Driver
755
756e
757Driver Joined Separate
758
759; This option has historically been passed down to the linker by an
760; accident of a %{e*} spec, so ensure it continues to be passed down
761; as a single option.  The supported option for this purpose is
762; -rdynamic.  See PR 47390.
763export-dynamic
764Driver Undocumented
765
766; The version of the C++ ABI in use.  The following values are allowed:
767;
768; 0: The version of the ABI believed most conformant with the C++ ABI
769;    specification.  This ABI may change as bugs are discovered and fixed.
770;    Therefore, 0 will not necessarily indicate the same ABI in different
771;    versions of G++.
772;
773; 1: The version of the ABI first used in G++ 3.2.
774;
775; 2: The version of the ABI first used in G++ 3.4 (and current default).
776;
777; 3: The version of the ABI that fixes the missing underscore
778;    in template non-type arguments of pointer type.
779;
780; 4: The version of the ABI that introduces unambiguous mangling of
781;    vector types.  First selectable in G++ 4.5.
782;
783; 5: The version of the ABI that ignores attribute const/noreturn
784;    in function pointer mangling, and corrects mangling of decltype and
785;    function parameters used in other parameters and the return type.
786;    First selectable in G++ 4.6.
787;
788; 6: The version of the ABI that doesn't promote scoped enums to int and
789;    changes the mangling of template argument packs, const/static_cast,
790;    prefix ++ and --, and a class scope function used as a template
791;    argument.
792;    First selectable in G++ 4.7.
793;
794; Additional positive integers will be assigned as new versions of
795; the ABI become the default version of the ABI.
796fabi-version=
797Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
798
799falign-functions
800Common Report Var(align_functions,0) Optimization UInteger
801Align the start of functions
802
803falign-functions=
804Common RejectNegative Joined UInteger Var(align_functions)
805
806falign-jumps
807Common Report Var(align_jumps,0) Optimization UInteger
808Align labels which are only reached by jumping
809
810falign-jumps=
811Common RejectNegative Joined UInteger Var(align_jumps)
812
813falign-labels
814Common Report Var(align_labels,0) Optimization UInteger
815Align all labels
816
817falign-labels=
818Common RejectNegative Joined UInteger Var(align_labels)
819
820falign-loops
821Common Report Var(align_loops,0) Optimization UInteger
822Align the start of loops
823
824falign-loops=
825Common RejectNegative Joined UInteger Var(align_loops)
826
827fargument-alias
828Common Ignore
829Does nothing. Preserved for backward compatibility.
830
831fargument-noalias
832Common Ignore
833Does nothing. Preserved for backward compatibility.
834
835fargument-noalias-global
836Common Ignore
837Does nothing. Preserved for backward compatibility.
838
839fargument-noalias-anything
840Common Ignore
841Does nothing. Preserved for backward compatibility.
842
843fasynchronous-unwind-tables
844Common Report Var(flag_asynchronous_unwind_tables) Optimization
845Generate unwind tables that are exact at each instruction boundary
846
847fauto-inc-dec
848Common Report Var(flag_auto_inc_dec) Init(1)
849Generate auto-inc/dec instructions
850
851; -fcheck-bounds causes gcc to generate array bounds checks.
852; For C, C++ and ObjC: defaults off.
853; For Java: defaults to on.
854; For Fortran: defaults to off.
855fbounds-check
856Common Report Var(flag_bounds_check)
857Generate code to check bounds before indexing arrays
858
859fbranch-count-reg
860Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
861Replace add, compare, branch with branch on count register
862
863fbranch-probabilities
864Common Report Var(flag_branch_probabilities) Optimization
865Use profiling information for branch probabilities
866
867fbranch-target-load-optimize
868Common Report Var(flag_branch_target_load_optimize) Optimization
869Perform branch target load optimization before prologue / epilogue threading
870
871fbranch-target-load-optimize2
872Common Report Var(flag_branch_target_load_optimize2) Optimization
873Perform branch target load optimization after prologue / epilogue threading
874
875fbtr-bb-exclusive
876Common Report Var(flag_btr_bb_exclusive) Optimization
877Restrict target load migration not to re-use registers in any basic block
878
879fcall-saved-
880Common Joined RejectNegative Var(common_deferred_options) Defer
881-fcall-saved-<register>	Mark <register> as being preserved across functions
882
883fcall-used-
884Common Joined RejectNegative Var(common_deferred_options) Defer
885-fcall-used-<register>	Mark <register> as being corrupted by function calls
886
887; Nonzero for -fcaller-saves: allocate values in regs that need to
888; be saved across function calls, if that produces overall better code.
889; Optional now, so people can test it.
890fcaller-saves
891Common Report Var(flag_caller_saves) Optimization
892Save registers around function calls
893
894fcheck-data-deps
895Common Report Var(flag_check_data_deps)
896Compare the results of several data dependence analyzers.
897
898fcombine-stack-adjustments
899Common Report Var(flag_combine_stack_adjustments) Optimization
900Looks for opportunities to reduce stack adjustments and stack references.
901
902fcommon
903Common Report Var(flag_no_common,0) Optimization
904Do not put uninitialized globals in the common section
905
906fcompare-debug
907Driver
908; Converted by the driver to -fcompare-debug= options.
909
910fcompare-debug=
911Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
912-fcompare-debug[=<opts>]	Compile with and without e.g. -gtoggle, and compare the final-insns dump
913
914fcompare-debug-second
915Common Driver RejectNegative Var(flag_compare_debug)
916Run only the second compilation of -fcompare-debug
917
918fcompare-elim
919Common Report Var(flag_compare_elim_after_reload) Optimization
920Perform comparison elimination after register allocation has finished
921
922fconserve-stack
923Common Var(flag_conserve_stack) Optimization
924Do not perform optimizations increasing noticeably stack usage
925
926fcprop-registers
927Common Report Var(flag_cprop_registers) Optimization
928Perform a register copy-propagation optimization pass
929
930fcrossjumping
931Common Report Var(flag_crossjumping) Optimization
932Perform cross-jumping optimization
933
934fcse-follow-jumps
935Common Report Var(flag_cse_follow_jumps) Optimization
936When running CSE, follow jumps to their targets
937
938fcse-skip-blocks
939Common Ignore
940Does nothing.  Preserved for backward compatibility.
941
942fcx-limited-range
943Common Report Var(flag_cx_limited_range) Optimization SetByCombined
944Omit range reduction step when performing complex division
945
946fcx-fortran-rules
947Common Report Var(flag_cx_fortran_rules) Optimization
948Complex multiplication and division follow Fortran rules
949
950fdata-sections
951Common Report Var(flag_data_sections) Optimization
952Place data items into their own section
953
954fdbg-cnt-list
955Common Report Var(common_deferred_options) Defer
956List all available debugging counters with their limits and counts.
957
958fdbg-cnt=
959Common RejectNegative Joined Var(common_deferred_options) Defer
960-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]	Set the debug counter limit.
961
962fdebug-prefix-map=
963Common Joined RejectNegative Var(common_deferred_options) Defer
964Map one directory name to another in debug information
965
966fdebug-types-section
967Common Report Var(flag_debug_types_section) Init(1)
968Output .debug_types section when using DWARF v4 debuginfo.
969
970; Nonzero for -fdefer-pop: don't pop args after each function call
971; instead save them up to pop many calls' args with one insns.
972fdefer-pop
973Common Report Var(flag_defer_pop) Optimization
974Defer popping functions args from stack until later
975
976fdelayed-branch
977Common Report Var(flag_delayed_branch) Optimization
978Attempt to fill delay slots of branch instructions
979
980fdelete-null-pointer-checks
981Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
982Delete useless null pointer checks
983
984fdevirtualize
985Common Report Var(flag_devirtualize) Optimization
986Try to convert virtual calls to direct ones.
987
988fdiagnostics-show-location=
989Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
990-fdiagnostics-show-location=[once|every-line]	How often to emit source location at the beginning of line-wrapped diagnostics
991
992; Required for these enum values.
993SourceInclude
994pretty-print.h
995
996Enum
997Name(diagnostic_prefixing_rule) Type(int)
998
999EnumValue
1000Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1001
1002EnumValue
1003Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1004
1005fdiagnostics-show-option
1006Common Var(flag_diagnostics_show_option) Init(1)
1007Amend appropriate diagnostic messages with the command line option that controls them
1008
1009fdisable-
1010Common Joined RejectNegative Var(common_deferred_options) Defer
1011-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass
1012
1013fenable-
1014Common Joined RejectNegative Var(common_deferred_options) Defer
1015-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass
1016
1017fdump-
1018Common Joined RejectNegative Var(common_deferred_options) Defer
1019-fdump-<type>	Dump various compiler internals to a file
1020
1021fdump-final-insns
1022Driver RejectNegative
1023
1024fdump-final-insns=
1025Common RejectNegative Joined Var(flag_dump_final_insns)
1026-fdump-final-insns=filename	Dump to filename the insns at the end of translation
1027
1028fdump-go-spec=
1029Common RejectNegative Joined Var(flag_dump_go_spec)
1030-fdump-go-spec=filename	Write all declarations to file as Go code
1031
1032fdump-noaddr
1033Common Report Var(flag_dump_noaddr)
1034Suppress output of addresses in debugging dumps
1035
1036fdump-passes
1037Common Var(flag_dump_passes) Init(0)
1038Dump optimization passes
1039
1040fdump-unnumbered
1041Common Report Var(flag_dump_unnumbered)
1042Suppress output of instruction numbers, line number notes and addresses in debugging dumps
1043
1044fdump-unnumbered-links
1045Common Report Var(flag_dump_unnumbered_links)
1046Suppress output of previous and next insn numbers in debugging dumps
1047
1048fdwarf2-cfi-asm
1049Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1050Enable CFI tables via GAS assembler directives.
1051
1052fearly-inlining
1053Common Report Var(flag_early_inlining) Init(1) Optimization
1054Perform early inlining
1055
1056feliminate-dwarf2-dups
1057Common Report Var(flag_eliminate_dwarf2_dups)
1058Perform DWARF2 duplicate elimination
1059
1060fipa-sra
1061Common Report Var(flag_ipa_sra) Init(0) Optimization
1062Perform interprocedural reduction of aggregates
1063
1064feliminate-unused-debug-symbols
1065Common Report Var(flag_debug_only_used_symbols)
1066Perform unused type elimination in debug info
1067
1068feliminate-unused-debug-types
1069Common Report Var(flag_eliminate_unused_debug_types) Init(1)
1070Perform unused type elimination in debug info
1071
1072femit-class-debug-always
1073Common Report Var(flag_emit_class_debug_always) Init(0)
1074Do not suppress C++ class debug information.
1075
1076fexceptions
1077Common Report Var(flag_exceptions) Optimization
1078Enable exception handling
1079
1080fexpensive-optimizations
1081Common Report Var(flag_expensive_optimizations) Optimization
1082Perform a number of minor, expensive optimizations
1083
1084fexcess-precision=
1085Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT)
1086-fexcess-precision=[fast|standard]	Specify handling of excess floating-point precision
1087
1088Enum
1089Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1090
1091EnumValue
1092Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1093
1094EnumValue
1095Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1096
1097ffast-math
1098Common
1099
1100ffat-lto-objects
1101Common Var(flag_fat_lto_objects) Init(1)
1102Output lto objects containing both the intermediate language and binary output.
1103
1104ffinite-math-only
1105Common Report Var(flag_finite_math_only) Optimization SetByCombined
1106Assume no NaNs or infinities are generated
1107
1108ffixed-
1109Common Joined RejectNegative Var(common_deferred_options) Defer
1110-ffixed-<register>	Mark <register> as being unavailable to the compiler
1111
1112ffloat-store
1113Common Report Var(flag_float_store) Optimization
1114Don't allocate floats and doubles in extended-precision registers
1115
1116fforce-addr
1117Common Ignore
1118Does nothing.  Preserved for backward compatibility.
1119
1120fforward-propagate
1121Common Report Var(flag_forward_propagate) Optimization
1122Perform a forward propagation pass on RTL
1123
1124ffp-contract=
1125Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST)
1126-ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1127
1128Enum
1129Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1130
1131EnumValue
1132Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1133
1134; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1135EnumValue
1136Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1137
1138EnumValue
1139Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1140
1141; Nonzero means don't put addresses of constant functions in registers.
1142; Used for compiling the Unix kernel, where strange substitutions are
1143; done on the assembly output.
1144ffunction-cse
1145Common Report Var(flag_no_function_cse,0)
1146Allow function addresses to be held in registers
1147
1148ffunction-sections
1149Common Report Var(flag_function_sections)
1150Place each function into its own section
1151
1152fgcse
1153Common Report Var(flag_gcse) Optimization
1154Perform global common subexpression elimination
1155
1156fgcse-lm
1157Common Report Var(flag_gcse_lm) Init(1) Optimization
1158Perform enhanced load motion during global common subexpression elimination
1159
1160fgcse-sm
1161Common Report Var(flag_gcse_sm) Init(0) Optimization
1162Perform store motion after global common subexpression elimination
1163
1164fgcse-las
1165Common Report Var(flag_gcse_las) Init(0) Optimization
1166Perform redundant load after store elimination in global common subexpression
1167elimination
1168
1169fgcse-after-reload
1170Common Report Var(flag_gcse_after_reload) Optimization
1171Perform global common subexpression elimination after register allocation
1172has finished
1173
1174; This option is not documented yet as its semantics will change.
1175fgraphite
1176Common Report Var(flag_graphite)
1177Enable in and out of Graphite representation
1178
1179fgraphite-identity
1180Common Report Var(flag_graphite_identity) Optimization
1181Enable Graphite Identity transformation
1182
1183floop-parallelize-all
1184Common Report Var(flag_loop_parallelize_all) Optimization
1185Mark all loops as parallel
1186
1187floop-strip-mine
1188Common Report Var(flag_loop_strip_mine) Optimization
1189Enable Loop Strip Mining transformation
1190
1191floop-interchange
1192Common Report Var(flag_loop_interchange) Optimization
1193Enable Loop Interchange transformation
1194
1195floop-block
1196Common Report Var(flag_loop_block) Optimization
1197Enable Loop Blocking transformation
1198
1199fgnu-tm
1200Common Report Var(flag_tm)
1201Enable support for GNU transactional memory
1202
1203floop-flatten
1204Common Report Var(flag_loop_flatten) Optimization
1205Enable Loop Flattening transformation
1206
1207fstrict-volatile-bitfields
1208Common Report Var(flag_strict_volatile_bitfields) Init(-1)
1209Force bitfield accesses to match their type width
1210
1211fguess-branch-probability
1212Common Report Var(flag_guess_branch_prob) Optimization
1213Enable guessing of branch probabilities
1214
1215; Nonzero means ignore `#ident' directives.  0 means handle them.
1216; Generate position-independent code for executables if possible
1217; On SVR4 targets, it also controls whether or not to emit a
1218; string identifying the compiler.
1219fident
1220Common Report Var(flag_no_ident,0)
1221Process #ident directives
1222
1223fif-conversion
1224Common Report Var(flag_if_conversion) Optimization
1225Perform conversion of conditional jumps to branchless equivalents
1226
1227fif-conversion2
1228Common Report Var(flag_if_conversion2) Optimization
1229Perform conversion of conditional jumps to conditional execution
1230
1231ftree-loop-if-convert
1232Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
1233Convert conditional jumps in innermost loops to branchless equivalents
1234
1235ftree-loop-if-convert-stores
1236Common Report Var(flag_tree_loop_if_convert_stores) Optimization
1237Also if-convert conditional jumps containing memory writes
1238
1239; -finhibit-size-directive inhibits output of .size for ELF.
1240; This is used only for compiling crtstuff.c,
1241; and it may be extended to other effects
1242; needed for crtstuff.c on other systems.
1243finhibit-size-directive
1244Common Report Var(flag_inhibit_size_directive)
1245Do not generate .size directives
1246
1247findirect-inlining
1248Common Report Var(flag_indirect_inlining)
1249Perform indirect inlining
1250
1251; General flag to enable inlining.  Specifying -fno-inline will disable
1252; all inlining apart from always-inline functions.
1253finline
1254Common Report Var(flag_no_inline,0) Init(0)
1255Enable inlining of function declared \"inline\", disabling disables all inlining
1256
1257finline-small-functions
1258Common Report Var(flag_inline_small_functions) Optimization
1259Integrate functions into their callers when code size is known not to grow
1260
1261finline-functions
1262Common Report Var(flag_inline_functions) Optimization
1263Integrate functions not declared \"inline\" into their callers when profitable
1264
1265finline-functions-called-once
1266Common Report Var(flag_inline_functions_called_once) Optimization
1267Integrate functions only required by their single caller
1268
1269finline-limit-
1270Common RejectNegative Joined Alias(finline-limit=)
1271
1272finline-limit=
1273Common RejectNegative Joined UInteger
1274-finline-limit=<number>	Limit the size of inlined functions to <number>
1275
1276finline-atomics
1277Common Report Var(flag_inline_atomics) Init(1) Optimization
1278Inline __atomic operations when a lock free instruction sequence is available.
1279
1280finstrument-functions
1281Common Report Var(flag_instrument_function_entry_exit)
1282Instrument function entry and exit with profiling calls
1283
1284finstrument-functions-exclude-function-list=
1285Common RejectNegative Joined
1286-finstrument-functions-exclude-function-list=name,...  Do not instrument listed functions
1287
1288finstrument-functions-exclude-file-list=
1289Common RejectNegative Joined
1290-finstrument-functions-exclude-file-list=filename,...  Do not instrument functions listed in files
1291
1292fipa-cp
1293Common Report Var(flag_ipa_cp) Optimization
1294Perform Interprocedural constant propagation
1295
1296fipa-cp-clone
1297Common Report Var(flag_ipa_cp_clone) Optimization
1298Perform cloning to make Interprocedural constant propagation stronger
1299
1300fipa-profile
1301Common Report Var(flag_ipa_profile) Init(0) Optimization
1302Perform interprocedural profile propagation
1303
1304fipa-pta
1305Common Report Var(flag_ipa_pta) Init(0) Optimization
1306Perform interprocedural points-to analysis
1307
1308fipa-pure-const
1309Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1310Discover pure and const functions
1311
1312fipa-reference
1313Common Report Var(flag_ipa_reference) Init(0) Optimization
1314Discover readonly and non addressable static variables
1315
1316fipa-matrix-reorg
1317Common Report Var(flag_ipa_matrix_reorg) Optimization
1318Perform matrix layout flattening and transposing based
1319on profiling information.
1320
1321fipa-struct-reorg
1322Common Ignore
1323Does nothing. Preserved for backward compatibility.
1324
1325fira-algorithm=
1326Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB)
1327-fira-algorithm=[CB|priority] Set the used IRA algorithm
1328
1329Enum
1330Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1331
1332EnumValue
1333Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1334
1335EnumValue
1336Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1337
1338fira-region=
1339Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT)
1340-fira-region=[one|all|mixed] Set regions for IRA
1341
1342Enum
1343Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1344
1345EnumValue
1346Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1347
1348EnumValue
1349Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1350
1351EnumValue
1352Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1353
1354fira-loop-pressure
1355Common Report Var(flag_ira_loop_pressure)
1356Use IRA based register pressure calculation
1357in RTL loop optimizations.
1358
1359fira-share-save-slots
1360Common Report Var(flag_ira_share_save_slots) Init(1)
1361Share slots for saving different hard registers.
1362
1363fira-share-spill-slots
1364Common Report Var(flag_ira_share_spill_slots) Init(1)
1365Share stack slots for spilled pseudo-registers.
1366
1367fira-verbose=
1368Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1369-fira-verbose=<number>	Control IRA's level of diagnostic messages.
1370
1371fivopts
1372Common Report Var(flag_ivopts) Init(1) Optimization
1373Optimize induction variables on trees
1374
1375fjump-tables
1376Common Var(flag_jump_tables) Init(1) Optimization
1377Use jump tables for sufficiently large switch statements
1378
1379fkeep-inline-functions
1380Common Report Var(flag_keep_inline_functions)
1381Generate code for functions even if they are fully inlined
1382
1383fkeep-static-consts
1384Common Report Var(flag_keep_static_consts) Init(1)
1385Emit static const variables even if they are not used
1386
1387fleading-underscore
1388Common Report Var(flag_leading_underscore) Init(-1)
1389Give external symbols a leading underscore
1390
1391floop-optimize
1392Common Ignore
1393Does nothing.  Preserved for backward compatibility.
1394
1395flto
1396Common
1397Enable link-time optimization.
1398
1399flto=
1400Common RejectNegative Joined Var(flag_lto)
1401Link-time optimization with number of parallel jobs or jobserver.
1402
1403flto-partition=1to1
1404Common Var(flag_lto_partition_1to1)
1405Partition functions and vars at linktime based on object files they originate from
1406
1407flto-partition=balanced
1408Common Var(flag_lto_partition_balanced)
1409Partition functions and vars at linktime into approximately same sized buckets
1410
1411flto-partition=none
1412Common Var(flag_lto_partition_none)
1413Disable partioning and streaming
1414
1415; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1416flto-compression-level=
1417Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
1418-flto-compression-level=<number>	Use zlib compression level <number> for IL
1419
1420flto-report
1421Common Report Var(flag_lto_report) Init(0)
1422Report various link-time optimization statistics
1423
1424fmath-errno
1425Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
1426Set errno after built-in math functions
1427
1428fmax-errors=
1429Common Joined RejectNegative UInteger Var(flag_max_errors)
1430-fmax-errors=<number>	Maximum number of errors to report
1431
1432fmem-report
1433Common Report Var(mem_report)
1434Report on permanent memory allocation
1435
1436; This will attempt to merge constant section constants, if 1 only
1437; string constants and constants from constant pool, if 2 also constant
1438; variables.
1439fmerge-all-constants
1440Common Report Var(flag_merge_constants,2) Init(1) Optimization
1441Attempt to merge identical constants and constant variables
1442
1443fmerge-constants
1444Common Report Var(flag_merge_constants,1) Optimization
1445Attempt to merge identical constants across compilation units
1446
1447fmerge-debug-strings
1448Common Report Var(flag_merge_debug_strings) Init(1)
1449Attempt to merge identical debug strings across compilation units
1450
1451fmessage-length=
1452Common RejectNegative Joined UInteger
1453-fmessage-length=<number>	Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
1454
1455fmodulo-sched
1456Common Report Var(flag_modulo_sched) Optimization
1457Perform SMS based modulo scheduling before the first scheduling pass
1458
1459fmodulo-sched-allow-regmoves
1460Common Report Var(flag_modulo_sched_allow_regmoves)
1461Perform SMS based modulo scheduling with register moves allowed
1462
1463fmove-loop-invariants
1464Common Report Var(flag_move_loop_invariants) Init(1) Optimization
1465Move loop invariant computations out of loops
1466
1467fdce
1468Common Var(flag_dce) Init(1) Optimization
1469Use the RTL dead code elimination pass
1470
1471fdse
1472Common Var(flag_dse) Init(1) Optimization
1473Use the RTL dead store elimination pass
1474
1475freschedule-modulo-scheduled-loops
1476Common Report Var(flag_resched_modulo_sched) Optimization
1477Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
1478
1479fnon-call-exceptions
1480Common Report Var(flag_non_call_exceptions) Optimization
1481Support synchronous non-call exceptions
1482
1483fomit-frame-pointer
1484Common Report Var(flag_omit_frame_pointer) Optimization
1485When possible do not generate stack frames
1486
1487foptimize-register-move
1488Common Report Var(flag_regmove) Optimization
1489Do the full register move optimization pass
1490
1491foptimize-sibling-calls
1492Common Report Var(flag_optimize_sibling_calls) Optimization
1493Optimize sibling and tail recursive calls
1494
1495fpartial-inlining
1496Common Report Var(flag_partial_inlining)
1497Perform partial inlining
1498
1499fpre-ipa-mem-report
1500Common Report Var(pre_ipa_mem_report)
1501Report on memory allocation before interprocedural optimization
1502
1503fpost-ipa-mem-report
1504Common Report Var(post_ipa_mem_report)
1505Report on memory allocation before interprocedural optimization
1506
1507fpack-struct
1508Common Report Var(flag_pack_struct) Optimization
1509Pack structure members together without holes
1510
1511fpack-struct=
1512Common RejectNegative Joined UInteger Optimization
1513-fpack-struct=<number>	Set initial maximum structure member alignment
1514
1515fpcc-struct-return
1516Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
1517Return small aggregates in memory, not registers
1518
1519fpeel-loops
1520Common Report Var(flag_peel_loops) Optimization
1521Perform loop peeling
1522
1523fpeephole
1524Common Report Var(flag_no_peephole,0) Optimization
1525Enable machine specific peephole optimizations
1526
1527fpeephole2
1528Common Report Var(flag_peephole2) Optimization
1529Enable an RTL peephole pass before sched2
1530
1531fPIC
1532Common Report Var(flag_pic,2)
1533Generate position-independent code if possible (large mode)
1534
1535fPIE
1536Common Report Var(flag_pie,2)
1537Generate position-independent code for executables if possible (large mode)
1538
1539fpic
1540Common Report Var(flag_pic,1)
1541Generate position-independent code if possible (small mode)
1542
1543fpie
1544Common Report Var(flag_pie,1)
1545Generate position-independent code for executables if possible (small mode)
1546
1547fplugin=
1548Common Joined RejectNegative Var(common_deferred_options) Defer
1549Specify a plugin to load
1550
1551fplugin-arg-
1552Common Joined RejectNegative Var(common_deferred_options) Defer
1553-fplugin-arg-<name>-<key>[=<value>]	Specify argument <key>=<value> for plugin <name>
1554
1555fpredictive-commoning
1556Common Report Var(flag_predictive_commoning) Optimization
1557Run predictive commoning optimization.
1558
1559fprefetch-loop-arrays
1560Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1561Generate prefetch instructions, if available, for arrays in loops
1562
1563fprofile
1564Common Report Var(profile_flag)
1565Enable basic program profiling code
1566
1567fprofile-arcs
1568Common Report Var(profile_arc_flag)
1569Insert arc-based program profiling code
1570
1571fprofile-dir=
1572Common Joined RejectNegative Var(profile_data_prefix)
1573Set the top-level directory for storing the profile data.
1574The default is 'pwd'.
1575
1576fprofile-correction
1577Common Report Var(flag_profile_correction)
1578Enable correction of flow inconsistent profile data input
1579
1580fprofile-generate
1581Common
1582Enable common options for generating profile info for profile feedback directed optimizations
1583
1584fprofile-generate=
1585Common Joined RejectNegative
1586Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1587
1588fprofile-use
1589Common Var(flag_profile_use)
1590Enable common options for performing profile feedback directed optimizations
1591
1592fprofile-use=
1593Common Joined RejectNegative
1594Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1595
1596fprofile-values
1597Common Report Var(flag_profile_values)
1598Insert code to profile values of expressions
1599
1600frandom-seed
1601Common Var(common_deferred_options) Defer
1602
1603frandom-seed=
1604Common Joined RejectNegative Var(common_deferred_options) Defer
1605-frandom-seed=<string>	Make compile reproducible using <string>
1606
1607; This switch causes the command line that was used to create an
1608; object file to be recorded into the object file.  The exact format
1609; of this recording is target and binary file format dependent.
1610; It is related to the -fverbose-asm switch, but that switch only
1611; records information in the assembler output file as comments, so
1612; they never reach the object file.
1613frecord-gcc-switches
1614Common Report Var(flag_record_gcc_switches)
1615Record gcc command line switches in the object file.
1616
1617freg-struct-return
1618Common Report Var(flag_pcc_struct_return,0) Optimization
1619Return small aggregates in registers
1620
1621fregmove
1622Common Report Var(flag_regmove) Optimization
1623Enables a register move optimization
1624
1625frename-registers
1626Common Report Var(flag_rename_registers) Init(2) Optimization
1627Perform a register renaming optimization pass
1628
1629freorder-blocks
1630Common Report Var(flag_reorder_blocks) Optimization
1631Reorder basic blocks to improve code placement
1632
1633freorder-blocks-and-partition
1634Common Report Var(flag_reorder_blocks_and_partition) Optimization
1635Reorder basic blocks and partition into hot and cold sections
1636
1637freorder-functions
1638Common Report Var(flag_reorder_functions) Optimization
1639Reorder functions to improve code placement
1640
1641frerun-cse-after-loop
1642Common Report Var(flag_rerun_cse_after_loop) Optimization
1643Add a common subexpression elimination pass after loop optimizations
1644
1645frerun-loop-opt
1646Common Ignore
1647Does nothing.  Preserved for backward compatibility.
1648
1649frounding-math
1650Common Report Var(flag_rounding_math) Optimization SetByCombined
1651Disable optimizations that assume default FP rounding behavior
1652
1653fsched-interblock
1654Common Report Var(flag_schedule_interblock) Init(1) Optimization
1655Enable scheduling across basic blocks
1656
1657fsched-pressure
1658Common Report Var(flag_sched_pressure) Init(0) Optimization
1659Enable register pressure sensitive insn scheduling
1660
1661fsched-spec
1662Common Report Var(flag_schedule_speculative) Init(1) Optimization
1663Allow speculative motion of non-loads
1664
1665fsched-spec-load
1666Common Report Var(flag_schedule_speculative_load) Optimization
1667Allow speculative motion of some loads
1668
1669fsched-spec-load-dangerous
1670Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1671Allow speculative motion of more loads
1672
1673fsched-verbose=
1674Common RejectNegative Joined UInteger Var(sched_verbose_param)
1675-fsched-verbose=<number>	Set the verbosity level of the scheduler
1676
1677fsched2-use-superblocks
1678Common Report Var(flag_sched2_use_superblocks) Optimization
1679If scheduling post reload, do superblock scheduling
1680
1681fsched2-use-traces
1682Common Ignore
1683Does nothing.  Preserved for backward compatibility.
1684
1685fschedule-insns
1686Common Report Var(flag_schedule_insns) Optimization
1687Reschedule instructions before register allocation
1688
1689fschedule-insns2
1690Common Report Var(flag_schedule_insns_after_reload) Optimization
1691Reschedule instructions after register allocation
1692
1693; This flag should be on when a target implements non-trivial
1694; scheduling hooks, maybe saving some information for its own sake.
1695; On IA64, for example, this is used for correct bundling.
1696fselective-scheduling
1697Common Report Var(flag_selective_scheduling) Optimization
1698Schedule instructions using selective scheduling algorithm
1699
1700fselective-scheduling2
1701Common Report Var(flag_selective_scheduling2) Optimization
1702Run selective scheduling after reload
1703
1704fsel-sched-pipelining
1705Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1706Perform software pipelining of inner loops during selective scheduling
1707
1708fsel-sched-pipelining-outer-loops
1709Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1710Perform software pipelining of outer loops during selective scheduling
1711
1712fsel-sched-reschedule-pipelined
1713Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1714Reschedule pipelined regions without pipelining
1715
1716; sched_stalled_insns means that insns can be moved prematurely from the queue
1717; of stalled insns into the ready list.
1718fsched-stalled-insns
1719Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1720Allow premature scheduling of queued insns
1721
1722fsched-stalled-insns=
1723Common RejectNegative Joined UInteger
1724-fsched-stalled-insns=<number>	Set number of queued insns that can be prematurely scheduled
1725
1726; sched_stalled_insns_dep controls how many recently scheduled cycles will
1727; be examined for a dependency on a stalled insn that is candidate for
1728; premature removal from the queue of stalled insns into the ready list (has
1729; an effect only if the flag 'sched_stalled_insns' is set).
1730fsched-stalled-insns-dep
1731Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1732Set dependence distance checking in premature scheduling of queued insns
1733
1734fsched-stalled-insns-dep=
1735Common RejectNegative Joined UInteger
1736-fsched-stalled-insns-dep=<number>	Set dependence distance checking in premature scheduling of queued insns
1737
1738fsched-group-heuristic
1739Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1740Enable the group heuristic in the scheduler
1741
1742fsched-critical-path-heuristic
1743Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1744Enable the critical path heuristic in the scheduler
1745
1746fsched-spec-insn-heuristic
1747Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1748Enable the speculative instruction heuristic in the scheduler
1749
1750fsched-rank-heuristic
1751Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1752Enable the rank heuristic in the scheduler
1753
1754fsched-last-insn-heuristic
1755Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1756Enable the last instruction heuristic in the scheduler
1757
1758fsched-dep-count-heuristic
1759Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1760Enable the dependent count heuristic in the scheduler
1761
1762fsection-anchors
1763Common Report Var(flag_section_anchors) Optimization
1764Access data in the same section from shared anchor points
1765
1766fsee
1767Common Ignore
1768Does nothing.  Preserved for backward compatibility.
1769
1770fzee
1771Common Ignore
1772Does nothing.  Preserved for backward compatibility.
1773
1774free
1775Common Report Var(flag_ree) Init(0)
1776Turn on Redundant Extensions Elimination pass.
1777
1778fshow-column
1779Common Report Var(flag_show_column) Init(1)
1780Show column numbers in diagnostics, when available.  Default on
1781
1782fshrink-wrap
1783Common Report Var(flag_shrink_wrap) Optimization
1784Emit function prologues only before parts of the function that need it,
1785rather than at the top of the function.
1786
1787fsignaling-nans
1788Common Report Var(flag_signaling_nans) Optimization SetByCombined
1789Disable optimizations observable by IEEE signaling NaNs
1790
1791fsigned-zeros
1792Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
1793Disable floating point optimizations that ignore the IEEE signedness of zero
1794
1795fsingle-precision-constant
1796Common Report Var(flag_single_precision_constant) Optimization
1797Convert floating point constants to single precision constants
1798
1799fsplit-ivs-in-unroller
1800Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1801Split lifetimes of induction variables when loops are unrolled
1802
1803fsplit-stack
1804Common Report Var(flag_split_stack) Init(-1)
1805Generate discontiguous stack frames
1806
1807fsplit-wide-types
1808Common Report Var(flag_split_wide_types) Optimization
1809Split wide types into independent registers
1810
1811fvariable-expansion-in-unroller
1812Common Report Var(flag_variable_expansion_in_unroller) Optimization
1813Apply variable expansion when loops are unrolled
1814
1815fstack-check=
1816Common Report RejectNegative Joined
1817-fstack-check=[no|generic|specific]	Insert stack checking code into the program
1818
1819fstack-check
1820Common Alias(fstack-check=, specific, no)
1821Insert stack checking code into the program.  Same as -fstack-check=specific
1822
1823fstack-limit
1824Common Var(common_deferred_options) Defer
1825
1826fstack-limit-register=
1827Common RejectNegative Joined Var(common_deferred_options) Defer
1828-fstack-limit-register=<register>	Trap if the stack goes past <register>
1829
1830fstack-limit-symbol=
1831Common RejectNegative Joined Var(common_deferred_options) Defer
1832-fstack-limit-symbol=<name>	Trap if the stack goes past symbol <name>
1833
1834fstack-protector
1835Common Report Var(flag_stack_protect, 1)
1836Use propolice as a stack protection method
1837
1838fstack-protector-all
1839Common Report RejectNegative Var(flag_stack_protect, 2)
1840Use a stack protection method for every function
1841
1842fstack-usage
1843Common RejectNegative Var(flag_stack_usage)
1844Output stack usage information on a per-function basis
1845
1846fstrength-reduce
1847Common Ignore
1848Does nothing.  Preserved for backward compatibility.
1849
1850; Nonzero if we should do (language-dependent) alias analysis.
1851; Typically, this analysis will assume that expressions of certain
1852; types do not alias expressions of certain other types.  Only used
1853; if alias analysis (in general) is enabled.
1854fstrict-aliasing
1855Common Report Var(flag_strict_aliasing) Optimization
1856Assume strict aliasing rules apply
1857
1858fstrict-overflow
1859Common Report Var(flag_strict_overflow)
1860Treat signed overflow as undefined
1861
1862fsyntax-only
1863Common Report Var(flag_syntax_only)
1864Check for syntax errors, then stop
1865
1866ftest-coverage
1867Common Report Var(flag_test_coverage)
1868Create data files needed by \"gcov\"
1869
1870fthread-jumps
1871Common Report Var(flag_thread_jumps) Optimization
1872Perform jump threading optimizations
1873
1874ftime-report
1875Common Report Var(time_report)
1876Report the time taken by each compiler pass
1877
1878ftls-model=
1879Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
1880-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]	Set the default thread-local storage code generation model
1881
1882Enum
1883Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
1884
1885EnumValue
1886Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
1887
1888EnumValue
1889Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
1890
1891EnumValue
1892Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
1893
1894EnumValue
1895Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
1896
1897ftoplevel-reorder
1898Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1899Reorder top level functions, variables, and asms
1900
1901ftracer
1902Common Report Var(flag_tracer)
1903Perform superblock formation via tail duplication
1904
1905; Zero means that floating-point math operations cannot generate a
1906; (user-visible) trap.  This is the case, for example, in nonstop
1907; IEEE 754 arithmetic.
1908ftrapping-math
1909Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
1910Assume floating-point operations can trap
1911
1912ftrapv
1913Common Report Var(flag_trapv) Optimization
1914Trap for signed overflow in addition, subtraction and multiplication
1915
1916ftree-ccp
1917Common Report Var(flag_tree_ccp) Optimization
1918Enable SSA-CCP optimization on trees
1919
1920ftree-bit-ccp
1921Common Report Var(flag_tree_bit_ccp) Optimization
1922Enable SSA-BIT-CCP optimization on trees
1923
1924ftree-store-ccp
1925Common Ignore
1926Does nothing.  Preserved for backward compatibility.
1927
1928ftree-ch
1929Common Report Var(flag_tree_ch) Optimization
1930Enable loop header copying on trees
1931
1932ftree-copyrename
1933Common Report Var(flag_tree_copyrename) Optimization
1934Replace SSA temporaries with better names in copies
1935
1936ftree-copy-prop
1937Common Report Var(flag_tree_copy_prop) Optimization
1938Enable copy propagation on trees
1939
1940ftree-store-copy-prop
1941Common Ignore
1942Does nothing.  Preserved for backward compatibility.
1943
1944ftree-cselim
1945Common Report Var(flag_tree_cselim) Init(2) Optimization
1946Transform condition stores into unconditional ones
1947
1948ftree-switch-conversion
1949Common Report Var(flag_tree_switch_conversion) Optimization
1950Perform conversions of switch initializations.
1951
1952ftree-dce
1953Common Report Var(flag_tree_dce) Optimization
1954Enable SSA dead code elimination optimization on trees
1955
1956ftree-dominator-opts
1957Common Report Var(flag_tree_dom) Optimization
1958Enable dominator optimizations
1959
1960ftree-tail-merge
1961Common Report Var(flag_tree_tail_merge) Optimization
1962Enable tail merging on trees
1963
1964ftree-dse
1965Common Report Var(flag_tree_dse) Optimization
1966Enable dead store elimination
1967
1968ftree-forwprop
1969Common Report Var(flag_tree_forwprop) Init(1) Optimization
1970Enable forward propagation on trees
1971
1972ftree-fre
1973Common Report Var(flag_tree_fre) Optimization
1974Enable Full Redundancy Elimination (FRE) on trees
1975
1976foptimize-strlen
1977Common Report Var(flag_optimize_strlen) Optimization
1978Enable string length optimizations on trees
1979
1980ftree-loop-distribution
1981Common Report Var(flag_tree_loop_distribution) Optimization
1982Enable loop distribution on trees
1983
1984ftree-loop-distribute-patterns
1985Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1986Enable loop distribution for patterns transformed into a library call
1987
1988ftree-loop-im
1989Common Report Var(flag_tree_loop_im) Init(1) Optimization
1990Enable loop invariant motion on trees
1991
1992ftree-loop-linear
1993Common Alias(floop-interchange)
1994Enable loop interchange transforms.  Same as -floop-interchange
1995
1996ftree-loop-ivcanon
1997Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1998Create canonical induction variables in loops
1999
2000ftree-loop-optimize
2001Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
2002Enable loop optimizations on tree level
2003
2004ftree-parallelize-loops=
2005Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
2006Enable automatic parallelization of loops
2007
2008ftree-phiprop
2009Common Report Var(flag_tree_phiprop) Init(1) Optimization
2010Enable hoisting loads from conditional pointers.
2011
2012ftree-pre
2013Common Report Var(flag_tree_pre) Optimization
2014Enable SSA-PRE optimization on trees
2015
2016ftree-pta
2017Common Report Var(flag_tree_pta) Init(1) Optimization
2018Perform function-local points-to analysis on trees.
2019
2020ftree-reassoc
2021Common Report Var(flag_tree_reassoc) Init(1) Optimization
2022Enable reassociation on tree level
2023
2024ftree-salias
2025Common Ignore
2026Does nothing.  Preserved for backward compatibility.
2027
2028ftree-sink
2029Common Report Var(flag_tree_sink) Optimization
2030Enable SSA code sinking on trees
2031
2032ftree-sra
2033Common Report Var(flag_tree_sra) Optimization
2034Perform scalar replacement of aggregates
2035
2036ftree-ter
2037Common Report Var(flag_tree_ter) Optimization
2038Replace temporary expressions in the SSA->normal pass
2039
2040ftree-lrs
2041Common Report Var(flag_tree_live_range_split) Optimization
2042Perform live range splitting during the SSA->normal pass
2043
2044ftree-vrp
2045Common Report Var(flag_tree_vrp) Init(0) Optimization
2046Perform Value Range Propagation on trees
2047
2048funit-at-a-time
2049Common Report Var(flag_unit_at_a_time) Init(1) Optimization
2050Compile whole compilation unit at a time
2051
2052funroll-loops
2053Common Report Var(flag_unroll_loops) Optimization
2054Perform loop unrolling when iteration count is known
2055
2056funroll-all-loops
2057Common Report Var(flag_unroll_all_loops) Optimization
2058Perform loop unrolling for all loops
2059
2060; Nonzero means that loop optimizer may assume that the induction variables
2061; that control loops do not overflow and that the loops with nontrivial
2062; exit condition are not infinite
2063funsafe-loop-optimizations
2064Common Report Var(flag_unsafe_loop_optimizations) Optimization
2065Allow loop optimizations to assume that the loops behave in normal way
2066
2067fassociative-math
2068Common Report Var(flag_associative_math) SetByCombined
2069Allow optimization for floating-point arithmetic which may change the
2070result of the operation due to rounding.
2071
2072freciprocal-math
2073Common Report Var(flag_reciprocal_math) SetByCombined
2074Same as -fassociative-math for expressions which include division.
2075
2076; Nonzero means that unsafe floating-point math optimizations are allowed
2077; for the sake of speed.  IEEE compliance is not guaranteed, and operations
2078; are allowed to assume that their arguments and results are "normal"
2079; (e.g., nonnegative for SQRT).
2080funsafe-math-optimizations
2081Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
2082Allow math optimizations that may violate IEEE or ISO standards
2083
2084funswitch-loops
2085Common Report Var(flag_unswitch_loops) Optimization
2086Perform loop unswitching
2087
2088funwind-tables
2089Common Report Var(flag_unwind_tables) Optimization
2090Just generate unwind tables for exception handling
2091
2092fuse-linker-plugin
2093Common Undocumented
2094
2095; Positive if we should track variables, negative if we should run
2096; the var-tracking pass only to discard debug annotations, zero if
2097; we're not to run it.  When flag_var_tracking == 2 (AUTODETECT_VALUE) it
2098; will be set according to optimize, debug_info_level and debug_hooks
2099; in process_options ().
2100fvar-tracking
2101Common Report Var(flag_var_tracking) Init(2) Optimization
2102Perform variable tracking
2103
2104; Positive if we should track variables at assignments, negative if
2105; we should run the var-tracking pass only to discard debug
2106; annotations.  When flag_var_tracking_assignments ==
2107; AUTODETECT_VALUE it will be set according to flag_var_tracking.
2108fvar-tracking-assignments
2109Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
2110Perform variable tracking by annotating assignments
2111
2112; Nonzero if we should toggle flag_var_tracking_assignments after
2113; processing options and computing its default.  */
2114fvar-tracking-assignments-toggle
2115Common Report Var(flag_var_tracking_assignments_toggle) Optimization
2116Toggle -fvar-tracking-assignments
2117
2118; Positive if we should track uninitialized variables, negative if
2119; we should run the var-tracking pass only to discard debug
2120; annotations.  When flag_var_tracking_uninit == AUTODETECT_VALUE it
2121; will be set according to flag_var_tracking.
2122fvar-tracking-uninit
2123Common Report Var(flag_var_tracking_uninit) Optimization
2124Perform variable tracking and also tag variables that are uninitialized
2125
2126ftree-vectorize
2127Common Report Var(flag_tree_vectorize) Optimization
2128Enable loop vectorization on trees
2129
2130ftree-slp-vectorize
2131Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
2132Enable basic block vectorization (SLP) on trees
2133
2134fvect-cost-model
2135Common Report Var(flag_vect_cost_model) Optimization
2136Enable use of cost model in vectorization
2137
2138ftree-vect-loop-version
2139Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
2140Enable loop versioning when doing loop vectorization on trees
2141
2142ftree-vectorizer-verbose=
2143Common RejectNegative Joined UInteger
2144-ftree-vectorizer-verbose=<number>	Set the verbosity level of the vectorizer
2145
2146ftree-scev-cprop
2147Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
2148Enable copy propagation of scalar-evolution information.
2149
2150; -fverbose-asm causes extra commentary information to be produced in
2151; the generated assembly code (to make it more readable).  This option
2152; is generally only of use to those who actually need to read the
2153; generated assembly code (perhaps while debugging the compiler itself).
2154; -fno-verbose-asm, the default, causes the extra information
2155; to not be added and is useful when comparing two assembler files.
2156fverbose-asm
2157Common Report Var(flag_verbose_asm)
2158Add extra commentary to assembler output
2159
2160fvisibility=
2161Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
2162-fvisibility=[default|internal|hidden|protected]	Set the default symbol visibility
2163
2164Enum
2165Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
2166
2167EnumValue
2168Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
2169
2170EnumValue
2171Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
2172
2173EnumValue
2174Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
2175
2176EnumValue
2177Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
2178
2179fvpt
2180Common Report Var(flag_value_profile_transformations) Optimization
2181Use expression value profiles in optimizations
2182
2183fweb
2184Common Report Var(flag_web) Init(2) Optimization
2185Construct webs and split unrelated uses of single variable
2186
2187ftree-builtin-call-dce
2188Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
2189Enable conditional dead code elimination for builtin calls
2190
2191fwhole-program
2192Common Report Var(flag_whole_program) Init(0) Optimization
2193Perform whole program optimizations
2194
2195fwrapv
2196Common Report Var(flag_wrapv) Optimization
2197Assume signed arithmetic overflow wraps around
2198
2199fzero-initialized-in-bss
2200Common Report Var(flag_zero_initialized_in_bss) Init(1)
2201Put zero initialized data in the bss section
2202
2203g
2204Common JoinedOrMissing
2205Generate debug information in default format
2206
2207gcoff
2208Common JoinedOrMissing Negative(gdwarf-)
2209Generate debug information in COFF format
2210
2211gdwarf-
2212Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
2213Generate debug information in DWARF v2 (or later) format
2214
2215ggdb
2216Common JoinedOrMissing
2217Generate debug information in default extended format
2218
2219gno-record-gcc-switches
2220Common RejectNegative Var(dwarf_record_gcc_switches,0) Init(0)
2221Don't record gcc command line switches in DWARF DW_AT_producer.
2222
2223grecord-gcc-switches
2224Common RejectNegative Var(dwarf_record_gcc_switches,1)
2225Record gcc command line switches in DWARF DW_AT_producer.
2226
2227gstabs
2228Common JoinedOrMissing Negative(gstabs+)
2229Generate debug information in STABS format
2230
2231gstabs+
2232Common JoinedOrMissing Negative(gvms)
2233Generate debug information in extended STABS format
2234
2235gno-strict-dwarf
2236Common RejectNegative Var(dwarf_strict,0) Init(-1)
2237Emit DWARF additions beyond selected version
2238
2239gstrict-dwarf
2240Common Report RejectNegative Var(dwarf_strict,1)
2241Don't emit DWARF additions beyond selected version
2242
2243gtoggle
2244Common Report Var(flag_gtoggle)
2245Toggle debug information generation
2246
2247gvms
2248Common JoinedOrMissing Negative(gxcoff)
2249Generate debug information in VMS format
2250
2251gxcoff
2252Common JoinedOrMissing Negative(gxcoff+)
2253Generate debug information in XCOFF format
2254
2255gxcoff+
2256Common JoinedOrMissing Negative(gcoff)
2257Generate debug information in extended XCOFF format
2258
2259h
2260Driver Joined Separate
2261
2262iplugindir=
2263Common Joined Var(plugindir_string) Init(0)
2264-iplugindir=<dir>	Set <dir> to be the default plugin directory
2265
2266imultiarch
2267Common Joined Separate RejectDriver Var(imultiarch) Init(0)
2268-imultiarch <dir>	Set <dir> to be the multiarch include subdirectory
2269
2270l
2271Driver Joined Separate
2272
2273n
2274Driver
2275
2276no-canonical-prefixes
2277Driver
2278
2279nodefaultlibs
2280Driver
2281
2282nostartfiles
2283Driver
2284
2285nostdlib
2286Driver
2287
2288o
2289Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
2290-o <file>	Place output into <file>
2291
2292p
2293Common Var(profile_flag)
2294Enable function profiling
2295
2296pass-exit-codes
2297Driver Var(pass_exit_codes)
2298
2299pedantic
2300Common Var(pedantic)
2301Issue warnings needed for strict compliance to the standard
2302
2303pedantic-errors
2304Common Var(flag_pedantic_errors)
2305Like -pedantic but issue them as errors
2306
2307pg
2308Driver
2309
2310pipe
2311Driver Var(use_pipes)
2312
2313print-file-name=
2314Driver JoinedOrMissing Var(print_file_name)
2315
2316print-libgcc-file-name
2317Driver
2318
2319print-multi-directory
2320Driver Var(print_multi_directory)
2321
2322print-multi-lib
2323Driver Var(print_multi_lib)
2324
2325print-multi-os-directory
2326Driver Var(print_multi_os_directory)
2327
2328print-multiarch
2329Driver Var(print_multiarch)
2330
2331print-prog-name=
2332Driver JoinedOrMissing Var(print_prog_name)
2333
2334print-search-dirs
2335Driver Var(print_search_dirs)
2336
2337print-sysroot
2338Driver Var(print_sysroot)
2339
2340print-sysroot-headers-suffix
2341Driver Var(print_sysroot_headers_suffix)
2342
2343quiet
2344Common Var(quiet_flag) RejectDriver
2345Do not display functions compiled or elapsed time
2346
2347r
2348Driver
2349
2350s
2351Driver
2352
2353save-temps
2354Driver
2355
2356save-temps=
2357Driver Joined
2358
2359t
2360Driver
2361
2362time
2363Driver Var(report_times)
2364
2365time=
2366Driver JoinedOrMissing
2367
2368u
2369Driver Joined Separate
2370
2371undef
2372Driver
2373; C option, but driver must not handle as "-u ndef".
2374
2375v
2376Common Driver Var(verbose_flag)
2377Enable verbose output
2378
2379version
2380Common Var(version_flag) RejectDriver
2381Display the compiler's version
2382
2383w
2384Common Var(inhibit_warnings)
2385Suppress warnings
2386
2387wrapper
2388Driver Separate Var(wrapper_string)
2389
2390x
2391Driver Joined Separate
2392
2393shared
2394Driver RejectNegative Negative(pie)
2395Create a shared library
2396
2397shared-libgcc
2398Driver
2399
2400specs
2401Driver Separate Alias(specs=)
2402
2403specs=
2404Driver Joined
2405
2406static
2407Driver
2408
2409static-libgcc
2410Driver
2411
2412static-libgfortran
2413Driver
2414; Documented for Fortran, but always accepted by driver.
2415
2416static-libstdc++
2417Driver
2418
2419static-libgo
2420Driver
2421; Documented for Go, but always accepted by driver.
2422
2423symbolic
2424Driver
2425
2426pie
2427Driver RejectNegative Negative(shared)
2428Create a position independent executable
2429
2430z
2431Driver Joined Separate
2432
2433; This comment is to ensure we retain the blank line above.
2434