1; Options for the language- and target-independent parts of the compiler.
2
3; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
4;
5; This file is part of GCC.
6;
7; GCC is free software; you can redistribute it and/or modify it under
8; the terms of the GNU General Public License as published by the Free
9; Software Foundation; either version 2, or (at your option) any later
10; version.
11; 
12; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15; for more details.
16; 
17; You should have received a copy of the GNU General Public License
18; along with GCC; see the file COPYING.  If not, write to the Free
19; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
20; 02110-1301, USA.
21
22; See the GCC internals manual 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-param
31Common Separate
32--param <param>=<value>	Set parameter <param> to value.  See below for a complete list of parameters
33
34-target-help
35Common
36
37-version
38Common
39
40G
41Common Joined Separate UInteger
42-G<number>	Put global and static data smaller than <number> bytes into a special section (on some targets)
43
44O
45Common JoinedOrMissing
46-O<number>	Set optimization level to <number>
47
48Os
49Common
50Optimize for space rather than speed
51
52W
53Common RejectNegative
54This switch is deprecated; use -Wextra instead
55
56Waggregate-return
57Common Var(warn_aggregate_return)
58Warn about returning structures, unions or arrays
59
60Wattributes
61Common Var(warn_attributes) Init(1)
62Warn about inappropriate attribute usage
63
64Wcast-align
65Common Var(warn_cast_align)
66Warn about pointer casts which increase alignment
67
68Wdeprecated-declarations
69Common Var(warn_deprecated_decl) Init(1)
70Warn about uses of __attribute__((deprecated)) declarations
71
72Wdisabled-optimization
73Common Var(warn_disabled_optimization)
74Warn when an optimization pass is disabled
75
76Werror
77Common Var(warnings_are_errors)
78Treat all warnings as errors
79
80Wextra
81Common
82Print extra (possibly unwanted) warnings
83
84Wfatal-errors
85Common Var(flag_fatal_errors)
86Exit on the first error occurred
87
88Winline
89Common Var(warn_inline)
90Warn when an inlined function cannot be inlined
91
92Wlarger-than-
93Common RejectNegative Joined UInteger
94-Wlarger-than-<number>	Warn if an object is larger than <number> bytes
95
96Wunsafe-loop-optimizations
97Common Var(warn_unsafe_loop_optimizations)
98Warn if the loop cannot be optimized due to nontrivial assumptions.
99
100Wmissing-noreturn
101Common Var(warn_missing_noreturn)
102Warn about functions which might be candidates for __attribute__((noreturn))
103
104Wpacked
105Common Var(warn_packed)
106Warn when the packed attribute has no effect on struct layout
107
108Wpadded
109Common Var(warn_padded)
110Warn when padding is required to align structure members
111
112Wshadow
113Common Var(warn_shadow)
114Warn when one local variable shadows another
115
116Wstack-protector
117Common Var(warn_stack_protect)
118Warn when not issuing stack smashing protection for some reason
119
120Wstrict-aliasing
121Common
122Warn about code which might break strict aliasing rules
123
124Wstrict-aliasing=
125Common Joined UInteger
126Warn about code which might break strict aliasing rules
127
128Wswitch
129Common Var(warn_switch)
130Warn about enumerated switches, with no default, missing a case
131
132Wswitch-default
133Common Var(warn_switch_default)
134Warn about enumerated switches missing a \"default:\" statement
135
136Wswitch-enum
137Common Var(warn_switch_enum)
138Warn about all enumerated switches missing a specific case
139
140Wsystem-headers
141Common Var(warn_system_headers)
142Do not suppress warnings from system headers
143
144Wuninitialized
145Common Var(warn_uninitialized)
146Warn about uninitialized automatic variables
147
148Wunreachable-code
149Common Var(warn_notreached)
150Warn about code that will never be executed
151
152Wunused
153Common
154Enable all -Wunused- warnings
155
156Wunused-function
157Common Var(warn_unused_function)
158Warn when a function is unused
159
160Wunused-label
161Common Var(warn_unused_label)
162Warn when a label is unused
163
164Wunused-parameter
165Common Var(warn_unused_parameter)
166Warn when a function parameter is unused
167
168Wunused-value
169Common Var(warn_unused_value)
170Warn when an expression value is unused
171
172Wunused-variable
173Common Var(warn_unused_variable)
174Warn when a variable is unused
175
176Wvolatile-register-var
177Common Var(warn_register_var)
178Warn when a register variable is declared volatile
179
180aux-info
181Common Separate
182-aux-info <file>	Emit declaration information into <file>
183
184aux-info=
185Common Joined
186
187auxbase
188Common Separate
189
190auxbase-strip
191Common Separate
192
193d
194Common Joined
195-d<letters>	Enable dumps from specific passes of the compiler
196
197dumpbase
198Common Separate
199-dumpbase <file>	Set the file basename to be used for dumps
200
201; The version of the C++ ABI in use.  The following values are allowed:
202;
203; 0: The version of the ABI believed most conformant with the C++ ABI
204;    specification.  This ABI may change as bugs are discovered and fixed.
205;    Therefore, 0 will not necessarily indicate the same ABI in different
206;    versions of G++.
207;
208; 1: The version of the ABI first used in G++ 3.2.
209;
210; Additional positive integers will be assigned as new versions of
211; the ABI become the default version of the ABI.
212fabi-version=
213Common Joined UInteger Var(flag_abi_version) Init(2)
214
215falign-functions
216Common Report Var(align_functions,0)
217Align the start of functions
218
219falign-functions=
220Common RejectNegative Joined UInteger
221
222falign-jumps
223Common Report Var(align_jumps,0)
224Align labels which are only reached by jumping
225
226falign-jumps=
227Common RejectNegative Joined UInteger
228
229falign-labels
230Common Report Var(align_labels,0)
231Align all labels
232
233falign-labels=
234Common RejectNegative Joined UInteger
235
236falign-loops
237Common Report Var(align_loops)
238Align the start of loops
239
240falign-loops=
241Common RejectNegative Joined UInteger
242
243; This flag is only tested if alias checking is enabled.
244; 0 if pointer arguments may alias each other.  True in C.
245; 1 if pointer arguments may not alias each other but may alias
246;   global variables.
247; 2 if pointer arguments may not alias each other and may not
248;   alias global variables.  True in Fortran.
249fargument-alias
250Common Report Var(flag_argument_noalias,0)
251Specify that arguments may alias each other and globals
252
253fargument-noalias
254Common Report Var(flag_argument_noalias,1) VarExists
255Assume arguments may alias globals but not each other
256
257fargument-noalias-global
258Common Report Var(flag_argument_noalias,2) VarExists
259Assume arguments alias neither each other nor globals
260
261fasynchronous-unwind-tables
262Common Report Var(flag_asynchronous_unwind_tables)
263Generate unwind tables that are exact at each instruction boundary
264
265; -fcheck-bounds causes gcc to generate array bounds checks.
266; For C, C++ and ObjC: defaults off.
267; For Java: defaults to on.
268; For Fortran: defaults to off.
269fbounds-check
270Common Report Var(flag_bounds_check)
271Generate code to check bounds before indexing arrays
272
273fbranch-count-reg
274Common Report Var(flag_branch_on_count_reg) Init(1)
275Replace add, compare, branch with branch on count register
276
277fbranch-probabilities
278Common Report Var(flag_branch_probabilities)
279Use profiling information for branch probabilities
280
281fbranch-target-load-optimize
282Common Report Var(flag_branch_target_load_optimize)
283Perform branch target load optimization before prologue / epilogue threading
284
285fbranch-target-load-optimize2
286Common Report Var(flag_branch_target_load_optimize2)
287Perform branch target load optimization after prologue / epilogue threading
288
289fbtr-bb-exclusive
290Common Report Var(flag_btr_bb_exclusive)
291Restrict target load migration not to re-use registers in any basic block
292
293fcall-saved-
294Common Joined RejectNegative
295-fcall-saved-<register>	Mark <register> as being preserved across functions
296
297fcall-used-
298Common Joined RejectNegative
299-fcall-used-<register>	Mark <register> as being corrupted by function calls
300
301; Nonzero for -fcaller-saves: allocate values in regs that need to
302; be saved across function calls, if that produces overall better code.
303; Optional now, so people can test it.
304fcaller-saves
305Common Report Var(flag_caller_saves)
306Save registers around function calls
307
308fcommon
309Common Report Var(flag_no_common,0)
310Do not put uninitialized globals in the common section
311
312fcprop-registers
313Common Report Var(flag_cprop_registers)
314Perform a register copy-propagation optimization pass
315
316fcrossjumping
317Common Report Var(flag_crossjumping)
318Perform cross-jumping optimization
319
320fcse-follow-jumps
321Common Report Var(flag_cse_follow_jumps)
322When running CSE, follow jumps to their targets
323
324fcse-skip-blocks
325Common Report Var(flag_cse_skip_blocks)
326When running CSE, follow conditional jumps
327
328fcx-limited-range
329Common Report Var(flag_cx_limited_range)
330Omit range reduction step when performing complex division
331
332fdata-sections
333Common Report Var(flag_data_sections)
334Place data items into their own section
335
336; Nonzero for -fdefer-pop: don't pop args after each function call
337; instead save them up to pop many calls' args with one insns.
338fdefer-pop
339Common Report Var(flag_defer_pop)
340Defer popping functions args from stack until later
341
342fdelayed-branch
343Common Report Var(flag_delayed_branch)
344Attempt to fill delay slots of branch instructions
345
346fdelete-null-pointer-checks
347Common Report Var(flag_delete_null_pointer_checks)
348Delete useless null pointer checks
349
350fdiagnostics-show-location=
351Common Joined RejectNegative
352-fdiagnostics-show-location=[once|every-line]	How often to emit source location at the beginning of line-wrapped diagnostics
353
354fdiagnostics-show-option
355Common
356Amend appropriate diagnostic messages with the command line option that controls them
357
358fdump-
359Common Joined RejectNegative
360-fdump-<type>	Dump various compiler internals to a file
361
362fdump-unnumbered
363Common Report Var(flag_dump_unnumbered) VarExists
364Suppress output of instruction numbers and line number notes in debugging dumps
365
366fearly-inlining
367Common Report Var(flag_early_inlining) Init(1)
368Perform early inlining
369
370feliminate-dwarf2-dups
371Common Report Var(flag_eliminate_dwarf2_dups)
372Perform DWARF2 duplicate elimination
373
374feliminate-unused-debug-symbols
375Common Report Var(flag_debug_only_used_symbols)
376Perform unused type elimination in debug info
377
378feliminate-unused-debug-types
379Common Report Var(flag_eliminate_unused_debug_types) Init(1)
380Perform unused type elimination in debug info
381
382fexceptions
383Common Report Var(flag_exceptions)
384Enable exception handling
385
386fexpensive-optimizations
387Common Report Var(flag_expensive_optimizations)
388Perform a number of minor, expensive optimizations
389
390ffast-math
391Common
392
393ffinite-math-only
394Common Report Var(flag_finite_math_only)
395Assume no NaNs or infinities are generated
396
397ffixed-
398Common Joined RejectNegative
399-ffixed-<register>	Mark <register> as being unavailable to the compiler
400
401ffloat-store
402Common Report Var(flag_float_store)
403Don't allocate floats and doubles in extended-precision registers
404
405; Nonzero for -fforce-addr: load memory address into a register before
406; reference to memory.  This makes better cse but slower compilation.
407fforce-addr
408Common Report Var(flag_force_addr)
409Copy memory address constants into registers before use
410
411; Nonzero for -fforce-mem: load memory value into a register
412; before arithmetic on it.  This makes better cse but slower compilation.
413fforce-mem
414Common Report Var(flag_force_mem)
415Copy memory operands into registers before use
416
417; Nonzero means don't put addresses of constant functions in registers.
418; Used for compiling the Unix kernel, where strange substitutions are
419; done on the assembly output.
420ffunction-cse
421Common Report Var(flag_no_function_cse,0)
422Allow function addresses to be held in registers
423
424ffunction-sections
425Common Report Var(flag_function_sections)
426Place each function into its own section
427
428fgcse
429Common Report Var(flag_gcse)
430Perform global common subexpression elimination
431
432fgcse-lm
433Common Report Var(flag_gcse_lm) Init(1)
434Perform enhanced load motion during global common subexpression elimination
435
436fgcse-sm
437Common Report Var(flag_gcse_sm) Init(0)
438Perform store motion after global common subexpression elimination
439
440fgcse-las
441Common Report Var(flag_gcse_las) Init(0)
442Perform redundant load after store elimination in global common subexpression
443elimination
444
445fgcse-after-reload
446Common Report Var(flag_gcse_after_reload)
447Perform global common subexpression elimination after register allocation
448has finished
449
450fguess-branch-probability
451Common Report Var(flag_guess_branch_prob)
452Enable guessing of branch probabilities
453
454; Nonzero means ignore `#ident' directives.  0 means handle them.
455; Generate position-independent code for executables if possible
456; On SVR4 targets, it also controls whether or not to emit a
457; string identifying the compiler.
458fident
459Common Report Var(flag_no_ident,0)
460Process #ident directives
461
462fif-conversion
463Common Report Var(flag_if_conversion)
464Perform conversion of conditional jumps to branchless equivalents
465
466fif-conversion2
467Common Report Var(flag_if_conversion2)
468Perform conversion of conditional jumps to conditional execution
469
470; -finhibit-size-directive inhibits output of .size for ELF.
471; This is used only for compiling crtstuff.c,
472; and it may be extended to other effects
473; needed for crtstuff.c on other systems.
474finhibit-size-directive
475Common Report Var(flag_inhibit_size_directive)
476Do not generate .size directives
477
478; Nonzero means that functions declared `inline' will be treated
479; as `static'.  Prevents generation of zillions of copies of unused
480; static inline functions; instead, `inlines' are written out
481; only when actually used.  Used in conjunction with -g.  Also
482; does the right thing with #pragma interface.
483finline
484Common Report Var(flag_no_inline,0) Init(2)
485Pay attention to the \"inline\" keyword
486
487finline-functions
488Common Report Var(flag_inline_functions)
489Integrate simple functions into their callers
490
491finline-functions-called-once
492Common Report Var(flag_inline_functions_called_once) Init(1)
493Integrate functions called once into their callers
494
495finline-limit-
496Common RejectNegative Joined UInteger
497
498finline-limit=
499Common RejectNegative Joined UInteger
500-finline-limit=<number>	Limit the size of inlined functions to <number>
501
502finstrument-functions
503Common Report Var(flag_instrument_function_entry_exit)
504Instrument function entry and exit with profiling calls
505
506fipa-cp
507Common Report Var(flag_ipa_cp)
508Perform Interprocedural constant propagation
509
510fipa-pure-const
511Common Report Var(flag_ipa_pure_const) Init(0)
512Discover pure and const functions
513
514fipa-reference
515Common Report Var(flag_ipa_reference) Init(0)
516Discover readonly and non addressable static variables
517
518fipa-type-escape
519Common Report Var(flag_ipa_type_escape) Init(0)
520Type based escape and alias analysis
521
522fivopts
523Common Report Var(flag_ivopts) Init(1)
524Optimize induction variables on trees
525
526fjump-tables
527Common Var(flag_jump_tables) Init(1)
528Use jump tables for sufficiently large switch statements
529
530fkeep-inline-functions
531Common Report Var(flag_keep_inline_functions)
532Generate code for functions even if they are fully inlined
533
534fkeep-static-consts
535Common Report Var(flag_keep_static_consts) Init(1)
536Emit static const variables even if they are not used
537
538fleading-underscore
539Common Report Var(flag_leading_underscore) Init(-1)
540Give external symbols a leading underscore
541
542floop-optimize
543Common Report Var(flag_loop_optimize)
544Perform loop optimizations
545
546floop-optimize2
547Common Report Var(flag_loop_optimize2)
548Perform loop optimizations using the new loop optimizer
549
550fmath-errno
551Common Report Var(flag_errno_math) Init(1)
552Set errno after built-in math functions
553
554fmem-report
555Common Report Var(mem_report)
556Report on permanent memory allocation
557
558; This will attempt to merge constant section constants, if 1 only
559; string constants and constants from constant pool, if 2 also constant
560; variables.
561fmerge-all-constants
562Common Report Var(flag_merge_constants,2) Init(1)
563Attempt to merge identical constants and constant variables
564
565fmerge-constants
566Common Report Var(flag_merge_constants,1) VarExists
567Attempt to merge identical constants across compilation units
568
569fmessage-length=
570Common RejectNegative Joined UInteger
571-fmessage-length=<number>	Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
572
573fmodulo-sched
574Common Report Var(flag_modulo_sched)
575Perform SMS based modulo scheduling before the first scheduling pass
576
577fmove-loop-invariants
578Common Report Var(flag_move_loop_invariants)
579Move loop invariant computations out of loops
580
581fmudflap
582Common RejectNegative Report Var(flag_mudflap)
583Add mudflap bounds-checking instrumentation for single-threaded program
584
585fmudflapth
586Common RejectNegative Report Var(flag_mudflap_threads)
587Add mudflap bounds-checking instrumentation for multi-threaded program
588
589fmudflapir
590Common RejectNegative Report Var(flag_mudflap_ignore_reads)
591Ignore read operations when inserting mudflap instrumentation
592
593freschedule-modulo-scheduled-loops
594Common Report Var(flag_resched_modulo_sched)
595Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
596
597fnon-call-exceptions
598Common Report Var(flag_non_call_exceptions)
599Support synchronous non-call exceptions
600
601fomit-frame-pointer
602Common Report Var(flag_omit_frame_pointer)
603When possible do not generate stack frames
604
605foptimize-register-move
606Common Report Var(flag_regmove)
607Do the full register move optimization pass
608
609foptimize-sibling-calls
610Common Report Var(flag_optimize_sibling_calls)
611Optimize sibling and tail recursive calls
612
613fpack-struct
614Common Report Var(flag_pack_struct)
615Pack structure members together without holes
616
617fpack-struct=
618Common RejectNegative Joined UInteger
619-fpack-struct=<number>	Set initial maximum structure member alignment
620
621fpcc-struct-return
622Common Report Var(flag_pcc_struct_return,1) VarExists
623Return small aggregates in memory, not registers
624
625fpeel-loops
626Common Report Var(flag_peel_loops)
627Perform loop peeling
628
629fpeephole
630Common Report Var(flag_no_peephole,0)
631Enable machine specific peephole optimizations
632
633fpeephole2
634Common Report Var(flag_peephole2)
635Enable an RTL peephole pass before sched2
636
637fPIC
638Common Report Var(flag_pic,2)
639Generate position-independent code if possible (large mode)
640
641fPIE
642Common Report Var(flag_pie,2)
643Generate position-independent code for executables if possible (large mode)
644
645fpic
646Common Report Var(flag_pic,1) VarExists
647Generate position-independent code if possible (small mode)
648
649fpie
650Common Report Var(flag_pie,1) VarExists
651Generate position-independent code for executables if possible (small mode)
652
653fprefetch-loop-arrays
654Common Report Var(flag_prefetch_loop_arrays)
655Generate prefetch instructions, if available, for arrays in loops
656
657fprofile
658Common Report Var(profile_flag)
659Enable basic program profiling code
660
661fprofile-arcs
662Common Report Var(profile_arc_flag)
663Insert arc-based program profiling code
664
665fprofile-generate
666Common
667Enable common options for generating profile info for profile feedback directed optimizations
668
669fprofile-use
670Common
671Enable common options for performing profile feedback directed optimizations
672
673fprofile-values
674Common Report Var(flag_profile_values)
675Insert code to profile values of expressions
676
677frandom-seed
678Common
679
680frandom-seed=
681Common Joined RejectNegative
682-frandom-seed=<string>	Make compile reproducible using <string>
683
684freg-struct-return
685Common Report Var(flag_pcc_struct_return,0) VarExists
686Return small aggregates in registers
687
688fregmove
689Common Report Var(flag_regmove)
690Enables a register move optimization
691
692frename-registers
693Common Report Var(flag_rename_registers) Init(2)
694Perform a register renaming optimization pass
695
696freorder-blocks
697Common Report Var(flag_reorder_blocks)
698Reorder basic blocks to improve code placement
699
700freorder-blocks-and-partition
701Common Report Var(flag_reorder_blocks_and_partition)
702Reorder basic blocks and partition into hot and cold sections
703
704freorder-functions
705Common Report Var(flag_reorder_functions)
706Reorder functions to improve code placement
707
708frerun-cse-after-loop
709Common Report Var(flag_rerun_cse_after_loop) Init(2)
710Add a common subexpression elimination pass after loop optimizations
711
712frerun-loop-opt
713Common Report Var(flag_rerun_loop_opt)
714Run the loop optimizer twice
715
716frounding-math
717Common Report Var(flag_rounding_math)
718Disable optimizations that assume default FP rounding behavior
719
720fsched-interblock
721Common Report Var(flag_schedule_interblock) Init(1)
722Enable scheduling across basic blocks
723
724fsched-spec
725Common Report Var(flag_schedule_speculative) Init(1)
726Allow speculative motion of non-loads
727
728fsched-spec-load
729Common Report Var(flag_schedule_speculative_load)
730Allow speculative motion of some loads
731
732fsched-spec-load-dangerous
733Common Report Var(flag_schedule_speculative_load_dangerous)
734Allow speculative motion of more loads
735
736fsched-verbose=
737Common RejectNegative Joined
738-fsched-verbose=<number>	Set the verbosity level of the scheduler
739
740fsched2-use-superblocks
741Common Report Var(flag_sched2_use_superblocks)
742If scheduling post reload, do superblock scheduling
743
744fsched2-use-traces
745Common Report Var(flag_sched2_use_traces)
746If scheduling post reload, do trace scheduling
747
748fschedule-insns
749Common Report Var(flag_schedule_insns)
750Reschedule instructions before register allocation
751
752fschedule-insns2
753Common Report Var(flag_schedule_insns_after_reload)
754Reschedule instructions after register allocation
755
756; sched_stalled_insns means that insns can be moved prematurely from the queue
757; of stalled insns into the ready list.
758fsched-stalled-insns
759Common Report Var(flag_sched_stalled_insns)
760Allow premature scheduling of queued insns
761
762fsched-stalled-insns=
763Common RejectNegative Joined UInteger 
764-fsched-stalled-insns=<number>	Set number of queued insns that can be prematurely scheduled
765
766; sched_stalled_insns_dep controls how many recently scheduled cycles will
767; be examined for a dependency on a stalled insn that is candidate for
768; premature removal from the queue of stalled insns into the ready list (has
769; an effect only if the flag 'sched_stalled_insns' is set).
770fsched-stalled-insns-dep
771Common Report Var(flag_sched_stalled_insns_dep,1) Init(1)
772Set dependence distance checking in premature scheduling of queued insns
773
774fsched-stalled-insns-dep=
775Common RejectNegative Joined UInteger
776-fsched-stalled-insns-dep=<number>	Set dependence distance checking in premature scheduling of queued insns
777
778fshared-data
779Common Report Var(flag_shared_data)
780Mark data as shared rather than private
781
782fshow-column
783Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1)
784Show column numbers in diagnostics, when available.  Default on
785
786fsignaling-nans
787Common Report Var(flag_signaling_nans)
788Disable optimizations observable by IEEE signaling NaNs
789
790fsingle-precision-constant
791Common Report Var(flag_single_precision_constant)
792Convert floating point constants to single precision constants
793
794fsplit-ivs-in-unroller
795Common Report Var(flag_split_ivs_in_unroller) Init(1)
796Split lifetimes of induction variables when loops are unrolled
797
798fvariable-expansion-in-unroller
799Common Report Var(flag_variable_expansion_in_unroller) 
800Apply variable expansion when loops are unrolled
801
802; Emit code to probe the stack, to help detect stack overflow; also
803; may cause large objects to be allocated dynamically.
804fstack-check
805Common Report Var(flag_stack_check)
806Insert stack checking code into the program
807
808fstack-limit
809Common
810
811fstack-limit-register=
812Common RejectNegative Joined
813-fstack-limit-register=<register>	Trap if the stack goes past <register>
814
815fstack-limit-symbol=
816Common RejectNegative Joined
817-fstack-limit-symbol=<name>	Trap if the stack goes past symbol <name>
818
819fstack-protector
820Common Report Var(flag_stack_protect, 1)
821Use propolice as a stack protection method
822
823fstack-protector-all
824Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
825Use a stack protection method for every function
826
827fstrength-reduce
828Common Report Var(flag_strength_reduce)
829Perform strength reduction optimizations
830
831; Nonzero if we should do (language-dependent) alias analysis.
832; Typically, this analysis will assume that expressions of certain
833; types do not alias expressions of certain other types.  Only used
834; if alias analysis (in general) is enabled.
835fstrict-aliasing
836Common Report Var(flag_strict_aliasing)
837Assume strict aliasing rules apply
838
839fsyntax-only
840Common Report Var(flag_syntax_only)
841Check for syntax errors, then stop
842
843ftest-coverage
844Common Report Var(flag_test_coverage)
845Create data files needed by \"gcov\"
846
847fthread-jumps
848Common Report Var(flag_thread_jumps)
849Perform jump threading optimizations
850
851ftime-report
852Common Report Var(time_report)
853Report the time taken by each compiler pass
854
855ftls-model=
856Common Joined RejectNegative
857-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]	Set the default thread-local storage code generation model
858
859ftracer
860Common Report Var(flag_tracer)
861Perform superblock formation via tail duplication
862
863; Zero means that floating-point math operations cannot generate a
864; (user-visible) trap.  This is the case, for example, in nonstop
865; IEEE 754 arithmetic.
866ftrapping-math
867Common Report Var(flag_trapping_math) Init(1)
868Assume floating-point operations can trap
869
870ftrapv
871Common Report Var(flag_trapv)
872Trap for signed overflow in addition, subtraction and multiplication
873
874ftree-ccp
875Common Report Var(flag_tree_ccp)
876Enable SSA-CCP optimization on trees
877
878ftree-store-ccp
879Common Report Var(flag_tree_store_ccp)
880Enable SSA-CCP optimization for stores and loads
881
882ftree-ch
883Common Report Var(flag_tree_ch)
884Enable loop header copying on trees
885
886ftree-combine-temps
887Common Report Var(flag_tree_combine_temps)
888Coalesce memory temporaries in the SSA->normal pass
889
890ftree-copyrename
891Common Report Var(flag_tree_copyrename)
892Replace SSA temporaries with better names in copies
893
894ftree-copy-prop
895Common Report Var(flag_tree_copy_prop)
896Enable copy propagation on trees
897
898ftree-store-copy-prop
899Common Report Var(flag_tree_store_copy_prop)
900Enable copy propagation for stores and loads
901
902ftree-dce
903Common Report Var(flag_tree_dce)
904Enable SSA dead code elimination optimization on trees
905
906ftree-dominator-opts
907Common Report Var(flag_tree_dom)
908Enable dominator optimizations
909
910ftree-dse
911Common Report Var(flag_tree_dse)
912Enable dead store elimination
913
914ftree-fre
915Common Report Var(flag_tree_fre)
916Enable Full Redundancy Elimination (FRE) on trees
917
918ftree-loop-im
919Common Report Var(flag_tree_loop_im) Init(1)
920Enable loop invariant motion on trees
921
922ftree-loop-linear
923Common Report Var(flag_tree_loop_linear)
924Enable linear loop transforms on trees
925
926ftree-loop-ivcanon
927Common Report Var(flag_tree_loop_ivcanon) Init(1)
928Create canonical induction variables in loops
929
930ftree-loop-optimize
931Common Report Var(flag_tree_loop_optimize) Init(1)
932Enable loop optimizations on tree level
933
934ftree-pre
935Common Report Var(flag_tree_pre)
936Enable SSA-PRE optimization on trees
937
938ftree-salias
939Common Report Var(flag_tree_salias)
940Perform structural alias analysis
941
942ftree-sink
943Common Report Var(flag_tree_sink)
944Enable SSA code sinking on trees
945
946ftree-sra
947Common Report Var(flag_tree_sra)
948Perform scalar replacement of aggregates
949
950ftree-ter
951Common Report Var(flag_tree_ter)
952Replace temporary expressions in the SSA->normal pass
953
954ftree-lrs
955Common Report Var(flag_tree_live_range_split)
956Perform live range splitting during the SSA->normal pass
957
958ftree-vrp
959Common Report Var(flag_tree_vrp) Init(0)
960Perform Value Range Propagation on trees
961
962funit-at-a-time
963Common Report Var(flag_unit_at_a_time)
964Compile whole compilation unit at a time
965
966funroll-loops
967Common Report Var(flag_unroll_loops)
968Perform loop unrolling when iteration count is known
969
970funroll-all-loops
971Common Report Var(flag_unroll_all_loops)
972Perform loop unrolling for all loops
973
974; Nonzero means that loop optimizer may assume that the induction variables
975; that control loops do not overflow and that the loops with nontrivial
976; exit condition are not infinite
977funsafe-loop-optimizations
978Common Report Var(flag_unsafe_loop_optimizations)
979Allow loop optimizations to assume that the loops behave in normal way
980
981; Nonzero means that unsafe floating-point math optimizations are allowed
982; for the sake of speed.  IEEE compliance is not guaranteed, and operations
983; are allowed to assume that their arguments and results are "normal"
984; (e.g., nonnegative for SQRT).
985funsafe-math-optimizations
986Common Report Var(flag_unsafe_math_optimizations)
987Allow math optimizations that may violate IEEE or ISO standards
988
989funswitch-loops
990Common Report Var(flag_unswitch_loops)
991Perform loop unswitching
992
993funwind-tables
994Common Report Var(flag_unwind_tables)
995Just generate unwind tables for exception handling
996
997fvar-tracking
998Common Report Var(flag_var_tracking) VarExists
999Perform variable tracking
1000
1001ftree-vectorize
1002Common Report Var(flag_tree_vectorize)
1003Enable loop vectorization on trees
1004
1005ftree-vect-loop-version
1006Common Report Var(flag_tree_vect_loop_version) Init(1)
1007Enable loop versioning when doing loop vectorization on trees
1008
1009ftree-vectorizer-verbose=
1010Common RejectNegative Joined
1011-ftree-vectorizer-verbose=<number>	Set the verbosity level of the vectorizer
1012
1013; -fverbose-asm causes extra commentary information to be produced in
1014; the generated assembly code (to make it more readable).  This option
1015; is generally only of use to those who actually need to read the
1016; generated assembly code (perhaps while debugging the compiler itself).
1017; -fno-verbose-asm, the default, causes the extra information
1018; to not be added and is useful when comparing two assembler files.
1019fverbose-asm
1020Common Report Var(flag_verbose_asm)
1021Add extra commentary to assembler output
1022
1023fvisibility=
1024Common Joined RejectNegative
1025-fvisibility=[default|internal|hidden|protected]	Set the default symbol visibility
1026
1027
1028fvpt
1029Common Report Var(flag_value_profile_transformations)
1030Use expression value profiles in optimizations
1031
1032fweb
1033Common Report Var(flag_web) Init(2)
1034Construct webs and split unrelated uses of single variable
1035
1036fwhole-program
1037Common Report Var(flag_whole_program) Init(0)
1038Perform whole program optimizations
1039
1040fwrapv
1041Common Report Var(flag_wrapv)
1042Assume signed arithmetic overflow wraps around
1043
1044fzero-initialized-in-bss
1045Common Report Var(flag_zero_initialized_in_bss) Init(1)
1046Put zero initialized data in the bss section
1047
1048g
1049Common JoinedOrMissing
1050Generate debug information in default format
1051
1052gcoff
1053Common JoinedOrMissing
1054Generate debug information in COFF format
1055
1056gdwarf-2
1057Common JoinedOrMissing
1058Generate debug information in DWARF v2 format
1059
1060ggdb
1061Common JoinedOrMissing
1062Generate debug information in default extended format
1063
1064gstabs
1065Common JoinedOrMissing
1066Generate debug information in STABS format
1067
1068gstabs+
1069Common JoinedOrMissing
1070Generate debug information in extended STABS format
1071
1072gvms
1073Common JoinedOrMissing
1074Generate debug information in VMS format
1075
1076gxcoff
1077Common JoinedOrMissing
1078Generate debug information in XCOFF format
1079
1080gxcoff+
1081Common JoinedOrMissing
1082Generate debug information in extended XCOFF format
1083
1084o
1085Common Joined Separate
1086-o <file>	Place output into <file>
1087
1088p
1089Common Var(profile_flag)
1090Enable function profiling
1091
1092pedantic
1093Common Var(pedantic)
1094Issue warnings needed for strict compliance to the standard
1095
1096pedantic-errors
1097Common
1098Like -pedantic but issue them as errors
1099
1100quiet
1101Common Var(quiet_flag)
1102Do not display functions compiled or elapsed time
1103
1104version
1105Common Var(version_flag)
1106Display the compiler's version
1107
1108w
1109Common Var(inhibit_warnings)
1110Suppress warnings
1111
1112; This comment is to ensure we retain the blank line above.
1113