xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/common.opt (revision 413d532bcc3f62d122e56d92e13ac64825a40baf)
1; Options for the language- and target-independent parts of the compiler.
2
3; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
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
26-help
27Common
28Display this information
29
30-help=
31Common Report Joined
32--help=<class>	Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params
33
34-target-help
35Common
36Alias for --help=target
37
38;; The following four entries are to work around the gcc driver
39;; program's insatiable desire to turn options starting with a
40;; double dash (--) into options starting with a dash f (-f).
41fhelp
42Common Var(help_flag)
43
44fhelp=
45Common Joined
46
47ftarget-help
48Common
49
50fversion
51Common
52
53-param
54Common Separate
55--param <param>=<value>	Set parameter <param> to value.  See below for a complete list of parameters
56
57-version
58Common
59
60G
61Common Joined Separate UInteger
62-G<number>	Put global and static data smaller than <number> bytes into a special section (on some targets)
63
64O
65Common JoinedOrMissing Optimization
66-O<number>	Set optimization level to <number>
67
68Os
69Common Optimization
70Optimize for space rather than speed
71
72W
73Common RejectNegative Var(extra_warnings) Warning
74This switch is deprecated; use -Wextra instead
75
76Waggregate-return
77Common Var(warn_aggregate_return) Warning
78Warn about returning structures, unions or arrays
79
80Warray-bounds
81Common Var(warn_array_bounds) Warning
82Warn if an array is accessed out of bounds
83
84Wattributes
85Common Var(warn_attributes) Init(1) Warning
86Warn about inappropriate attribute usage
87
88Wcast-align
89Common Var(warn_cast_align) Warning
90Warn about pointer casts which increase alignment
91
92Wdeprecated-declarations
93Common Var(warn_deprecated_decl) Init(1) Warning
94Warn about uses of __attribute__((deprecated)) declarations
95
96Wdisabled-optimization
97Common Var(warn_disabled_optimization) Warning
98Warn when an optimization pass is disabled
99
100Werror
101Common Var(warnings_are_errors)
102Treat all warnings as errors
103
104Werror=
105Common Joined
106Treat specified warning as error
107
108Wextra
109Common Var(extra_warnings) Warning
110Print extra (possibly unwanted) warnings
111
112Wfatal-errors
113Common Var(flag_fatal_errors)
114Exit on the first error occurred
115
116Wframe-larger-than=
117Common RejectNegative Joined UInteger
118-Wframe-larger-than=<number>	Warn if a function's stack frame requires more than <number> bytes
119
120Winline
121Common Var(warn_inline) Warning
122Warn when an inlined function cannot be inlined
123
124Wlarger-than-
125Common RejectNegative Joined UInteger Warning Undocumented
126
127Wlarger-than=
128Common RejectNegative Joined UInteger Warning
129-Wlarger-than=<number>	Warn if an object is larger than <number> bytes
130
131Wunsafe-loop-optimizations
132Common Var(warn_unsafe_loop_optimizations) Warning
133Warn if the loop cannot be optimized due to nontrivial assumptions.
134
135Wmissing-noreturn
136Common Var(warn_missing_noreturn) Warning
137Warn about functions which might be candidates for __attribute__((noreturn))
138
139Wmudflap
140Common Var(warn_mudflap) Init(1) Warning
141Warn about constructs not instrumented by -fmudflap
142
143Woverflow
144Common Var(warn_overflow) Init(1) Warning
145Warn about overflow in arithmetic expressions
146
147Wpacked
148Common Var(warn_packed) Warning
149Warn when the packed attribute has no effect on struct layout
150
151Wpadded
152Common Var(warn_padded) Warning
153Warn when padding is required to align structure members
154
155Wshadow
156Common Var(warn_shadow) Warning
157Warn when one local variable shadows another
158
159Wstack-protector
160Common Var(warn_stack_protect) Warning
161Warn when not issuing stack smashing protection for some reason
162
163Wstrict-aliasing
164Common Warning
165Warn about code which might break strict aliasing rules
166
167Wstrict-aliasing=
168Common Joined UInteger Var(warn_strict_aliasing) Init(-1) Warning
169Warn about code which might break strict aliasing rules
170
171Wstrict-overflow
172Common Warning
173Warn about optimizations that assume that signed overflow is undefined
174
175Wstrict-overflow=
176Common Joined UInteger Var(warn_strict_overflow) Init(-1) Warning
177Warn about optimizations that assume that signed overflow is undefined
178
179Wswitch
180Common Var(warn_switch) Warning
181Warn about enumerated switches, with no default, missing a case
182
183Wswitch-default
184Common Var(warn_switch_default) Warning
185Warn about enumerated switches missing a \"default:\" statement
186
187Wswitch-enum
188Common Var(warn_switch_enum) Warning
189Warn about all enumerated switches missing a specific case
190
191Wsystem-headers
192Common Var(warn_system_headers) Warning
193Do not suppress warnings from system headers
194
195Wtype-limits
196Common Var(warn_type_limits) Init(-1) Warning
197Warn if a comparison is always true or always false due to the limited range of the data type
198
199Wuninitialized
200Common Var(warn_uninitialized) Init(-1) Warning
201Warn about uninitialized automatic variables
202
203Wunreachable-code
204Common
205Does nothing. Preserved for backward compatibility.
206
207Wunused
208Common Var(warn_unused) Init(0) Warning
209Enable all -Wunused- warnings
210
211Wunused-function
212Common Var(warn_unused_function) Init(-1) Warning
213Warn when a function is unused
214
215Wunused-label
216Common Var(warn_unused_label) Init(-1) Warning
217Warn when a label is unused
218
219Wunused-parameter
220Common Var(warn_unused_parameter) Init(-1) Warning
221Warn when a function parameter is unused
222
223Wunused-value
224Common Var(warn_unused_value) Init(-1) Warning
225Warn when an expression value is unused
226
227Wunused-variable
228Common Var(warn_unused_variable) Init(-1) Warning
229Warn when a variable is unused
230
231Wcoverage-mismatch
232Common RejectNegative Var(warn_coverage_mismatch) Warning
233Warn instead of error in case profiles in -fprofile-use do not match
234
235aux-info
236Common Separate
237-aux-info <file>	Emit declaration information into <file>
238
239aux-info=
240Common Joined
241
242auxbase
243Common Separate
244
245auxbase-strip
246Common Separate
247
248d
249Common Joined
250-d<letters>	Enable dumps from specific passes of the compiler
251
252dumpbase
253Common Separate
254-dumpbase <file>	Set the file basename to be used for dumps
255
256dumpdir
257Common Separate
258-dumpdir <dir>	Set the directory name to be used for dumps
259
260; The version of the C++ ABI in use.  The following values are allowed:
261;
262; 0: The version of the ABI believed most conformant with the C++ ABI
263;    specification.  This ABI may change as bugs are discovered and fixed.
264;    Therefore, 0 will not necessarily indicate the same ABI in different
265;    versions of G++.
266;
267; 1: The version of the ABI first used in G++ 3.2.
268;
269; 2: The version of the ABI first used in G++ 3.4 (and current default).
270;
271; 3: The version of the ABI that fixes the missing underscore
272;    in template non-type arguments of pointer type.
273;
274; 4: The version of the ABI that introduces unambiguous mangling of
275;    vector types.
276;
277; Additional positive integers will be assigned as new versions of
278; the ABI become the default version of the ABI.
279fabi-version=
280Common Joined UInteger Var(flag_abi_version) Init(2)
281
282falign-functions
283Common Report Var(align_functions,0) Optimization UInteger
284Align the start of functions
285
286falign-functions=
287Common RejectNegative Joined UInteger
288
289falign-jumps
290Common Report Var(align_jumps,0) Optimization UInteger
291Align labels which are only reached by jumping
292
293falign-jumps=
294Common RejectNegative Joined UInteger
295
296falign-labels
297Common Report Var(align_labels,0) Optimization UInteger
298Align all labels
299
300falign-labels=
301Common RejectNegative Joined UInteger
302
303falign-loops
304Common Report Var(align_loops) Optimization UInteger
305Align the start of loops
306
307falign-loops=
308Common RejectNegative Joined UInteger
309
310; This flag is only tested if alias checking is enabled.
311; 0 if pointer arguments may alias each other.  True in C.
312; 1 if pointer arguments may not alias each other but may alias
313;   global variables.
314; 2 if pointer arguments may not alias each other and may not
315;   alias global variables.
316; 3 if pointer arguments may not alias anything.  True in Fortran.
317;   Set by the front end.
318fargument-alias
319Common Report Var(flag_argument_noalias,0) Optimization
320Specify that arguments may alias each other and globals
321
322fargument-noalias
323Common Report Var(flag_argument_noalias,1) VarExists Optimization
324Assume arguments may alias globals but not each other
325
326fargument-noalias-global
327Common Report Var(flag_argument_noalias,2) VarExists Optimization
328Assume arguments alias neither each other nor globals
329
330fargument-noalias-anything
331Common Report Var(flag_argument_noalias,3) VarExists Optimization
332Assume arguments alias no other storage
333
334fasynchronous-unwind-tables
335Common Report Var(flag_asynchronous_unwind_tables) Optimization
336Generate unwind tables that are exact at each instruction boundary
337
338fauto-inc-dec
339Common Report Var(flag_auto_inc_dec) Init(1)
340Generate auto-inc/dec instructions
341
342; -fcheck-bounds causes gcc to generate array bounds checks.
343; For C, C++ and ObjC: defaults off.
344; For Java: defaults to on.
345; For Fortran: defaults to off.
346fbounds-check
347Common Report Var(flag_bounds_check)
348Generate code to check bounds before indexing arrays
349
350fbranch-count-reg
351Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
352Replace add, compare, branch with branch on count register
353
354fbranch-probabilities
355Common Report Var(flag_branch_probabilities) Optimization
356Use profiling information for branch probabilities
357
358fbranch-target-load-optimize
359Common Report Var(flag_branch_target_load_optimize) Optimization
360Perform branch target load optimization before prologue / epilogue threading
361
362fbranch-target-load-optimize2
363Common Report Var(flag_branch_target_load_optimize2) Optimization
364Perform branch target load optimization after prologue / epilogue threading
365
366fbtr-bb-exclusive
367Common Report Var(flag_btr_bb_exclusive) Optimization
368Restrict target load migration not to re-use registers in any basic block
369
370fcall-saved-
371Common Joined RejectNegative
372-fcall-saved-<register>	Mark <register> as being preserved across functions
373
374fcall-used-
375Common Joined RejectNegative
376-fcall-used-<register>	Mark <register> as being corrupted by function calls
377
378; Nonzero for -fcaller-saves: allocate values in regs that need to
379; be saved across function calls, if that produces overall better code.
380; Optional now, so people can test it.
381fcaller-saves
382Common Report Var(flag_caller_saves) Optimization
383Save registers around function calls
384
385fcheck-data-deps
386Common Report Var(flag_check_data_deps)
387Compare the results of several data dependence analyzers.
388
389fcommon
390Common Report Var(flag_no_common,0) Optimization
391Do not put uninitialized globals in the common section
392
393fcompare-debug=
394Common JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
395-fcompare-debug[=<opts>]	Compile with and without e.g. -gtoggle, and compare the final-insns dump
396
397fcompare-debug-second
398Common RejectNegative Var(flag_compare_debug)
399Run only the second compilation of -fcompare-debug
400
401fconserve-stack
402Common Var(flag_conserve_stack) Optimization
403Do not perform optimizations increasing noticeably stack usage
404
405fcprop-registers
406Common Report Var(flag_cprop_registers) Optimization
407Perform a register copy-propagation optimization pass
408
409fcrossjumping
410Common Report Var(flag_crossjumping) Optimization
411Perform cross-jumping optimization
412
413fcse-follow-jumps
414Common Report Var(flag_cse_follow_jumps) Optimization
415When running CSE, follow jumps to their targets
416
417fcse-skip-blocks
418Common
419Does nothing.  Preserved for backward compatibility.
420
421fcx-limited-range
422Common Report Var(flag_cx_limited_range) Optimization
423Omit range reduction step when performing complex division
424
425fcx-fortran-rules
426Common Report Var(flag_cx_fortran_rules) Optimization
427Complex multiplication and division follow Fortran rules
428
429fdata-sections
430Common Report Var(flag_data_sections) Optimization
431Place data items into their own section
432
433fdbg-cnt-list
434Common Report
435List all available debugging counters with their limits and counts.
436
437fdbg-cnt=
438Common RejectNegative Joined
439-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]	Set the debug counter limit.
440
441fdebug-prefix-map=
442Common Joined RejectNegative
443Map one directory name to another in debug information
444
445; Nonzero for -fdefer-pop: don't pop args after each function call
446; instead save them up to pop many calls' args with one insns.
447fdefer-pop
448Common Report Var(flag_defer_pop) Optimization
449Defer popping functions args from stack until later
450
451fdelayed-branch
452Common Report Var(flag_delayed_branch) Optimization
453Attempt to fill delay slots of branch instructions
454
455fdelete-null-pointer-checks
456Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
457Delete useless null pointer checks
458
459fdiagnostics-show-location=
460Common Joined RejectNegative
461-fdiagnostics-show-location=[once|every-line]	How often to emit source location at the beginning of line-wrapped diagnostics
462
463fdiagnostics-show-option
464Common
465Amend appropriate diagnostic messages with the command line option that controls them
466
467fdump-
468Common Joined RejectNegative
469-fdump-<type>	Dump various compiler internals to a file
470
471fdump-final-insns=
472Common RejectNegative Joined Var(flag_dump_final_insns)
473-fdump-final-insns=filename	Dump to filename the insns at the end of translation
474
475fdump-noaddr
476Common Report Var(flag_dump_noaddr)
477Suppress output of addresses in debugging dumps
478
479fdump-unnumbered
480Common Report Var(flag_dump_unnumbered) VarExists
481Suppress output of instruction numbers, line number notes and addresses in debugging dumps
482
483fdump-unnumbered-links
484Common Report Var(flag_dump_unnumbered_links) VarExists
485Suppress output of previous and next insn numbers in debugging dumps
486
487fdwarf2-cfi-asm
488Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
489Enable CFI tables via GAS assembler directives.
490
491fearly-inlining
492Common Report Var(flag_early_inlining) Init(1) Optimization
493Perform early inlining
494
495feliminate-dwarf2-dups
496Common Report Var(flag_eliminate_dwarf2_dups)
497Perform DWARF2 duplicate elimination
498
499fipa-sra
500Common Report Var(flag_ipa_sra) Init(0) Optimization
501Perform interprocedural reduction of aggregates
502
503feliminate-unused-debug-symbols
504Common Report Var(flag_debug_only_used_symbols)
505Perform unused type elimination in debug info
506
507feliminate-unused-debug-types
508Common Report Var(flag_eliminate_unused_debug_types) Init(1)
509Perform unused type elimination in debug info
510
511femit-class-debug-always
512Common Report Var(flag_emit_class_debug_always) Init(0)
513Do not suppress C++ class debug information.
514
515fenable-icf-debug
516Common Report Var(flag_enable_icf_debug)
517Generate debug information to support Identical Code Folding (ICF)
518
519fexceptions
520Common Report Var(flag_exceptions) Optimization
521Enable exception handling
522
523fexpensive-optimizations
524Common Report Var(flag_expensive_optimizations) Optimization
525Perform a number of minor, expensive optimizations
526
527fexcess-precision=
528Common Joined RejectNegative
529-fexcess-precision=[fast|standard]	Specify handling of excess floating-point precision
530
531ffast-math
532Common
533
534ffinite-math-only
535Common Report Var(flag_finite_math_only) Optimization
536Assume no NaNs or infinities are generated
537
538ffixed-
539Common Joined RejectNegative
540-ffixed-<register>	Mark <register> as being unavailable to the compiler
541
542ffloat-store
543Common Report Var(flag_float_store) Optimization
544Don't allocate floats and doubles in extended-precision registers
545
546fforce-addr
547Common
548Does nothing.  Preserved for backward compatibility.
549
550fforward-propagate
551Common Report Var(flag_forward_propagate) Optimization
552Perform a forward propagation pass on RTL
553
554; Nonzero means don't put addresses of constant functions in registers.
555; Used for compiling the Unix kernel, where strange substitutions are
556; done on the assembly output.
557ffunction-cse
558Common Report Var(flag_no_function_cse,0)
559Allow function addresses to be held in registers
560
561ffunction-sections
562Common Report Var(flag_function_sections)
563Place each function into its own section
564
565fgcse
566Common Report Var(flag_gcse) Optimization
567Perform global common subexpression elimination
568
569fgcse-lm
570Common Report Var(flag_gcse_lm) Init(1) Optimization
571Perform enhanced load motion during global common subexpression elimination
572
573fgcse-sm
574Common Report Var(flag_gcse_sm) Init(0) Optimization
575Perform store motion after global common subexpression elimination
576
577fgcse-las
578Common Report Var(flag_gcse_las) Init(0) Optimization
579Perform redundant load after store elimination in global common subexpression
580elimination
581
582fgcse-after-reload
583Common Report Var(flag_gcse_after_reload) Optimization
584Perform global common subexpression elimination after register allocation
585has finished
586
587; This option is not documented yet as its semantics will change.
588fgraphite
589Common Report Var(flag_graphite)
590Enable in and out of Graphite representation
591
592fgraphite-identity
593Common Report Var(flag_graphite_identity) Optimization
594Enable Graphite Identity transformation
595
596floop-parallelize-all
597Common Report Var(flag_loop_parallelize_all) Optimization
598Mark all loops as parallel
599
600floop-strip-mine
601Common Report Var(flag_loop_strip_mine) Optimization
602Enable Loop Strip Mining transformation
603
604floop-interchange
605Common Report Var(flag_loop_interchange) Optimization
606Enable Loop Interchange transformation
607
608floop-block
609Common Report Var(flag_loop_block) Optimization
610Enable Loop Blocking transformation
611
612fguess-branch-probability
613Common Report Var(flag_guess_branch_prob) Optimization
614Enable guessing of branch probabilities
615
616; Nonzero means ignore `#ident' directives.  0 means handle them.
617; Generate position-independent code for executables if possible
618; On SVR4 targets, it also controls whether or not to emit a
619; string identifying the compiler.
620fident
621Common Report Var(flag_no_ident,0)
622Process #ident directives
623
624fif-conversion
625Common Report Var(flag_if_conversion) Optimization
626Perform conversion of conditional jumps to branchless equivalents
627
628fif-conversion2
629Common Report Var(flag_if_conversion2) Optimization
630Perform conversion of conditional jumps to conditional execution
631
632; -finhibit-size-directive inhibits output of .size for ELF.
633; This is used only for compiling crtstuff.c,
634; and it may be extended to other effects
635; needed for crtstuff.c on other systems.
636finhibit-size-directive
637Common Report Var(flag_inhibit_size_directive)
638Do not generate .size directives
639
640findirect-inlining
641Common Report Var(flag_indirect_inlining)
642Perform indirect inlining
643
644; Nonzero means that functions declared `inline' will be treated
645; as `static'.  Prevents generation of zillions of copies of unused
646; static inline functions; instead, `inlines' are written out
647; only when actually used.  Used in conjunction with -g.  Also
648; does the right thing with #pragma interface.
649finline
650Common Report Var(flag_no_inline,0) Init(0)
651Pay attention to the \"inline\" keyword
652
653finline-small-functions
654Common Report Var(flag_inline_small_functions) Optimization
655Integrate simple functions into their callers when code size is known to not growth
656
657finline-functions
658Common Report Var(flag_inline_functions) Optimization
659Integrate simple functions into their callers
660
661finline-functions-called-once
662Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
663Integrate functions called once into their callers
664
665finline-limit-
666Common RejectNegative Joined UInteger
667
668finline-limit=
669Common RejectNegative Joined UInteger
670-finline-limit=<number>	Limit the size of inlined functions to <number>
671
672finstrument-functions
673Common Report Var(flag_instrument_function_entry_exit)
674Instrument function entry and exit with profiling calls
675
676finstrument-functions-exclude-function-list=
677Common RejectNegative Joined
678-finstrument-functions-exclude-function-list=name,...  Do not instrument listed functions
679
680finstrument-functions-exclude-file-list=
681Common RejectNegative Joined
682-finstrument-functions-exclude-file-list=filename,...  Do not instrument functions listed in files
683
684fipa-cp
685Common Report Var(flag_ipa_cp) Optimization
686Perform Interprocedural constant propagation
687
688fipa-cp-clone
689Common Report Var(flag_ipa_cp_clone) Optimization
690Perform cloning to make Interprocedural constant propagation stronger
691
692fipa-pure-const
693Common Report Var(flag_ipa_pure_const) Init(0) Optimization
694Discover pure and const functions
695
696fipa-pta
697Common Report Var(flag_ipa_pta) Init(0) Optimization
698Perform interprocedural points-to analysis
699
700fipa-reference
701Common Report Var(flag_ipa_reference) Init(0) Optimization
702Discover readonly and non addressable static variables
703
704fipa-type-escape
705Common Report Var(flag_ipa_type_escape) Init(0) Optimization
706Type based escape and alias analysis
707
708fipa-matrix-reorg
709Common Report Var(flag_ipa_matrix_reorg) Optimization
710Perform matrix layout flattening and transposing based
711on profiling information.
712
713fipa-struct-reorg
714Common Report Var(flag_ipa_struct_reorg)
715Perform structure layout optimizations based
716on profiling information.
717
718fira-algorithm=
719Common Joined RejectNegative
720-fira-algorithm=[CB|priority] Set the used IRA algorithm
721
722fira-region=
723Common Joined RejectNegative
724-fira-region=[one|all|mixed] Set regions for IRA
725
726fira-coalesce
727Common Report Var(flag_ira_coalesce) Init(0)
728Do optimistic coalescing.
729
730fira-loop-pressure
731Common Report Var(flag_ira_loop_pressure)
732Use IRA based register pressure calculation
733in RTL loop optimizations.
734
735fira-share-save-slots
736Common Report Var(flag_ira_share_save_slots) Init(1)
737Share slots for saving different hard registers.
738
739fira-share-spill-slots
740Common Report Var(flag_ira_share_spill_slots) Init(1)
741Share stack slots for spilled pseudo-registers.
742
743fira-verbose=
744Common RejectNegative Joined UInteger
745-fira-verbose=<number>	Control IRA's level of diagnostic messages.
746
747fivopts
748Common Report Var(flag_ivopts) Init(1) Optimization
749Optimize induction variables on trees
750
751fjump-tables
752Common Var(flag_jump_tables) Init(1) Optimization
753Use jump tables for sufficiently large switch statements
754
755fkeep-inline-functions
756Common Report Var(flag_keep_inline_functions)
757Generate code for functions even if they are fully inlined
758
759fkeep-static-consts
760Common Report Var(flag_keep_static_consts) Init(1)
761Emit static const variables even if they are not used
762
763fleading-underscore
764Common Report Var(flag_leading_underscore) Init(-1)
765Give external symbols a leading underscore
766
767floop-optimize
768Common
769Does nothing.  Preserved for backward compatibility.
770
771flto
772Common Var(flag_lto)
773Enable link-time optimization.
774
775; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
776flto-compression-level=
777Common Joined UInteger Var(flag_lto_compression_level) Init(-1)
778-flto-compression-level=<number>	Use zlib compression level <number> for IL
779
780flto-report
781Common Report Var(flag_lto_report) Init(0) Optimization
782Report various link-time optimization statistics
783
784fmath-errno
785Common Report Var(flag_errno_math) Init(1) Optimization
786Set errno after built-in math functions
787
788fmem-report
789Common Report Var(mem_report)
790Report on permanent memory allocation
791
792; This will attempt to merge constant section constants, if 1 only
793; string constants and constants from constant pool, if 2 also constant
794; variables.
795fmerge-all-constants
796Common Report Var(flag_merge_constants,2) Init(1) Optimization
797Attempt to merge identical constants and constant variables
798
799fmerge-constants
800Common Report Var(flag_merge_constants,1) VarExists Optimization
801Attempt to merge identical constants across compilation units
802
803fmerge-debug-strings
804Common Report Var(flag_merge_debug_strings) Init(1)
805Attempt to merge identical debug strings across compilation units
806
807fmessage-length=
808Common RejectNegative Joined UInteger
809-fmessage-length=<number>	Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
810
811fmodulo-sched
812Common Report Var(flag_modulo_sched) Optimization
813Perform SMS based modulo scheduling before the first scheduling pass
814
815fmodulo-sched-allow-regmoves
816Common Report Var(flag_modulo_sched_allow_regmoves)
817Perform SMS based modulo scheduling with register moves allowed
818
819fmove-loop-invariants
820Common Report Var(flag_move_loop_invariants) Init(1) Optimization
821Move loop invariant computations out of loops
822
823fmudflap
824Common RejectNegative Report Var(flag_mudflap)
825Add mudflap bounds-checking instrumentation for single-threaded program
826
827fmudflapth
828Common RejectNegative Report VarExists Var(flag_mudflap,2)
829Add mudflap bounds-checking instrumentation for multi-threaded program
830
831fmudflapir
832Common RejectNegative Report Var(flag_mudflap_ignore_reads)
833Ignore read operations when inserting mudflap instrumentation
834
835fdce
836Common Var(flag_dce) Init(1) Optimization
837Use the RTL dead code elimination pass
838
839fdse
840Common Var(flag_dse) Init(1) Optimization
841Use the RTL dead store elimination pass
842
843freschedule-modulo-scheduled-loops
844Common Report Var(flag_resched_modulo_sched) Optimization
845Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
846
847fnon-call-exceptions
848Common Report Var(flag_non_call_exceptions) Optimization
849Support synchronous non-call exceptions
850
851fomit-frame-pointer
852Common Report Var(flag_omit_frame_pointer) Optimization
853When possible do not generate stack frames
854
855foptimize-register-move
856Common Report Var(flag_regmove) Optimization
857Do the full register move optimization pass
858
859foptimize-sibling-calls
860Common Report Var(flag_optimize_sibling_calls) Optimization
861Optimize sibling and tail recursive calls
862
863fpre-ipa-mem-report
864Common Report Var(pre_ipa_mem_report)
865Report on memory allocation before interprocedural optimization
866
867fpost-ipa-mem-report
868Common Report Var(post_ipa_mem_report)
869Report on memory allocation before interprocedural optimization
870
871fpack-struct
872Common Report Var(flag_pack_struct) Optimization
873Pack structure members together without holes
874
875fpack-struct=
876Common RejectNegative Joined UInteger Optimization
877-fpack-struct=<number>	Set initial maximum structure member alignment
878
879fpcc-struct-return
880Common Report Var(flag_pcc_struct_return,1) VarExists
881Return small aggregates in memory, not registers
882
883fpeel-loops
884Common Report Var(flag_peel_loops) Optimization
885Perform loop peeling
886
887fpeephole
888Common Report Var(flag_no_peephole,0) Optimization
889Enable machine specific peephole optimizations
890
891fpeephole2
892Common Report Var(flag_peephole2) Optimization
893Enable an RTL peephole pass before sched2
894
895fPIC
896Common Report Var(flag_pic,2)
897Generate position-independent code if possible (large mode)
898
899fPIE
900Common Report Var(flag_pie,2)
901Generate position-independent code for executables if possible (large mode)
902
903fpic
904Common Report Var(flag_pic,1) VarExists
905Generate position-independent code if possible (small mode)
906
907fpie
908Common Report Var(flag_pie,1) VarExists
909Generate position-independent code for executables if possible (small mode)
910
911fplugin=
912Common Joined RejectNegative
913Specify a plugin to load
914
915fplugin-arg-
916Common Joined RejectNegative
917-fplugin-arg-<name>-<key>[=<value>]	Specify argument <key>=<value> for plugin <name>
918
919fpredictive-commoning
920Common Report Var(flag_predictive_commoning) Optimization
921Run predictive commoning optimization.
922
923fprefetch-loop-arrays
924Common Report Var(flag_prefetch_loop_arrays) Optimization
925Generate prefetch instructions, if available, for arrays in loops
926
927fprofile
928Common Report Var(profile_flag)
929Enable basic program profiling code
930
931fprofile-arcs
932Common Report Var(profile_arc_flag)
933Insert arc-based program profiling code
934
935fprofile-dir=
936Common Joined RejectNegative
937Set the top-level directory for storing the profile data.
938The default is 'pwd'.
939
940fprofile-correction
941Common Report Var(flag_profile_correction)
942Enable correction of flow inconsistent profile data input
943
944fprofile-generate
945Common
946Enable common options for generating profile info for profile feedback directed optimizations
947
948fprofile-generate=
949Common Joined RejectNegative
950Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
951
952fprofile-use
953Common Var(flag_profile_use)
954Enable common options for performing profile feedback directed optimizations
955
956fprofile-use=
957Common Joined RejectNegative
958Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
959
960fprofile-values
961Common Report Var(flag_profile_values)
962Insert code to profile values of expressions
963
964frandom-seed
965Common
966
967frandom-seed=
968Common Joined RejectNegative
969-frandom-seed=<string>	Make compile reproducible using <string>
970
971; This switch causes the command line that was used to create an
972; object file to be recorded into the object file.  The exact format
973; of this recording is target and binary file format dependent.
974; It is related to the -fverbose-asm switch, but that switch only
975; records information in the assembler output file as comments, so
976; they never reach the object file.
977frecord-gcc-switches
978Common Report Var(flag_record_gcc_switches)
979Record gcc command line switches in the object file.
980
981freg-struct-return
982Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
983Return small aggregates in registers
984
985fregmove
986Common Report Var(flag_regmove) Optimization
987Enables a register move optimization
988
989frename-registers
990Common Report Var(flag_rename_registers) Init(2) Optimization
991Perform a register renaming optimization pass
992
993freorder-blocks
994Common Report Var(flag_reorder_blocks) Optimization
995Reorder basic blocks to improve code placement
996
997freorder-blocks-and-partition
998Common Report Var(flag_reorder_blocks_and_partition) Optimization
999Reorder basic blocks and partition into hot and cold sections
1000
1001freorder-functions
1002Common Report Var(flag_reorder_functions) Optimization
1003Reorder functions to improve code placement
1004
1005frerun-cse-after-loop
1006Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
1007Add a common subexpression elimination pass after loop optimizations
1008
1009frerun-loop-opt
1010Common
1011Does nothing.  Preserved for backward compatibility.
1012
1013frounding-math
1014Common Report Var(flag_rounding_math) Optimization
1015Disable optimizations that assume default FP rounding behavior
1016
1017fsched-interblock
1018Common Report Var(flag_schedule_interblock) Init(1) Optimization
1019Enable scheduling across basic blocks
1020
1021fsched-pressure
1022Common Report Var(flag_sched_pressure) Init(0) Optimization
1023Enable register pressure sensitive insn scheduling
1024
1025fsched-spec
1026Common Report Var(flag_schedule_speculative) Init(1) Optimization
1027Allow speculative motion of non-loads
1028
1029fsched-spec-load
1030Common Report Var(flag_schedule_speculative_load) Optimization
1031Allow speculative motion of some loads
1032
1033fsched-spec-load-dangerous
1034Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1035Allow speculative motion of more loads
1036
1037fsched-verbose=
1038Common RejectNegative Joined
1039-fsched-verbose=<number>	Set the verbosity level of the scheduler
1040
1041fsched2-use-superblocks
1042Common Report Var(flag_sched2_use_superblocks) Optimization
1043If scheduling post reload, do superblock scheduling
1044
1045fsched2-use-traces
1046Common
1047Does nothing.  Preserved for backward compatibility.
1048
1049fschedule-insns
1050Common Report Var(flag_schedule_insns) Optimization
1051Reschedule instructions before register allocation
1052
1053fschedule-insns2
1054Common Report Var(flag_schedule_insns_after_reload) Optimization
1055Reschedule instructions after register allocation
1056
1057; This flag should be on when a target implements non-trivial
1058; scheduling hooks, maybe saving some information for its own sake.
1059; On IA64, for example, this is used for correct bundling.
1060fselective-scheduling
1061Common Report Var(flag_selective_scheduling) Optimization
1062Schedule instructions using selective scheduling algorithm
1063
1064fselective-scheduling2
1065Common Report Var(flag_selective_scheduling2) Optimization
1066Run selective scheduling after reload
1067
1068fsel-sched-pipelining
1069Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1070Perform software pipelining of inner loops during selective scheduling
1071
1072fsel-sched-pipelining-outer-loops
1073Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1074Perform software pipelining of outer loops during selective scheduling
1075
1076fsel-sched-reschedule-pipelined
1077Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1078Reschedule pipelined regions without pipelining
1079
1080; sched_stalled_insns means that insns can be moved prematurely from the queue
1081; of stalled insns into the ready list.
1082fsched-stalled-insns
1083Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1084Allow premature scheduling of queued insns
1085
1086fsched-stalled-insns=
1087Common RejectNegative Joined UInteger
1088-fsched-stalled-insns=<number>	Set number of queued insns that can be prematurely scheduled
1089
1090; sched_stalled_insns_dep controls how many recently scheduled cycles will
1091; be examined for a dependency on a stalled insn that is candidate for
1092; premature removal from the queue of stalled insns into the ready list (has
1093; an effect only if the flag 'sched_stalled_insns' is set).
1094fsched-stalled-insns-dep
1095Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1096Set dependence distance checking in premature scheduling of queued insns
1097
1098fsched-stalled-insns-dep=
1099Common RejectNegative Joined UInteger
1100-fsched-stalled-insns-dep=<number>	Set dependence distance checking in premature scheduling of queued insns
1101
1102fsched-group-heuristic
1103Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1104Enable the group heuristic in the scheduler
1105
1106fsched-critical-path-heuristic
1107Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1108Enable the critical path heuristic in the scheduler
1109
1110fsched-spec-insn-heuristic
1111Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1112Enable the speculative instruction heuristic in the scheduler
1113
1114fsched-rank-heuristic
1115Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1116Enable the rank heuristic in the scheduler
1117
1118fsched-last-insn-heuristic
1119Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1120Enable the last instruction heuristic in the scheduler
1121
1122fsched-dep-count-heuristic
1123Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1124Enable the dependent count heuristic in the scheduler
1125
1126fsection-anchors
1127Common Report Var(flag_section_anchors) Optimization
1128Access data in the same section from shared anchor points
1129
1130fsee
1131Common
1132Does nothing.  Preserved for backward compatibility.
1133
1134fshow-column
1135Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1)
1136Show column numbers in diagnostics, when available.  Default on
1137
1138fsignaling-nans
1139Common Report Var(flag_signaling_nans) Optimization
1140Disable optimizations observable by IEEE signaling NaNs
1141
1142fsigned-zeros
1143Common Report Var(flag_signed_zeros) Init(1) Optimization
1144Disable floating point optimizations that ignore the IEEE signedness of zero
1145
1146fsingle-precision-constant
1147Common Report Var(flag_single_precision_constant) Optimization
1148Convert floating point constants to single precision constants
1149
1150fsplit-ivs-in-unroller
1151Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1152Split lifetimes of induction variables when loops are unrolled
1153
1154fsplit-wide-types
1155Common Report Var(flag_split_wide_types) Optimization
1156Split wide types into independent registers
1157
1158fvariable-expansion-in-unroller
1159Common Report Var(flag_variable_expansion_in_unroller) Optimization
1160Apply variable expansion when loops are unrolled
1161
1162fstack-check=
1163Common Report RejectNegative Joined
1164-fstack-check=[no|generic|specific]	Insert stack checking code into the program
1165
1166fstack-check
1167Common Report
1168Insert stack checking code into the program.  Same as -fstack-check=specific
1169
1170fstack-limit
1171Common
1172
1173fstack-limit-register=
1174Common RejectNegative Joined
1175-fstack-limit-register=<register>	Trap if the stack goes past <register>
1176
1177fstack-limit-symbol=
1178Common RejectNegative Joined
1179-fstack-limit-symbol=<name>	Trap if the stack goes past symbol <name>
1180
1181fstack-protector
1182Common Report Var(flag_stack_protect, 1)
1183Use propolice as a stack protection method
1184
1185fstack-protector-all
1186Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1187Use a stack protection method for every function
1188
1189fstrength-reduce
1190Common
1191Does nothing.  Preserved for backward compatibility.
1192
1193; Nonzero if we should do (language-dependent) alias analysis.
1194; Typically, this analysis will assume that expressions of certain
1195; types do not alias expressions of certain other types.  Only used
1196; if alias analysis (in general) is enabled.
1197fstrict-aliasing
1198Common Report Var(flag_strict_aliasing) Optimization
1199Assume strict aliasing rules apply
1200
1201fstrict-overflow
1202Common Report Var(flag_strict_overflow)
1203Treat signed overflow as undefined
1204
1205fsyntax-only
1206Common Report Var(flag_syntax_only)
1207Check for syntax errors, then stop
1208
1209ftest-coverage
1210Common Report Var(flag_test_coverage)
1211Create data files needed by \"gcov\"
1212
1213fthread-jumps
1214Common Report Var(flag_thread_jumps) Optimization
1215Perform jump threading optimizations
1216
1217ftime-report
1218Common Report Var(time_report)
1219Report the time taken by each compiler pass
1220
1221ftls-model=
1222Common Joined RejectNegative
1223-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]	Set the default thread-local storage code generation model
1224
1225ftoplevel-reorder
1226Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1227Reorder top level functions, variables, and asms
1228
1229ftracer
1230Common Report Var(flag_tracer)
1231Perform superblock formation via tail duplication
1232
1233; Zero means that floating-point math operations cannot generate a
1234; (user-visible) trap.  This is the case, for example, in nonstop
1235; IEEE 754 arithmetic.
1236ftrapping-math
1237Common Report Var(flag_trapping_math) Init(1) Optimization
1238Assume floating-point operations can trap
1239
1240ftrapv
1241Common Report Var(flag_trapv) Optimization
1242Trap for signed overflow in addition, subtraction and multiplication
1243
1244ftree-ccp
1245Common Report Var(flag_tree_ccp) Optimization
1246Enable SSA-CCP optimization on trees
1247
1248ftree-store-ccp
1249Common
1250Does nothing.  Preserved for backward compatibility.
1251
1252ftree-ch
1253Common Report Var(flag_tree_ch) Optimization
1254Enable loop header copying on trees
1255
1256ftree-copyrename
1257Common Report Var(flag_tree_copyrename) Optimization
1258Replace SSA temporaries with better names in copies
1259
1260ftree-copy-prop
1261Common Report Var(flag_tree_copy_prop) Optimization
1262Enable copy propagation on trees
1263
1264ftree-store-copy-prop
1265Common
1266Does nothing.  Preserved for backward compatibility.
1267
1268ftree-cselim
1269Common Report Var(flag_tree_cselim) Init(2) Optimization
1270Transform condition stores into unconditional ones
1271
1272ftree-switch-conversion
1273Common Report Var(flag_tree_switch_conversion) Optimization
1274Perform conversions of switch initializations.
1275
1276ftree-dce
1277Common Report Var(flag_tree_dce) Optimization
1278Enable SSA dead code elimination optimization on trees
1279
1280ftree-dominator-opts
1281Common Report Var(flag_tree_dom) Optimization
1282Enable dominator optimizations
1283
1284ftree-dse
1285Common Report Var(flag_tree_dse) Optimization
1286Enable dead store elimination
1287
1288ftree-forwprop
1289Common Report Var(flag_tree_forwprop) Init(1) Optimization
1290Enable forward propagation on trees
1291
1292ftree-fre
1293Common Report Var(flag_tree_fre) Optimization
1294Enable Full Redundancy Elimination (FRE) on trees
1295
1296ftree-loop-distribution
1297Common Report Var(flag_tree_loop_distribution) Optimization
1298Enable loop distribution on trees
1299
1300ftree-loop-im
1301Common Report Var(flag_tree_loop_im) Init(1) Optimization
1302Enable loop invariant motion on trees
1303
1304ftree-loop-linear
1305Common Report Var(flag_tree_loop_linear) Optimization
1306Enable linear loop transforms on trees
1307
1308ftree-loop-ivcanon
1309Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1310Create canonical induction variables in loops
1311
1312ftree-loop-optimize
1313Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1314Enable loop optimizations on tree level
1315
1316ftree-parallelize-loops=
1317Common Report Joined UInteger Var(flag_tree_parallelize_loops) Init(1)
1318Enable automatic parallelization of loops
1319
1320ftree-phiprop
1321Common Report Var(flag_tree_phiprop) Init(1) Optimization
1322Enable hoisting loads from conditional pointers.
1323
1324ftree-pre
1325Common Report Var(flag_tree_pre) Optimization
1326Enable SSA-PRE optimization on trees
1327
1328ftree-pta
1329Common Report Var(flag_tree_pta) Init(1) Optimization
1330Perform function-local points-to analysis on trees.
1331
1332ftree-reassoc
1333Common Report Var(flag_tree_reassoc) Init(1) Optimization
1334Enable reassociation on tree level
1335
1336ftree-salias
1337Common
1338Does nothing.  Preserved for backward compatibility.
1339
1340ftree-sink
1341Common Report Var(flag_tree_sink) Optimization
1342Enable SSA code sinking on trees
1343
1344ftree-sra
1345Common Report Var(flag_tree_sra) Optimization
1346Perform scalar replacement of aggregates
1347
1348ftree-ter
1349Common Report Var(flag_tree_ter) Init(1) Optimization
1350Replace temporary expressions in the SSA->normal pass
1351
1352ftree-lrs
1353Common Report Var(flag_tree_live_range_split) Optimization
1354Perform live range splitting during the SSA->normal pass
1355
1356ftree-vrp
1357Common Report Var(flag_tree_vrp) Init(0) Optimization
1358Perform Value Range Propagation on trees
1359
1360funit-at-a-time
1361Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1362Compile whole compilation unit at a time
1363
1364funroll-loops
1365Common Report Var(flag_unroll_loops) Optimization
1366Perform loop unrolling when iteration count is known
1367
1368funroll-all-loops
1369Common Report Var(flag_unroll_all_loops) Optimization
1370Perform loop unrolling for all loops
1371
1372; Nonzero means that loop optimizer may assume that the induction variables
1373; that control loops do not overflow and that the loops with nontrivial
1374; exit condition are not infinite
1375funsafe-loop-optimizations
1376Common Report Var(flag_unsafe_loop_optimizations) Optimization
1377Allow loop optimizations to assume that the loops behave in normal way
1378
1379fassociative-math
1380Common Report Var(flag_associative_math)
1381Allow optimization for floating-point arithmetic which may change the
1382result of the operation due to rounding.
1383
1384freciprocal-math
1385Common Report Var(flag_reciprocal_math)
1386Same as -fassociative-math for expressions which include division.
1387
1388; Nonzero means that unsafe floating-point math optimizations are allowed
1389; for the sake of speed.  IEEE compliance is not guaranteed, and operations
1390; are allowed to assume that their arguments and results are "normal"
1391; (e.g., nonnegative for SQRT).
1392funsafe-math-optimizations
1393Common Report Var(flag_unsafe_math_optimizations) Optimization
1394Allow math optimizations that may violate IEEE or ISO standards
1395
1396funswitch-loops
1397Common Report Var(flag_unswitch_loops) Optimization
1398Perform loop unswitching
1399
1400funwind-tables
1401Common Report Var(flag_unwind_tables) Optimization
1402Just generate unwind tables for exception handling
1403
1404fuse-linker-plugin
1405Common Undocumented
1406
1407fvar-tracking
1408Common Report Var(flag_var_tracking) VarExists Optimization
1409Perform variable tracking
1410
1411fvar-tracking-assignments
1412Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1413Perform variable tracking by annotating assignments
1414
1415fvar-tracking-assignments-toggle
1416Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1417Toggle -fvar-tracking-assignments
1418
1419fvar-tracking-uninit
1420Common Report Var(flag_var_tracking_uninit) Optimization
1421Perform variable tracking and also tag variables that are uninitialized
1422
1423ftree-vectorize
1424Common Report Var(flag_tree_vectorize) Optimization
1425Enable loop vectorization on trees
1426
1427ftree-slp-vectorize
1428Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1429Enable basic block vectorization (SLP) on trees
1430
1431fvect-cost-model
1432Common Report Var(flag_vect_cost_model) Optimization
1433Enable use of cost model in vectorization
1434
1435ftree-vect-loop-version
1436Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1437Enable loop versioning when doing loop vectorization on trees
1438
1439ftree-vectorizer-verbose=
1440Common RejectNegative Joined
1441-ftree-vectorizer-verbose=<number>	Set the verbosity level of the vectorizer
1442
1443ftree-scev-cprop
1444Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1445Enable copy propagation of scalar-evolution information.
1446
1447; -fverbose-asm causes extra commentary information to be produced in
1448; the generated assembly code (to make it more readable).  This option
1449; is generally only of use to those who actually need to read the
1450; generated assembly code (perhaps while debugging the compiler itself).
1451; -fno-verbose-asm, the default, causes the extra information
1452; to not be added and is useful when comparing two assembler files.
1453fverbose-asm
1454Common Report Var(flag_verbose_asm)
1455Add extra commentary to assembler output
1456
1457fvisibility=
1458Common Joined RejectNegative
1459-fvisibility=[default|internal|hidden|protected]	Set the default symbol visibility
1460
1461
1462fvpt
1463Common Report Var(flag_value_profile_transformations) Optimization
1464Use expression value profiles in optimizations
1465
1466fweb
1467Common Report Var(flag_web) Init(2) Optimization
1468Construct webs and split unrelated uses of single variable
1469
1470fwhopr
1471Common Var(flag_whopr)
1472Enable partitioned link-time optimization.
1473
1474ftree-builtin-call-dce
1475Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1476Enable conditional dead code elimination for builtin calls
1477
1478fwhole-program
1479Common Report Var(flag_whole_program) Init(0) Optimization
1480Perform whole program optimizations
1481
1482fwrapv
1483Common Report Var(flag_wrapv) Optimization
1484Assume signed arithmetic overflow wraps around
1485
1486fzero-initialized-in-bss
1487Common Report Var(flag_zero_initialized_in_bss) Init(1)
1488Put zero initialized data in the bss section
1489
1490g
1491Common JoinedOrMissing
1492Generate debug information in default format
1493
1494gcoff
1495Common JoinedOrMissing Negative(gdwarf-)
1496Generate debug information in COFF format
1497
1498gdwarf-
1499Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1500Generate debug information in DWARF v2 (or later) format
1501
1502ggdb
1503Common JoinedOrMissing
1504Generate debug information in default extended format
1505
1506gstabs
1507Common JoinedOrMissing Negative(gstabs+)
1508Generate debug information in STABS format
1509
1510gstabs+
1511Common JoinedOrMissing Negative(gvms)
1512Generate debug information in extended STABS format
1513
1514gno-strict-dwarf
1515Common RejectNegative Var(dwarf_strict,0) Init(-1)
1516Emit DWARF additions beyond selected version
1517
1518gstrict-dwarf
1519Common Report RejectNegative Var(dwarf_strict,1) VarExists
1520Don't emit DWARF additions beyond selected version
1521
1522gtoggle
1523Common Report Var(flag_gtoggle)
1524Toggle debug information generation
1525
1526gvms
1527Common JoinedOrMissing Negative(gxcoff)
1528Generate debug information in VMS format
1529
1530gxcoff
1531Common JoinedOrMissing Negative(gxcoff+)
1532Generate debug information in XCOFF format
1533
1534gxcoff+
1535Common JoinedOrMissing Negative(gcoff)
1536Generate debug information in extended XCOFF format
1537
1538o
1539Common Joined Separate
1540-o <file>	Place output into <file>
1541
1542p
1543Common Var(profile_flag)
1544Enable function profiling
1545
1546pedantic
1547Common Var(pedantic)
1548Issue warnings needed for strict compliance to the standard
1549
1550pedantic-errors
1551Common
1552Like -pedantic but issue them as errors
1553
1554quiet
1555Common Var(quiet_flag)
1556Do not display functions compiled or elapsed time
1557
1558version
1559Common Var(version_flag)
1560Display the compiler's version
1561
1562w
1563Common Var(inhibit_warnings)
1564Suppress warnings
1565
1566shared
1567Common RejectNegative Negative(pie)
1568Create a shared library
1569
1570pie
1571Common RejectNegative Negative(shared)
1572Create a position independent executable
1573
1574; This comment is to ensure we retain the blank line above.
1575