Merged revisions 143552,143554,143557,143560,143562,143564-143567,143570-143573,14357...
[official-gcc.git] / gcc / common.opt
blob2ac36e5032cb79f0b4cbd044c7aed65563abe286
1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
4 ; Free Software Foundation, Inc.
6 ; This file is part of GCC.
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.
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.
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/>.
22 ; See the GCC internals manual (options.texi) for a description of this file's format.
24 ; Please try to keep this file in ASCII collating order.
26 -help
27 Common
28 Display this information
30 -help=
31 Common Report Joined
32 --help=<class>  Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params
34 -target-help
35 Common
36 Alias for --help=target
38 ;; The following three 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).
41 fhelp
42 Common
44 fhelp=
45 Common Joined
47 ftarget-help
48 Common
50 -param
51 Common Separate
52 --param <param>=<value> Set parameter <param> to value.  See below for a complete list of parameters
54 -version
55 Common
58 Common Joined Separate UInteger
59 -G<number>      Put global and static data smaller than <number> bytes into a special section (on some targets)
62 Common JoinedOrMissing Optimization
63 -O<number>      Set optimization level to <number>
66 Common Optimization
67 Optimize for space rather than speed
70 Common RejectNegative
71 This switch is deprecated; use -Wextra instead
73 Waggregate-return
74 Common Var(warn_aggregate_return) Warning
75 Warn about returning structures, unions or arrays
77 Warray-bounds
78 Common Var(warn_array_bounds) Warning
79 Warn if an array is accessed out of bounds
81 Wattributes
82 Common Var(warn_attributes) Init(1) Warning
83 Warn about inappropriate attribute usage
85 Wcast-align
86 Common Var(warn_cast_align) Warning
87 Warn about pointer casts which increase alignment
89 Wdeprecated-declarations
90 Common Var(warn_deprecated_decl) Init(1) Warning
91 Warn about uses of __attribute__((deprecated)) declarations
93 Wdisabled-optimization
94 Common Var(warn_disabled_optimization) Warning
95 Warn when an optimization pass is disabled
97 Wdisallowed-function-list=
98 Common RejectNegative Joined Warning
99 Warn on calls to these functions
101 Werror
102 Common Var(warnings_are_errors)
103 Treat all warnings as errors
105 Werror=
106 Common Joined
107 Treat specified warning as error
109 Wextra
110 Common Warning
111 Print extra (possibly unwanted) warnings
113 Wfatal-errors
114 Common Var(flag_fatal_errors)
115 Exit on the first error occurred
117 Wframe-larger-than=
118 Common RejectNegative Joined UInteger
119 -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
121 Winline
122 Common Var(warn_inline) Warning
123 Warn when an inlined function cannot be inlined
125 Wlarger-than-
126 Common RejectNegative Joined UInteger Warning
128 Wlarger-than=
129 Common RejectNegative Joined UInteger Warning
130 -Wlarger-than=<number>  Warn if an object is larger than <number> bytes
132 Wlogical-op
133 Common Warning Var(warn_logical_op)
134 Warn when a logical operator is suspicously always evaluating to true or false
136 Wunsafe-loop-optimizations
137 Common Var(warn_unsafe_loop_optimizations) Warning
138 Warn if the loop cannot be optimized due to nontrivial assumptions.
140 Wmissing-noreturn
141 Common Var(warn_missing_noreturn) Warning
142 Warn about functions which might be candidates for __attribute__((noreturn))
144 Wmudflap
145 Common Var(warn_mudflap) Init(1) Warning
146 Warn about constructs not instrumented by -fmudflap
148 Woverflow
149 Common Var(warn_overflow) Init(1) Warning
150 Warn about overflow in arithmetic expressions
152 Wpacked
153 Common Var(warn_packed) Warning
154 Warn when the packed attribute has no effect on struct layout
156 Wpadded
157 Common Var(warn_padded) Warning
158 Warn when padding is required to align structure members
160 Wshadow
161 Common Var(warn_shadow) Warning
162 Warn when one local variable shadows another
164 Wstack-protector
165 Common Var(warn_stack_protect) Warning
166 Warn when not issuing stack smashing protection for some reason
168 Wstrict-aliasing
169 Common Warning
170 Warn about code which might break strict aliasing rules
172 Wstrict-aliasing=
173 Common Joined UInteger Var(warn_strict_aliasing) Init(-1) Warning
174 Warn about code which might break strict aliasing rules
176 Wstrict-overflow
177 Common Warning
178 Warn about optimizations that assume that signed overflow is undefined
180 Wstrict-overflow=
181 Common Joined UInteger Var(warn_strict_overflow) Init(-1) Warning
182 Warn about optimizations that assume that signed overflow is undefined
184 Wswitch
185 Common Var(warn_switch) Warning
186 Warn about enumerated switches, with no default, missing a case
188 Wswitch-default
189 Common Var(warn_switch_default) Warning
190 Warn about enumerated switches missing a \"default:\" statement
192 Wswitch-enum
193 Common Var(warn_switch_enum) Warning
194 Warn about all enumerated switches missing a specific case
196 Wsystem-headers
197 Common Var(warn_system_headers) Warning
198 Do not suppress warnings from system headers
200 Wthread-safety
201 Common Var(warn_thread_safety) Warning
202 Warn about potential thread safety issues when the code is annotated with thread safety attributes
204 Wthread-unguarded-var
205 Common Var(warn_thread_unguarded_var) Init(1) Warning
206 Warn about shared variables not properly protected by locks specified in the attributes
208 Wthread-unguarded-func
209 Common Var(warn_thread_unguarded_func) Init(1) Warning
210 Warn about function calls not properly protected by locks specified in the attributes
212 Wthread-mismatched-lock-order
213 Common Var(warn_thread_mismatched_lock_order) Init(1) Warning
214 Warn about lock acquisition order inconsistent with what specified in the attributes
216 Wthread-mismatched-lock-acq-rel
217 Common Var(warn_thread_mismatched_lock_acq_rel) Init(1) Warning
218 Warn about mismatched lock acquisition and release
220 Wthread-reentrant-lock
221 Common Var(warn_thread_reentrant_lock) Init(1) Warning
222 Warn about a lock being acquired recursively
224 Wthread-unsupported-lock-name
225 Common Var(warn_unsupported_lock_name) Init(0) Warning
226 Warn about uses of unsupported lock names in attributes
228 Wtype-limits
229 Common Var(warn_type_limits) Init(-1) Warning
230 Warn if a comparison is always true or always false due to the limited range of the data type
232 Wuninitialized
233 Common Var(warn_uninitialized) Warning
234 Warn about uninitialized automatic variables
236 Wunreachable-code
237 Common Var(warn_notreached) Warning
238 Warn about code that will never be executed
240 Wunused
241 Common Var(warn_unused) Init(0) Warning
242 Enable all -Wunused- warnings
244 Wunused-function
245 Common Var(warn_unused_function) Init(-1) Warning
246 Warn when a function is unused
248 Wunused-label
249 Common Var(warn_unused_label) Init(-1) Warning
250 Warn when a label is unused
252 Wunused-parameter
253 Common Var(warn_unused_parameter) Init(-1) Warning
254 Warn when a function parameter is unused
256 Wunused-value
257 Common Var(warn_unused_value) Init(-1) Warning
258 Warn when an expression value is unused
260 Wunused-variable
261 Common Var(warn_unused_variable) Init(-1) Warning
262 Warn when a variable is unused
264 Wcoverage-mismatch
265 Common RejectNegative Var(warn_coverage_mismatch) Warning
266 Warn instead of error in case profiles in -fprofile-use do not match
268 aux-info
269 Common Separate
270 -aux-info <file>        Emit declaration information into <file>
272 aux-info=
273 Common Joined
275 auxbase
276 Common Separate
278 auxbase-strip
279 Common Separate
282 Common Joined
283 -d<letters>     Enable dumps from specific passes of the compiler
285 dumpbase
286 Common Separate
287 -dumpbase <file>        Set the file basename to be used for dumps
289 ; The version of the C++ ABI in use.  The following values are allowed:
291 ; 0: The version of the ABI believed most conformant with the C++ ABI
292 ;    specification.  This ABI may change as bugs are discovered and fixed.
293 ;    Therefore, 0 will not necessarily indicate the same ABI in different
294 ;    versions of G++.
296 ; 1: The version of the ABI first used in G++ 3.2.
298 ; 2: The version of the ABI first used in G++ 3.4.
300 ; Additional positive integers will be assigned as new versions of
301 ; the ABI become the default version of the ABI.
302 fabi-version=
303 Common Joined UInteger Var(flag_abi_version) Init(2)
305 falign-functions
306 Common Report Var(align_functions,0) Optimization UInteger
307 Align the start of functions
309 falign-functions=
310 Common RejectNegative Joined UInteger
312 falign-jumps
313 Common Report Var(align_jumps,0) Optimization UInteger
314 Align labels which are only reached by jumping
316 falign-jumps=
317 Common RejectNegative Joined UInteger
319 falign-labels
320 Common Report Var(align_labels,0) Optimization UInteger
321 Align all labels
323 falign-labels=
324 Common RejectNegative Joined UInteger
326 falign-loops
327 Common Report Var(align_loops) Optimization UInteger
328 Align the start of loops
330 falign-loops=
331 Common RejectNegative Joined UInteger
333 ; This flag is only tested if alias checking is enabled.
334 ; 0 if pointer arguments may alias each other.  True in C.
335 ; 1 if pointer arguments may not alias each other but may alias
336 ;   global variables.
337 ; 2 if pointer arguments may not alias each other and may not
338 ;   alias global variables.
339 ; 3 if pointer arguments may not alias anything.  True in Fortran.
340 ;   Set by the front end.
341 fargument-alias
342 Common Report Var(flag_argument_noalias,0) Optimization
343 Specify that arguments may alias each other and globals
345 fargument-noalias
346 Common Report Var(flag_argument_noalias,1) VarExists Optimization
347 Assume arguments may alias globals but not each other
349 fargument-noalias-global
350 Common Report Var(flag_argument_noalias,2) VarExists Optimization
351 Assume arguments alias neither each other nor globals
353 fargument-noalias-anything
354 Common Report Var(flag_argument_noalias,3) VarExists Optimization
355 Assume arguments alias no other storage
357 fasynchronous-unwind-tables
358 Common Report Var(flag_asynchronous_unwind_tables) Optimization
359 Generate unwind tables that are exact at each instruction boundary
361 fauto-inc-dec
362 Common Report Var(flag_auto_inc_dec) Init(1)
363 Generate auto-inc/dec instructions
365 ; -fcheck-bounds causes gcc to generate array bounds checks.
366 ; For C, C++ and ObjC: defaults off.
367 ; For Java: defaults to on.
368 ; For Fortran: defaults to off.
369 fbounds-check
370 Common Report Var(flag_bounds_check)
371 Generate code to check bounds before indexing arrays
373 fbranch-count-reg
374 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
375 Replace add, compare, branch with branch on count register
377 fbranch-probabilities
378 Common Report Var(flag_branch_probabilities) Optimization
379 Use profiling information for branch probabilities
381 fbranch-target-load-optimize
382 Common Report Var(flag_branch_target_load_optimize) Optimization
383 Perform branch target load optimization before prologue / epilogue threading
385 fbranch-target-load-optimize2
386 Common Report Var(flag_branch_target_load_optimize2) Optimization
387 Perform branch target load optimization after prologue / epilogue threading
389 fbtr-bb-exclusive
390 Common Report Var(flag_btr_bb_exclusive) Optimization
391 Restrict target load migration not to re-use registers in any basic block
393 fcall-saved-
394 Common Joined RejectNegative
395 -fcall-saved-<register> Mark <register> as being preserved across functions
397 fcall-used-
398 Common Joined RejectNegative
399 -fcall-used-<register>  Mark <register> as being corrupted by function calls
401 ; Nonzero for -fcaller-saves: allocate values in regs that need to
402 ; be saved across function calls, if that produces overall better code.
403 ; Optional now, so people can test it.
404 fcaller-saves
405 Common Report Var(flag_caller_saves) Optimization
406 Save registers around function calls
408 fcheck-data-deps
409 Common Report Var(flag_check_data_deps)
410 Compare the results of several data dependence analyzers.
412 fcommon
413 Common Report Var(flag_no_common,0) Optimization
414 Do not put uninitialized globals in the common section
416 fconserve-stack
417 Common Var(flag_conserve_stack) Optimization
418 Do not perform optimizations increasing noticeably stack usage
420 fcprop-registers
421 Common Report Var(flag_cprop_registers) Optimization
422 Perform a register copy-propagation optimization pass
424 fcrossjumping
425 Common Report Var(flag_crossjumping) Optimization
426 Perform cross-jumping optimization
428 fcse-follow-jumps
429 Common Report Var(flag_cse_follow_jumps) Optimization
430 When running CSE, follow jumps to their targets
432 fcse-skip-blocks
433 Common Report Var(flag_cse_skip_blocks) Optimization
434 When running CSE, follow conditional jumps
436 fcx-limited-range
437 Common Report Var(flag_cx_limited_range) Optimization
438 Omit range reduction step when performing complex division
440 fcx-fortran-rules
441 Common Report Var(flag_cx_fortran_rules) Optimization
442 Complex multiplication and division follow Fortran rules
444 fdata-sections
445 Common Report Var(flag_data_sections) Optimization
446 Place data items into their own section
448 fdbg-cnt-list
449 Common Report
450 List all available debugging counters with their limits and counts.
452 fdbg-cnt=
453 Common RejectNegative Joined
454 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]    Set the debug counter limit.   
456 fdebug-prefix-map=
457 Common Joined RejectNegative
458 Map one directory name to another in debug information
460 ; Nonzero for -fdefer-pop: don't pop args after each function call
461 ; instead save them up to pop many calls' args with one insns.
462 fdefer-pop
463 Common Report Var(flag_defer_pop) Optimization
464 Defer popping functions args from stack until later
466 fdelayed-branch
467 Common Report Var(flag_delayed_branch) Optimization
468 Attempt to fill delay slots of branch instructions
470 fdelete-null-pointer-checks
471 Common Report Var(flag_delete_null_pointer_checks) Optimization
472 Delete useless null pointer checks
474 fdiagnostics-show-location=
475 Common Joined RejectNegative
476 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics
478 fdiagnostics-show-option
479 Common
480 Amend appropriate diagnostic messages with the command line option that controls them
482 fdump-
483 Common Joined RejectNegative
484 -fdump-<type>   Dump various compiler internals to a file
486 fdump-noaddr
487 Common Report Var(flag_dump_noaddr)
488 Suppress output of addresses in debugging dumps
490 fdump-unnumbered
491 Common Report Var(flag_dump_unnumbered) VarExists
492 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
494 fdwarf2-cfi-asm
495 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
496 Enable CFI tables via GAS assembler directives.
498 fearly-inlining
499 Common Report Var(flag_early_inlining) Init(1) Optimization
500 Perform early inlining
502 feliminate-dwarf2-dups
503 Common Report Var(flag_eliminate_dwarf2_dups)
504 Perform DWARF2 duplicate elimination
506 feliminate-unused-debug-symbols
507 Common Report Var(flag_debug_only_used_symbols)
508 Perform unused type elimination in debug info
510 feliminate-unused-debug-types
511 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
512 Perform unused type elimination in debug info
514 femit-class-debug-always
515 Common Report Var(flag_emit_class_debug_always) Init(0)
516 Do not suppress C++ class debug information.
518 fexceptions
519 Common Report Var(flag_exceptions) Optimization
520 Enable exception handling
522 fexpensive-optimizations
523 Common Report Var(flag_expensive_optimizations) Optimization
524 Perform a number of minor, expensive optimizations
526 ffast-math
527 Common
529 ffinite-math-only
530 Common Report Var(flag_finite_math_only) Optimization
531 Assume no NaNs or infinities are generated
533 ffixed-
534 Common Joined RejectNegative
535 -ffixed-<register>      Mark <register> as being unavailable to the compiler
537 ffloat-store
538 Common Report Var(flag_float_store) Optimization
539 Don't allocate floats and doubles in extended-precision registers
541 fforce-addr
542 Common
543 Does nothing.  Preserved for backward compatibility.
545 fforward-propagate
546 Common Report Var(flag_forward_propagate) Optimization
547 Perform a forward propagation pass on RTL
549 ; Nonzero means don't put addresses of constant functions in registers.
550 ; Used for compiling the Unix kernel, where strange substitutions are
551 ; done on the assembly output.
552 ffunction-cse
553 Common Report Var(flag_no_function_cse,0)
554 Allow function addresses to be held in registers
556 ffunction-sections
557 Common Report Var(flag_function_sections)
558 Place each function into its own section
560 fgcse
561 Common Report Var(flag_gcse) Optimization
562 Perform global common subexpression elimination
564 fgcse-lm
565 Common Report Var(flag_gcse_lm) Init(1) Optimization
566 Perform enhanced load motion during global common subexpression elimination
568 fgcse-sm
569 Common Report Var(flag_gcse_sm) Init(0) Optimization
570 Perform store motion after global common subexpression elimination
572 fgcse-las
573 Common Report Var(flag_gcse_las) Init(0) Optimization
574 Perform redundant load after store elimination in global common subexpression
575 elimination
577 fgcse-after-reload
578 Common Report Var(flag_gcse_after_reload) Optimization
579 Perform global common subexpression elimination after register allocation
580 has finished
582 ; This option is not documented yet as its semantics will change.
583 fgraphite
584 Common Report Var(flag_graphite)
585 Enable in and out of Graphite representation
587 floop-strip-mine
588 Common Report Var(flag_loop_strip_mine) Optimization
589 Enable Loop Strip Mining transformation
591 floop-interchange
592 Common Report Var(flag_loop_interchange) Optimization
593 Enable Loop Interchange transformation
595 floop-block
596 Common Report Var(flag_loop_block) Optimization
597 Enable Loop Blocking transformation
599 ; This option is not documented as it does not perform any useful optimization.
600 fgraphite-identity
601 Common Report Var(flag_graphite_identity) Optimization
602 Enable Graphite Identity transformation
604 fguess-branch-probability
605 Common Report Var(flag_guess_branch_prob) Optimization
606 Enable guessing of branch probabilities
608 ; Nonzero means ignore `#ident' directives.  0 means handle them.
609 ; Generate position-independent code for executables if possible
610 ; On SVR4 targets, it also controls whether or not to emit a
611 ; string identifying the compiler.
612 fident
613 Common Report Var(flag_no_ident,0)
614 Process #ident directives
616 fif-conversion
617 Common Report Var(flag_if_conversion) Optimization
618 Perform conversion of conditional jumps to branchless equivalents
620 fif-conversion2
621 Common Report Var(flag_if_conversion2) Optimization
622 Perform conversion of conditional jumps to conditional execution
624 ; -finhibit-size-directive inhibits output of .size for ELF.
625 ; This is used only for compiling crtstuff.c,
626 ; and it may be extended to other effects
627 ; needed for crtstuff.c on other systems.
628 finhibit-size-directive
629 Common Report Var(flag_inhibit_size_directive)
630 Do not generate .size directives
632 findirect-inlining
633 Common Report Var(flag_indirect_inlining)
634 Perform indirect inlining
636 ; Nonzero means that functions declared `inline' will be treated
637 ; as `static'.  Prevents generation of zillions of copies of unused
638 ; static inline functions; instead, `inlines' are written out
639 ; only when actually used.  Used in conjunction with -g.  Also
640 ; does the right thing with #pragma interface.
641 finline
642 Common Report Var(flag_no_inline,0) Init(0)
643 Pay attention to the \"inline\" keyword
645 finline-small-functions
646 Common Report Var(flag_inline_small_functions) Optimization
647 Integrate simple functions into their callers when code size is known to not growth
649 finline-functions
650 Common Report Var(flag_inline_functions) Optimization
651 Integrate simple functions into their callers
653 finline-functions-called-once
654 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
655 Integrate functions called once into their callers
657 finline-limit-
658 Common RejectNegative Joined UInteger
660 finline-limit=
661 Common RejectNegative Joined UInteger
662 -finline-limit=<number> Limit the size of inlined functions to <number>
664 finstrument-functions
665 Common Report Var(flag_instrument_function_entry_exit)
666 Instrument function entry and exit with profiling calls
668 finstrument-functions-exclude-function-list=
669 Common RejectNegative Joined
670 -finstrument-functions-exclude-function-list=name,...  Do not instrument listed functions
672 finstrument-functions-exclude-file-list=
673 Common RejectNegative Joined
674 -finstrument-functions-exclude-file-list=filename,...  Do not instrument functions listed in files
676 fipa-cp
677 Common Report Var(flag_ipa_cp) Optimization
678 Perform Interprocedural constant propagation
680 fipa-cp-clone
681 Common Report Var(flag_ipa_cp_clone) Optimization
682 Perform cloning to make Interprocedural constant propagation stronger
684 fipa-pure-const
685 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
686 Discover pure and const functions
688 fipa-pta
689 Common Report Var(flag_ipa_pta) Init(0) Optimization
690 Perform interprocedural points-to analysis
692 fipa-reference
693 Common Report Var(flag_ipa_reference) Init(0) Optimization
694 Discover readonly and non addressable static variables
696 fipa-type-escape
697 Common Report Var(flag_ipa_type_escape) Init(0) Optimization
698 Type based escape and alias analysis
700 fipa-matrix-reorg
701 Common Report Var(flag_ipa_matrix_reorg) Optimization
702 Perform matrix layout flattening and transposing based
703 on profiling information.
705 fipa-struct-reorg
706 Common Report Var(flag_ipa_struct_reorg)
707 Perform structure layout optimizations based
708 on profiling information.
710 fira-algorithm=
711 Common Joined RejectNegative
712 -fira-algorithm=[CB|priority] Set the used IRA algorithm
714 fira-region=
715 Common Joined RejectNegative
716 -fira-region=[one|all|mixed] Set regions for IRA
718 fira-coalesce
719 Common Report Var(flag_ira_coalesce) Init(0)
720 Do optimistic coalescing.
722 fira-share-save-slots
723 Common Report Var(flag_ira_share_save_slots) Init(1)
724 Share slots for saving different hard registers.
726 fira-share-spill-slots
727 Common Report Var(flag_ira_share_spill_slots) Init(1)
728 Share stack slots for spilled pseudo-registers.
730 fira-verbose=
731 Common RejectNegative Joined UInteger
732 -fira-verbose=<number> Control IRA's level of diagnostic messages.
734 fivopts
735 Common Report Var(flag_ivopts) Init(1) Optimization
736 Optimize induction variables on trees
738 fjump-tables
739 Common Var(flag_jump_tables) Init(1) Optimization
740 Use jump tables for sufficiently large switch statements
742 fkeep-inline-functions
743 Common Report Var(flag_keep_inline_functions)
744 Generate code for functions even if they are fully inlined
746 fkeep-static-consts
747 Common Report Var(flag_keep_static_consts) Init(1)
748 Emit static const variables even if they are not used
750 fleading-underscore
751 Common Report Var(flag_leading_underscore) Init(-1)
752 Give external symbols a leading underscore
754 floop-optimize
755 Common
756 Does nothing.  Preserved for backward compatibility.
758 fmath-errno
759 Common Report Var(flag_errno_math) Init(1) Optimization
760 Set errno after built-in math functions
762 fmem-report
763 Common Report Var(mem_report)
764 Report on permanent memory allocation
766 ; This will attempt to merge constant section constants, if 1 only
767 ; string constants and constants from constant pool, if 2 also constant
768 ; variables.
769 fmerge-all-constants
770 Common Report Var(flag_merge_constants,2) Init(1) Optimization
771 Attempt to merge identical constants and constant variables
773 fmerge-constants
774 Common Report Var(flag_merge_constants,1) VarExists Optimization
775 Attempt to merge identical constants across compilation units
777 fmerge-debug-strings
778 Common Report Var(flag_merge_debug_strings) Init(1)
779 Attempt to merge identical debug strings across compilation units
781 fmessage-length=
782 Common RejectNegative Joined UInteger
783 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
785 fmodulo-sched
786 Common Report Var(flag_modulo_sched) Optimization
787 Perform SMS based modulo scheduling before the first scheduling pass
789 fmodulo-sched-allow-regmoves
790 Common Report Var(flag_modulo_sched_allow_regmoves)
791 Perform SMS based modulo scheduling with register moves allowed
793 fmove-loop-invariants
794 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
795 Move loop invariant computations out of loops
797 fmudflap
798 Common RejectNegative Report Var(flag_mudflap)
799 Add mudflap bounds-checking instrumentation for single-threaded program
801 fmudflapth
802 Common RejectNegative Report VarExists Var(flag_mudflap,2)
803 Add mudflap bounds-checking instrumentation for multi-threaded program
805 fmudflapir
806 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
807 Ignore read operations when inserting mudflap instrumentation
809 fdce
810 Common Var(flag_dce) Init(1) Optimization
811 Use the RTL dead code elimination pass
813 fdse
814 Common Var(flag_dse) Init(1) Optimization
815 Use the RTL dead store elimination pass
817 freschedule-modulo-scheduled-loops
818 Common Report Var(flag_resched_modulo_sched) Optimization
819 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
821 fnon-call-exceptions
822 Common Report Var(flag_non_call_exceptions) Optimization
823 Support synchronous non-call exceptions
825 fomit-frame-pointer
826 Common Report Var(flag_omit_frame_pointer) Optimization
827 When possible do not generate stack frames
829 foptimize-register-move
830 Common Report Var(flag_regmove) Optimization
831 Do the full register move optimization pass
833 foptimize-sibling-calls
834 Common Report Var(flag_optimize_sibling_calls) Optimization
835 Optimize sibling and tail recursive calls
837 fpre-ipa-mem-report
838 Common Report Var(pre_ipa_mem_report)
839 Report on memory allocation before interprocedural optimization
841 fpost-ipa-mem-report
842 Common Report Var(post_ipa_mem_report)
843 Report on memory allocation before interprocedural optimization
845 fpack-struct
846 Common Report Var(flag_pack_struct) Optimization
847 Pack structure members together without holes
849 fpack-struct=
850 Common RejectNegative Joined UInteger Optimization
851 -fpack-struct=<number>  Set initial maximum structure member alignment
853 fpcc-struct-return
854 Common Report Var(flag_pcc_struct_return,1) VarExists
855 Return small aggregates in memory, not registers
857 fpeel-loops
858 Common Report Var(flag_peel_loops) Optimization
859 Perform loop peeling
861 fpeephole
862 Common Report Var(flag_no_peephole,0) Optimization
863 Enable machine specific peephole optimizations
865 fpeephole2
866 Common Report Var(flag_peephole2) Optimization
867 Enable an RTL peephole pass before sched2
869 fPIC
870 Common Report Var(flag_pic,2)
871 Generate position-independent code if possible (large mode)
873 fPIE
874 Common Report Var(flag_pie,2)
875 Generate position-independent code for executables if possible (large mode)
877 fpic
878 Common Report Var(flag_pic,1) VarExists
879 Generate position-independent code if possible (small mode)
881 fpie
882 Common Report Var(flag_pie,1) VarExists
883 Generate position-independent code for executables if possible (small mode)
885 fpredictive-commoning
886 Common Report Var(flag_predictive_commoning) Optimization
887 Run predictive commoning optimization.
889 fprefetch-loop-arrays
890 Common Report Var(flag_prefetch_loop_arrays) Optimization
891 Generate prefetch instructions, if available, for arrays in loops
893 fprofile
894 Common Report Var(profile_flag)
895 Enable basic program profiling code
897 fprofile-arcs
898 Common Report Var(profile_arc_flag)
899 Insert arc-based program profiling code
901 fprofile-dir=
902 Common Joined RejectNegative
903 Set the top-level directory for storing the profile data.
904 The default is 'pwd'.
906 fprofile-correction
907 Common Report Var(flag_profile_correction)
908 Enable correction of flow inconsistent profile data input
910 fprofile-generate
911 Common
912 Enable common options for generating profile info for profile feedback directed optimizations
914 fprofile-generate=
915 Common Joined RejectNegative
916 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
918 fprofile-use
919 Common Var(flag_profile_use)
920 Enable common options for performing profile feedback directed optimizations
922 fprofile-use=
923 Common Joined RejectNegative
924 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
926 fprofile-values
927 Common Report Var(flag_profile_values)
928 Insert code to profile values of expressions
930 frandom-seed
931 Common
933 frandom-seed=
934 Common Joined RejectNegative
935 -frandom-seed=<string>  Make compile reproducible using <string>
937 ; This switch causes the command line that was used to create an
938 ; object file to be recorded into the object file.  The exact format
939 ; of this recording is target and binary file format dependent.
940 ; It is related to the -fverbose-asm switch, but that switch only
941 ; records information in the assembler output file as comments, so
942 ; they never reach the object file.
943 frecord-gcc-switches
944 Common Report Var(flag_record_gcc_switches)
945 Record gcc command line switches in the object file.
947 freg-struct-return
948 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
949 Return small aggregates in registers
951 fregmove
952 Common Report Var(flag_regmove) Optimization
953 Enables a register move optimization
955 frename-registers
956 Common Report Var(flag_rename_registers) Init(2) Optimization
957 Perform a register renaming optimization pass
959 freorder-blocks
960 Common Report Var(flag_reorder_blocks) Optimization
961 Reorder basic blocks to improve code placement
963 freorder-blocks-and-partition
964 Common Report Var(flag_reorder_blocks_and_partition) Optimization
965 Reorder basic blocks and partition into hot and cold sections
967 freorder-functions
968 Common Report Var(flag_reorder_functions) Optimization
969 Reorder functions to improve code placement
971 frerun-cse-after-loop
972 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
973 Add a common subexpression elimination pass after loop optimizations
975 frerun-loop-opt
976 Common
977 Does nothing.  Preserved for backward compatibility.
979 frounding-math
980 Common Report Var(flag_rounding_math) Optimization
981 Disable optimizations that assume default FP rounding behavior
983 fsched-interblock
984 Common Report Var(flag_schedule_interblock) Init(1) Optimization
985 Enable scheduling across basic blocks
987 fsched-spec
988 Common Report Var(flag_schedule_speculative) Init(1) Optimization
989 Allow speculative motion of non-loads
991 fsched-spec-load
992 Common Report Var(flag_schedule_speculative_load) Optimization
993 Allow speculative motion of some loads
995 fsched-spec-load-dangerous
996 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
997 Allow speculative motion of more loads
999 fsched-verbose=
1000 Common RejectNegative Joined
1001 -fsched-verbose=<number>        Set the verbosity level of the scheduler
1003 fsched2-use-superblocks
1004 Common Report Var(flag_sched2_use_superblocks) Optimization
1005 If scheduling post reload, do superblock scheduling
1007 fsched2-use-traces
1008 Common Report Var(flag_sched2_use_traces) Optimization
1009 If scheduling post reload, do trace scheduling
1011 fschedule-insns
1012 Common Report Var(flag_schedule_insns) Optimization
1013 Reschedule instructions before register allocation
1015 fschedule-insns2
1016 Common Report Var(flag_schedule_insns_after_reload) Optimization
1017 Reschedule instructions after register allocation
1019 ; This flag should be on when a target implements non-trivial
1020 ; scheduling hooks, maybe saving some information for its own sake.
1021 ; On IA64, for example, this is used for correct bundling. 
1022 fselective-scheduling
1023 Common Report Var(flag_selective_scheduling) Optimization
1024 Schedule instructions using selective scheduling algorithm
1026 fselective-scheduling2
1027 Common Report Var(flag_selective_scheduling2) Optimization 
1028 Run selective scheduling after reload
1030 fsel-sched-pipelining
1031 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1032 Perform software pipelining of inner loops during selective scheduling
1034 fsel-sched-pipelining-outer-loops
1035 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1036 Perform software pipelining of outer loops during selective scheduling
1038 fsel-sched-reschedule-pipelined
1039 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1040 Reschedule pipelined regions without pipelining
1042 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1043 ; of stalled insns into the ready list.
1044 fsched-stalled-insns
1045 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1046 Allow premature scheduling of queued insns
1048 fsched-stalled-insns=
1049 Common RejectNegative Joined UInteger
1050 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled
1052 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1053 ; be examined for a dependency on a stalled insn that is candidate for
1054 ; premature removal from the queue of stalled insns into the ready list (has
1055 ; an effect only if the flag 'sched_stalled_insns' is set).
1056 fsched-stalled-insns-dep
1057 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1058 Set dependence distance checking in premature scheduling of queued insns
1060 fsched-stalled-insns-dep=
1061 Common RejectNegative Joined UInteger
1062 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns
1064 fsection-anchors
1065 Common Report Var(flag_section_anchors) Optimization
1066 Access data in the same section from shared anchor points
1068 frtl-abstract-sequences
1069 Common Report Var(flag_rtl_seqabstr) Optimization
1070 Perform sequence abstraction optimization on RTL
1072 fsee
1073 Common Report Var(flag_see) Init(0)
1074 Eliminate redundant sign extensions using LCM.
1076 fshow-column
1077 Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(0)
1078 Show column numbers in diagnostics, when available.  Default off
1080 fsignaling-nans
1081 Common Report Var(flag_signaling_nans) Optimization
1082 Disable optimizations observable by IEEE signaling NaNs
1084 fsigned-zeros
1085 Common Report Var(flag_signed_zeros) Init(1) Optimization
1086 Disable floating point optimizations that ignore the IEEE signedness of zero
1088 fsingle-precision-constant
1089 Common Report Var(flag_single_precision_constant) Optimization
1090 Convert floating point constants to single precision constants
1092 fsplit-ivs-in-unroller
1093 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1094 Split lifetimes of induction variables when loops are unrolled
1096 fsplit-wide-types
1097 Common Report Var(flag_split_wide_types) Optimization
1098 Split wide types into independent registers
1100 fvariable-expansion-in-unroller
1101 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1102 Apply variable expansion when loops are unrolled
1104 fstack-check=
1105 Common Report RejectNegative Joined
1106 -fstack-check=[no|generic|specific]     Insert stack checking code into the program
1108 fstack-check
1109 Common Report
1110 Insert stack checking code into the program.  Same as -fstack-check=specific
1112 fstack-limit
1113 Common
1115 fstack-limit-register=
1116 Common RejectNegative Joined
1117 -fstack-limit-register=<register>       Trap if the stack goes past <register>
1119 fstack-limit-symbol=
1120 Common RejectNegative Joined
1121 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>
1123 fstack-protector
1124 Common Report Var(flag_stack_protect, 1)
1125 Use propolice as a stack protection method
1127 fstack-protector-all
1128 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1129 Use a stack protection method for every function
1131 fstrength-reduce
1132 Common
1133 Does nothing.  Preserved for backward compatibility.
1135 ; Nonzero if we should do (language-dependent) alias analysis.
1136 ; Typically, this analysis will assume that expressions of certain
1137 ; types do not alias expressions of certain other types.  Only used
1138 ; if alias analysis (in general) is enabled.
1139 fstrict-aliasing
1140 Common Report Var(flag_strict_aliasing) Optimization
1141 Assume strict aliasing rules apply
1143 fstrict-overflow
1144 Common Report Var(flag_strict_overflow)
1145 Treat signed overflow as undefined
1147 fsyntax-only
1148 Common Report Var(flag_syntax_only)
1149 Check for syntax errors, then stop
1151 ftest-coverage
1152 Common Report Var(flag_test_coverage)
1153 Create data files needed by \"gcov\"
1155 fthread-jumps
1156 Common Report Var(flag_thread_jumps) Optimization
1157 Perform jump threading optimizations
1159 ftime-report
1160 Common Report Var(time_report)
1161 Report the time taken by each compiler pass
1163 ftls-model=
1164 Common Joined RejectNegative
1165 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model
1167 ftoplevel-reorder
1168 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1169 Reorder top level functions, variables, and asms
1171 ftracer
1172 Common Report Var(flag_tracer)
1173 Perform superblock formation via tail duplication
1175 ; Zero means that floating-point math operations cannot generate a
1176 ; (user-visible) trap.  This is the case, for example, in nonstop
1177 ; IEEE 754 arithmetic.
1178 ftrapping-math
1179 Common Report Var(flag_trapping_math) Init(1) Optimization
1180 Assume floating-point operations can trap
1182 ftrapv
1183 Common Report Var(flag_trapv) Optimization
1184 Trap for signed overflow in addition, subtraction and multiplication
1186 ftree-ccp
1187 Common Report Var(flag_tree_ccp) Optimization
1188 Enable SSA-CCP optimization on trees
1190 ftree-store-ccp
1191 Common
1192 Does nothing.  Preserved for backward compatibility.
1194 ftree-ch
1195 Common Report Var(flag_tree_ch) Optimization
1196 Enable loop header copying on trees
1198 ftree-copyrename
1199 Common Report Var(flag_tree_copyrename) Optimization
1200 Replace SSA temporaries with better names in copies
1202 ftree-copy-prop
1203 Common Report Var(flag_tree_copy_prop) Optimization
1204 Enable copy propagation on trees
1206 ftree-store-copy-prop
1207 Common
1208 Does nothing.  Preserved for backward compatibility.
1210 ftree-cselim
1211 Common Report Var(flag_tree_cselim) Init(2) Optimization
1212 Transform condition stores into unconditional ones
1214 ftree-switch-conversion
1215 Common Report Var(flag_tree_switch_conversion) Optimization
1216 Perform conversions of switch initializations.
1218 ftree-dce
1219 Common Report Var(flag_tree_dce) Optimization
1220 Enable SSA dead code elimination optimization on trees
1222 ftree-dominator-opts
1223 Common Report Var(flag_tree_dom) Optimization
1224 Enable dominator optimizations
1226 ftree-dse
1227 Common Report Var(flag_tree_dse) Optimization
1228 Enable dead store elimination
1230 ftree-fre
1231 Common Report Var(flag_tree_fre) Optimization
1232 Enable Full Redundancy Elimination (FRE) on trees
1234 ftree-loop-distribution
1235 Common Report Var(flag_tree_loop_distribution) Optimization
1236 Enable loop distribution on trees
1238 ftree-loop-im
1239 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1240 Enable loop invariant motion on trees
1242 ftree-loop-linear
1243 Common Report Var(flag_tree_loop_linear) Optimization
1244 Enable linear loop transforms on trees
1246 ftree-loop-ivcanon
1247 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1248 Create canonical induction variables in loops
1250 ftree-loop-optimize
1251 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1252 Enable loop optimizations on tree level
1254 ftree-parallelize-loops=
1255 Common Report Joined UInteger Var(flag_tree_parallelize_loops) Init(1)
1256 Enable automatic parallelization of loops
1258 ftree-pre
1259 Common Report Var(flag_tree_pre) Optimization
1260 Enable SSA-PRE optimization on trees
1262 ftree-reassoc
1263 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1264 Enable reassociation on tree level
1266 ftree-salias
1267 Common
1268 Does nothing.  Preserved for backward compatibility.
1270 ftree-sink
1271 Common Report Var(flag_tree_sink) Optimization
1272 Enable SSA code sinking on trees
1274 ftree-sra
1275 Common Report Var(flag_tree_sra) Optimization
1276 Perform scalar replacement of aggregates
1278 ftree-ter
1279 Common Report Var(flag_tree_ter) Init(1) Optimization
1280 Replace temporary expressions in the SSA->normal pass
1282 ftree-lrs
1283 Common Report Var(flag_tree_live_range_split) Optimization
1284 Perform live range splitting during the SSA->normal pass
1286 ftree-vrp
1287 Common Report Var(flag_tree_vrp) Init(0) Optimization
1288 Perform Value Range Propagation on trees
1290 funit-at-a-time
1291 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1292 Compile whole compilation unit at a time
1294 funroll-loops
1295 Common Report Var(flag_unroll_loops) Optimization
1296 Perform loop unrolling when iteration count is known
1298 funroll-all-loops
1299 Common Report Var(flag_unroll_all_loops) Optimization
1300 Perform loop unrolling for all loops
1302 ; Nonzero means that loop optimizer may assume that the induction variables
1303 ; that control loops do not overflow and that the loops with nontrivial
1304 ; exit condition are not infinite
1305 funsafe-loop-optimizations
1306 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1307 Allow loop optimizations to assume that the loops behave in normal way
1309 fassociative-math
1310 Common Report Var(flag_associative_math)
1311 Allow optimization for floating-point arithmetic which may change the
1312 result of the operation due to rounding.
1314 freciprocal-math
1315 Common Report Var(flag_reciprocal_math)
1316 Same as -fassociative-math for expressions which include division.
1318 ; Nonzero means that unsafe floating-point math optimizations are allowed
1319 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
1320 ; are allowed to assume that their arguments and results are "normal"
1321 ; (e.g., nonnegative for SQRT).
1322 funsafe-math-optimizations
1323 Common Report Var(flag_unsafe_math_optimizations) Optimization
1324 Allow math optimizations that may violate IEEE or ISO standards
1326 funswitch-loops
1327 Common Report Var(flag_unswitch_loops) Optimization
1328 Perform loop unswitching
1330 funwind-tables
1331 Common Report Var(flag_unwind_tables) Optimization
1332 Just generate unwind tables for exception handling
1334 fvar-tracking
1335 Common Report Var(flag_var_tracking) VarExists Optimization
1336 Perform variable tracking
1338 fvar-tracking-uninit
1339 Common Report Var(flag_var_tracking_uninit) Optimization
1340 Perform variable tracking and also tag variables that are uninitialized
1342 ftree-vectorize
1343 Common Report Var(flag_tree_vectorize) Optimization
1344 Enable loop vectorization on trees
1346 fvect-cost-model
1347 Common Report Var(flag_vect_cost_model) Optimization
1348 Enable use of cost model in vectorization
1350 ftree-vect-loop-version
1351 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1352 Enable loop versioning when doing loop vectorization on trees
1354 ftree-vectorizer-verbose=
1355 Common RejectNegative Joined
1356 -ftree-vectorizer-verbose=<number>      Set the verbosity level of the vectorizer
1358 ftree-scev-cprop
1359 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1360 Enable copy propagation of scalar-evolution information.
1362 ; -fverbose-asm causes extra commentary information to be produced in
1363 ; the generated assembly code (to make it more readable).  This option
1364 ; is generally only of use to those who actually need to read the
1365 ; generated assembly code (perhaps while debugging the compiler itself).
1366 ; -fno-verbose-asm, the default, causes the extra information
1367 ; to not be added and is useful when comparing two assembler files.
1368 fverbose-asm
1369 Common Report Var(flag_verbose_asm)
1370 Add extra commentary to assembler output
1372 fvisibility=
1373 Common Joined RejectNegative
1374 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility
1377 fvpt
1378 Common Report Var(flag_value_profile_transformations) Optimization
1379 Use expression value profiles in optimizations
1381 fweb
1382 Common Report Var(flag_web) Init(2) Optimization
1383 Construct webs and split unrelated uses of single variable
1385 ftree-builtin-call-dce
1386 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1387 Enable conditional dead code elimination for builtin calls
1389 fwhole-program
1390 Common Report Var(flag_whole_program) Init(0) Optimization
1391 Perform whole program optimizations
1393 fwrapv
1394 Common Report Var(flag_wrapv) Optimization
1395 Assume signed arithmetic overflow wraps around
1397 fzero-initialized-in-bss
1398 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1399 Put zero initialized data in the bss section
1402 Common JoinedOrMissing
1403 Generate debug information in default format
1405 gcoff
1406 Common JoinedOrMissing Negative(gdwarf-2)
1407 Generate debug information in COFF format
1409 gdwarf-2
1410 Common JoinedOrMissing Negative(gstabs)
1411 Generate debug information in DWARF v2 format
1413 ggdb
1414 Common JoinedOrMissing
1415 Generate debug information in default extended format
1417 gstabs
1418 Common JoinedOrMissing Negative(gstabs+)
1419 Generate debug information in STABS format
1421 gstabs+
1422 Common JoinedOrMissing Negative(gvms)
1423 Generate debug information in extended STABS format
1425 gvms
1426 Common JoinedOrMissing Negative(gxcoff)
1427 Generate debug information in VMS format
1429 gxcoff
1430 Common JoinedOrMissing Negative(gxcoff+)
1431 Generate debug information in XCOFF format
1433 gxcoff+
1434 Common JoinedOrMissing Negative(gcoff)
1435 Generate debug information in extended XCOFF format
1438 Common Joined Separate
1439 -o <file>       Place output into <file>
1442 Common Var(profile_flag)
1443 Enable function profiling
1445 pedantic
1446 Common Var(pedantic)
1447 Issue warnings needed for strict compliance to the standard
1449 pedantic-errors
1450 Common
1451 Like -pedantic but issue them as errors
1453 quiet
1454 Common Var(quiet_flag)
1455 Do not display functions compiled or elapsed time
1457 version
1458 Common Var(version_flag)
1459 Display the compiler's version
1462 Common Var(inhibit_warnings)
1463 Suppress warnings
1465 shared
1466 Common RejectNegative Negative(pie)
1467 Create a shared library
1470 Common RejectNegative Negative(shared)
1471 Create a position independent executable
1473 ; This comment is to ensure we retain the blank line above.