2007-02-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
[official-gcc.git] / gcc / common.opt
blob1be3b748d01b7a3656571ce5bbc9dc6772b05503
1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
5 ; This file is part of GCC.
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.
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.
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.
22 ; See the GCC internals manual 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
63 -O<number>      Set optimization level to <number>
66 Common
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)
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 Werror
98 Common Var(warnings_are_errors)
99 Treat all warnings as errors
101 Werror=
102 Common Joined
103 Treat specified warning as error
105 Wextra
106 Common Warning
107 Print extra (possibly unwanted) warnings
109 Wfatal-errors
110 Common Var(flag_fatal_errors)
111 Exit on the first error occurred
113 Winline
114 Common Var(warn_inline) Warning
115 Warn when an inlined function cannot be inlined
117 Wlarger-than-
118 Common RejectNegative Joined UInteger Warning
119 -Wlarger-than-<number>  Warn if an object is larger than <number> bytes
121 Wunsafe-loop-optimizations
122 Common Var(warn_unsafe_loop_optimizations) Warning
123 Warn if the loop cannot be optimized due to nontrivial assumptions.
125 Wmissing-noreturn
126 Common Var(warn_missing_noreturn) Warning
127 Warn about functions which might be candidates for __attribute__((noreturn))
129 Woverflow
130 Common Var(warn_overflow) Init(1) Warning
131 Warn about overflow in arithmetic expressions
133 Wpacked
134 Common Var(warn_packed) Warning
135 Warn when the packed attribute has no effect on struct layout
137 Wpadded
138 Common Var(warn_padded) Warning
139 Warn when padding is required to align structure members
141 Wshadow
142 Common Var(warn_shadow) Warning
143 Warn when one local variable shadows another
145 Wstack-protector
146 Common Var(warn_stack_protect) Warning
147 Warn when not issuing stack smashing protection for some reason
149 Wstrict-aliasing
150 Common Warning
151 Warn about code which might break strict aliasing rules
153 Wstrict-aliasing=
154 Common Joined UInteger Warning
155 Warn about code which might break strict aliasing rules
157 Wstrict-overflow
158 Common
159 Warn about optimizations that assume that signed overflow is undefined
161 Wstrict-overflow=
162 Common Joined UInteger
163 Warn about optimizations that assume that signed overflow is undefined
165 Wswitch
166 Common Var(warn_switch) Warning
167 Warn about enumerated switches, with no default, missing a case
169 Wswitch-default
170 Common Var(warn_switch_default) Warning
171 Warn about enumerated switches missing a \"default:\" statement
173 Wswitch-enum
174 Common Var(warn_switch_enum) Warning
175 Warn about all enumerated switches missing a specific case
177 Wsystem-headers
178 Common Var(warn_system_headers) Warning
179 Do not suppress warnings from system headers
181 Wuninitialized
182 Common Var(warn_uninitialized) Warning
183 Warn about uninitialized automatic variables
185 Wunreachable-code
186 Common Var(warn_notreached) Warning
187 Warn about code that will never be executed
189 Wunused
190 Common Warning
191 Enable all -Wunused- warnings
193 Wunused-function
194 Common Var(warn_unused_function) Warning
195 Warn when a function is unused
197 Wunused-label
198 Common Var(warn_unused_label) Warning
199 Warn when a label is unused
201 Wunused-parameter
202 Common Var(warn_unused_parameter) Warning
203 Warn when a function parameter is unused
205 Wunused-value
206 Common Var(warn_unused_value) Warning
207 Warn when an expression value is unused
209 Wunused-variable
210 Common Var(warn_unused_variable) Warning
211 Warn when a variable is unused
213 Wvolatile-register-var
214 Common Var(warn_register_var) Warning
215 Warn when a register variable is declared volatile
217 Wcoverage-mismatch
218 Common RejectNegative Var(warn_coverage_mismatch)
219 Warn instead of error in case profiles in -fprofile-use do not match
221 aux-info
222 Common Separate
223 -aux-info <file>        Emit declaration information into <file>
225 aux-info=
226 Common Joined
228 auxbase
229 Common Separate
231 auxbase-strip
232 Common Separate
235 Common Joined
236 -d<letters>     Enable dumps from specific passes of the compiler
238 dumpbase
239 Common Separate
240 -dumpbase <file>        Set the file basename to be used for dumps
242 ; The version of the C++ ABI in use.  The following values are allowed:
244 ; 0: The version of the ABI believed most conformant with the C++ ABI
245 ;    specification.  This ABI may change as bugs are discovered and fixed.
246 ;    Therefore, 0 will not necessarily indicate the same ABI in different
247 ;    versions of G++.
249 ; 1: The version of the ABI first used in G++ 3.2.
251 ; Additional positive integers will be assigned as new versions of
252 ; the ABI become the default version of the ABI.
253 fabi-version=
254 Common Joined UInteger Var(flag_abi_version) Init(2)
256 falign-functions
257 Common Report Var(align_functions,0)
258 Align the start of functions
260 falign-functions=
261 Common RejectNegative Joined UInteger
263 falign-jumps
264 Common Report Var(align_jumps,0) Optimization
265 Align labels which are only reached by jumping
267 falign-jumps=
268 Common RejectNegative Joined UInteger
270 falign-labels
271 Common Report Var(align_labels,0) Optimization
272 Align all labels
274 falign-labels=
275 Common RejectNegative Joined UInteger
277 falign-loops
278 Common Report Var(align_loops) Optimization
279 Align the start of loops
281 falign-loops=
282 Common RejectNegative Joined UInteger
284 ; This flag is only tested if alias checking is enabled.
285 ; 0 if pointer arguments may alias each other.  True in C.
286 ; 1 if pointer arguments may not alias each other but may alias
287 ;   global variables.
288 ; 2 if pointer arguments may not alias each other and may not
289 ;   alias global variables.
290 ; 3 if pointer arguments may not alias anything.  True in Fortran.
291 ;   Set by the front end.
292 fargument-alias
293 Common Report Var(flag_argument_noalias,0) Optimization
294 Specify that arguments may alias each other and globals
296 fargument-noalias
297 Common Report Var(flag_argument_noalias,1) VarExists Optimization
298 Assume arguments may alias globals but not each other
300 fargument-noalias-global
301 Common Report Var(flag_argument_noalias,2) VarExists Optimization
302 Assume arguments alias neither each other nor globals
304 fargument-noalias-anything
305 Common Report Var(flag_argument_noalias,3) VarExists Optimization
306 Assume arguments alias no other storage
308 fasynchronous-unwind-tables
309 Common Report Var(flag_asynchronous_unwind_tables) Optimization
310 Generate unwind tables that are exact at each instruction boundary
312 ; -fcheck-bounds causes gcc to generate array bounds checks.
313 ; For C, C++ and ObjC: defaults off.
314 ; For Java: defaults to on.
315 ; For Fortran: defaults to off.
316 fbounds-check
317 Common Report Var(flag_bounds_check)
318 Generate code to check bounds before indexing arrays
320 fbranch-count-reg
321 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
322 Replace add, compare, branch with branch on count register
324 fbranch-probabilities
325 Common Report Var(flag_branch_probabilities) Optimization
326 Use profiling information for branch probabilities
328 fbranch-target-load-optimize
329 Common Report Var(flag_branch_target_load_optimize) Optimization
330 Perform branch target load optimization before prologue / epilogue threading
332 fbranch-target-load-optimize2
333 Common Report Var(flag_branch_target_load_optimize2) Optimization
334 Perform branch target load optimization after prologue / epilogue threading
336 fbtr-bb-exclusive
337 Common Report Var(flag_btr_bb_exclusive) Optimization
338 Restrict target load migration not to re-use registers in any basic block
340 fcall-saved-
341 Common Joined RejectNegative
342 -fcall-saved-<register> Mark <register> as being preserved across functions
344 fcall-used-
345 Common Joined RejectNegative
346 -fcall-used-<register>  Mark <register> as being corrupted by function calls
348 ; Nonzero for -fcaller-saves: allocate values in regs that need to
349 ; be saved across function calls, if that produces overall better code.
350 ; Optional now, so people can test it.
351 fcaller-saves
352 Common Report Var(flag_caller_saves) Optimization
353 Save registers around function calls
355 fcommon
356 Common Report Var(flag_no_common,0) Optimization
357 Do not put uninitialized globals in the common section
359 fcprop-registers
360 Common Report Var(flag_cprop_registers) Optimization
361 Perform a register copy-propagation optimization pass
363 fcrossjumping
364 Common Report Var(flag_crossjumping) Optimization
365 Perform cross-jumping optimization
367 fcse-follow-jumps
368 Common Report Var(flag_cse_follow_jumps) Optimization
369 When running CSE, follow jumps to their targets
371 fcse-skip-blocks
372 Common Report Var(flag_cse_skip_blocks) Optimization
373 When running CSE, follow conditional jumps
375 fcx-limited-range
376 Common Report Var(flag_cx_limited_range) Optimization
377 Omit range reduction step when performing complex division
379 fdata-sections
380 Common Report Var(flag_data_sections) Optimization
381 Place data items into their own section
383 ; Nonzero for -fdefer-pop: don't pop args after each function call
384 ; instead save them up to pop many calls' args with one insns.
385 fdefer-pop
386 Common Report Var(flag_defer_pop) Optimization
387 Defer popping functions args from stack until later
389 fdelayed-branch
390 Common Report Var(flag_delayed_branch) Optimization
391 Attempt to fill delay slots of branch instructions
393 fdelete-null-pointer-checks
394 Common Report Var(flag_delete_null_pointer_checks) Optimization
395 Delete useless null pointer checks
397 fdiagnostics-show-location=
398 Common Joined RejectNegative
399 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics
401 fdiagnostics-show-option
402 Common
403 Amend appropriate diagnostic messages with the command line option that controls them
405 fdump-
406 Common Joined RejectNegative
407 -fdump-<type>   Dump various compiler internals to a file
409 fdump-noaddr
410 Common Report Var(flag_dump_noaddr)
411 Suppress output of addresses in debugging dumps
413 fdump-unnumbered
414 Common Report Var(flag_dump_unnumbered) VarExists
415 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
417 fearly-inlining
418 Common Report Var(flag_early_inlining) Init(1) Optimization
419 Perform early inlining
421 feliminate-dwarf2-dups
422 Common Report Var(flag_eliminate_dwarf2_dups)
423 Perform DWARF2 duplicate elimination
425 feliminate-unused-debug-symbols
426 Common Report Var(flag_debug_only_used_symbols)
427 Perform unused type elimination in debug info
429 feliminate-unused-debug-types
430 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
431 Perform unused type elimination in debug info
433 femit-class-debug-always
434 Common Report Var(flag_emit_class_debug_always) Init(1)
435 Do not suppress C++ class debug information.
437 fexceptions
438 Common Report Var(flag_exceptions) Optimization
439 Enable exception handling
441 fexpensive-optimizations
442 Common Report Var(flag_expensive_optimizations) Optimization
443 Perform a number of minor, expensive optimizations
445 ffast-math
446 Common
448 ffinite-math-only
449 Common Report Var(flag_finite_math_only) Optimization
450 Assume no NaNs or infinities are generated
452 ffixed-
453 Common Joined RejectNegative
454 -ffixed-<register>      Mark <register> as being unavailable to the compiler
456 ffloat-store
457 Common Report Var(flag_float_store) Optimization
458 Don't allocate floats and doubles in extended-precision registers
460 ; Nonzero for -fforce-addr: load memory address into a register before
461 ; reference to memory.  This makes better cse but slower compilation.
462 fforce-addr
463 Common Report Var(flag_force_addr) Optimization
464 Copy memory address constants into registers before use
466 fforward-propagate Optimization
467 Common Report Var(flag_forward_propagate)
468 Perform a forward propagation pass on RTL
470 ; Nonzero means don't put addresses of constant functions in registers.
471 ; Used for compiling the Unix kernel, where strange substitutions are
472 ; done on the assembly output.
473 ffunction-cse
474 Common Report Var(flag_no_function_cse,0)
475 Allow function addresses to be held in registers
477 ffunction-sections
478 Common Report Var(flag_function_sections)
479 Place each function into its own section
481 fgcse
482 Common Report Var(flag_gcse) Optimization
483 Perform global common subexpression elimination
485 fgcse-lm
486 Common Report Var(flag_gcse_lm) Init(1) Optimization
487 Perform enhanced load motion during global common subexpression elimination
489 fgcse-sm
490 Common Report Var(flag_gcse_sm) Init(0) Optimization
491 Perform store motion after global common subexpression elimination
493 fgcse-las
494 Common Report Var(flag_gcse_las) Init(0) Optimization
495 Perform redundant load after store elimination in global common subexpression
496 elimination
498 fgcse-after-reload
499 Common Report Var(flag_gcse_after_reload) Optimization
500 Perform global common subexpression elimination after register allocation
501 has finished
503 fguess-branch-probability
504 Common Report Var(flag_guess_branch_prob) Optimization
505 Enable guessing of branch probabilities
507 ; Nonzero means ignore `#ident' directives.  0 means handle them.
508 ; Generate position-independent code for executables if possible
509 ; On SVR4 targets, it also controls whether or not to emit a
510 ; string identifying the compiler.
511 fident
512 Common Report Var(flag_no_ident,0)
513 Process #ident directives
515 fif-conversion
516 Common Report Var(flag_if_conversion) Optimization
517 Perform conversion of conditional jumps to branchless equivalents
519 fif-conversion2
520 Common Report Var(flag_if_conversion2) Optimization
521 Perform conversion of conditional jumps to conditional execution
523 ; -finhibit-size-directive inhibits output of .size for ELF.
524 ; This is used only for compiling crtstuff.c,
525 ; and it may be extended to other effects
526 ; needed for crtstuff.c on other systems.
527 finhibit-size-directive
528 Common Report Var(flag_inhibit_size_directive)
529 Do not generate .size directives
531 ; Nonzero means that functions declared `inline' will be treated
532 ; as `static'.  Prevents generation of zillions of copies of unused
533 ; static inline functions; instead, `inlines' are written out
534 ; only when actually used.  Used in conjunction with -g.  Also
535 ; does the right thing with #pragma interface.
536 finline
537 Common Report Var(flag_no_inline,0) Init(2)
538 Pay attention to the \"inline\" keyword
540 finline-functions
541 Common Report Var(flag_inline_functions) Optimization
542 Integrate simple functions into their callers
544 finline-functions-called-once
545 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
546 Integrate functions called once into their callers
548 finline-limit-
549 Common RejectNegative Joined UInteger
551 finline-limit=
552 Common RejectNegative Joined UInteger
553 -finline-limit=<number> Limit the size of inlined functions to <number>
555 finstrument-functions
556 Common Report Var(flag_instrument_function_entry_exit)
557 Instrument function entry and exit with profiling calls
559 fipa-cp
560 Common Report Var(flag_ipa_cp) Optimization
561 Perform Interprocedural constant propagation
563 fipa-pure-const
564 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
565 Discover pure and const functions
567 fipa-pta
568 Common Report Var(flag_ipa_pta) Init(0) Optimization
569 Perform interprocedural points-to analysis
571 fipa-reference
572 Common Report Var(flag_ipa_reference) Init(0) Optimization
573 Discover readonly and non addressable static variables
575 fipa-type-escape
576 Common Report Var(flag_ipa_type_escape) Init(0) Optimization
577 Type based escape and alias analysis
579 fivopts
580 Common Report Var(flag_ivopts) Init(1) Optimization
581 Optimize induction variables on trees
583 fjump-tables
584 Common Var(flag_jump_tables) Init(1) Optimization
585 Use jump tables for sufficiently large switch statements
587 fkeep-inline-functions
588 Common Report Var(flag_keep_inline_functions)
589 Generate code for functions even if they are fully inlined
591 fkeep-static-consts
592 Common Report Var(flag_keep_static_consts) Init(1)
593 Emit static const variables even if they are not used
595 fleading-underscore
596 Common Report Var(flag_leading_underscore) Init(-1)
597 Give external symbols a leading underscore
599 floop-optimize
600 Common
601 Does nothing.  Preserved for backward compatibility.
603 fmath-errno
604 Common Report Var(flag_errno_math) Init(1)
605 Set errno after built-in math functions
607 fmem-report
608 Common Report Var(mem_report)
609 Report on permanent memory allocation
611 ; This will attempt to merge constant section constants, if 1 only
612 ; string constants and constants from constant pool, if 2 also constant
613 ; variables.
614 fmerge-all-constants
615 Common Report Var(flag_merge_constants,2) Init(1) Optimization
616 Attempt to merge identical constants and constant variables
618 fmerge-constants
619 Common Report Var(flag_merge_constants,1) VarExists Optimization
620 Attempt to merge identical constants across compilation units
622 fmessage-length=
623 Common RejectNegative Joined UInteger
624 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
626 fmodulo-sched
627 Common Report Var(flag_modulo_sched) Optimization
628 Perform SMS based modulo scheduling before the first scheduling pass
630 fmove-loop-invariants
631 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
632 Move loop invariant computations out of loops
634 fmudflap
635 Common RejectNegative Report Var(flag_mudflap)
636 Add mudflap bounds-checking instrumentation for single-threaded program
638 fmudflapth
639 Common RejectNegative Report VarExists Var(flag_mudflap,2)
640 Add mudflap bounds-checking instrumentation for multi-threaded program
642 fmudflapir
643 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
644 Ignore read operations when inserting mudflap instrumentation
646 freschedule-modulo-scheduled-loops
647 Common Report Var(flag_resched_modulo_sched) Optimization
648 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
650 fnon-call-exceptions
651 Common Report Var(flag_non_call_exceptions) Optimization
652 Support synchronous non-call exceptions
654 fomit-frame-pointer
655 Common Report Var(flag_omit_frame_pointer) Optimization
656 When possible do not generate stack frames
658 foptimize-register-move
659 Common Report Var(flag_regmove) Optimization
660 Do the full register move optimization pass
662 foptimize-sibling-calls
663 Common Report Var(flag_optimize_sibling_calls) Optimization
664 Optimize sibling and tail recursive calls
666 fpre-ipa-mem-report
667 Common Report Var(pre_ipa_mem_report)
668 Report on memory allocation before interprocedural optimization
670 fpost-ipa-mem-report
671 Common Report Var(post_ipa_mem_report)
672 Report on memory allocation before interprocedural optimization
674 fpack-struct
675 Common Report Var(flag_pack_struct) Optimization
676 Pack structure members together without holes
678 fpack-struct=
679 Common RejectNegative Joined UInteger Optimization
680 -fpack-struct=<number>  Set initial maximum structure member alignment
682 fpcc-struct-return
683 Common Report Var(flag_pcc_struct_return,1) VarExists
684 Return small aggregates in memory, not registers
686 fpeel-loops
687 Common Report Var(flag_peel_loops) Optimization
688 Perform loop peeling
690 fpeephole
691 Common Report Var(flag_no_peephole,0) Optimization
692 Enable machine specific peephole optimizations
694 fpeephole2
695 Common Report Var(flag_peephole2) Optimization
696 Enable an RTL peephole pass before sched2
698 fPIC
699 Common Report Var(flag_pic,2)
700 Generate position-independent code if possible (large mode)
702 fPIE
703 Common Report Var(flag_pie,2)
704 Generate position-independent code for executables if possible (large mode)
706 fpic
707 Common Report Var(flag_pic,1) VarExists
708 Generate position-independent code if possible (small mode)
710 fpie
711 Common Report Var(flag_pie,1) VarExists
712 Generate position-independent code for executables if possible (small mode)
714 fprefetch-loop-arrays
715 Common Report Var(flag_prefetch_loop_arrays) Optimization
716 Generate prefetch instructions, if available, for arrays in loops
718 fprofile
719 Common Report Var(profile_flag)
720 Enable basic program profiling code
722 fprofile-arcs
723 Common Report Var(profile_arc_flag)
724 Insert arc-based program profiling code
726 fprofile-generate
727 Common
728 Enable common options for generating profile info for profile feedback directed optimizations
730 fprofile-use
731 Common
732 Enable common options for performing profile feedback directed optimizations
734 fprofile-values
735 Common Report Var(flag_profile_values)
736 Insert code to profile values of expressions
738 frandom-seed
739 Common
741 frandom-seed=
742 Common Joined RejectNegative
743 -frandom-seed=<string>  Make compile reproducible using <string>
745 ; This switch causes the command line that was used to create an
746 ; object file to be recorded into the object file.  The exact format
747 ; of this recording is target and binary file format dependent.
748 ; It is related to the -fverbose-asm switch, but that switch only
749 ; records information in the assembler output file as comments, so
750 ; they never reach the object file.
751 frecord-gcc-switches
752 Common Report Var(flag_record_gcc_switches)
753 Record gcc command line switches in the object file.
755 freg-struct-return
756 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
757 Return small aggregates in registers
759 fregmove
760 Common Report Var(flag_regmove) Optimization
761 Enables a register move optimization
763 frename-registers
764 Common Report Var(flag_rename_registers) Init(2) Optimization
765 Perform a register renaming optimization pass
767 freorder-blocks
768 Common Report Var(flag_reorder_blocks) Optimization
769 Reorder basic blocks to improve code placement
771 freorder-blocks-and-partition
772 Common Report Var(flag_reorder_blocks_and_partition) Optimization
773 Reorder basic blocks and partition into hot and cold sections
775 freorder-functions
776 Common Report Var(flag_reorder_functions) Optimization
777 Reorder functions to improve code placement
779 frerun-cse-after-loop
780 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
781 Add a common subexpression elimination pass after loop optimizations
783 frerun-loop-opt
784 Common
785 Does nothing.  Preserved for backward compatibility.
787 frounding-math
788 Common Report Var(flag_rounding_math) Optimization
789 Disable optimizations that assume default FP rounding behavior
791 fsched-interblock
792 Common Report Var(flag_schedule_interblock) Init(1) Optimization
793 Enable scheduling across basic blocks
795 fsched-spec
796 Common Report Var(flag_schedule_speculative) Init(1) Optimization
797 Allow speculative motion of non-loads
799 fsched-spec-load
800 Common Report Var(flag_schedule_speculative_load) Optimization
801 Allow speculative motion of some loads
803 fsched-spec-load-dangerous
804 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
805 Allow speculative motion of more loads
807 fsched-verbose=
808 Common RejectNegative Joined
809 -fsched-verbose=<number>        Set the verbosity level of the scheduler
811 fsched2-use-superblocks
812 Common Report Var(flag_sched2_use_superblocks) Optimization
813 If scheduling post reload, do superblock scheduling
815 fsched2-use-traces
816 Common Report Var(flag_sched2_use_traces) Optimization
817 If scheduling post reload, do trace scheduling
819 fschedule-insns
820 Common Report Var(flag_schedule_insns) Optimization
821 Reschedule instructions before register allocation
823 fschedule-insns2
824 Common Report Var(flag_schedule_insns_after_reload) Optimization
825 Reschedule instructions after register allocation
827 ; sched_stalled_insns means that insns can be moved prematurely from the queue
828 ; of stalled insns into the ready list.
829 fsched-stalled-insns
830 Common Report Var(flag_sched_stalled_insns) Optimization
831 Allow premature scheduling of queued insns
833 fsched-stalled-insns=
834 Common RejectNegative Joined UInteger
835 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled
837 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
838 ; be examined for a dependency on a stalled insn that is candidate for
839 ; premature removal from the queue of stalled insns into the ready list (has
840 ; an effect only if the flag 'sched_stalled_insns' is set).
841 fsched-stalled-insns-dep
842 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization
843 Set dependence distance checking in premature scheduling of queued insns
845 fsched-stalled-insns-dep=
846 Common RejectNegative Joined UInteger
847 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns
849 fsection-anchors
850 Common Report Var(flag_section_anchors) Optimization
851 Access data in the same section from shared anchor points
853 frtl-abstract-sequences
854 Common Report Var(flag_rtl_seqabstr) Optimization
855 Perform sequence abstraction optimization on RTL
857 fsee
858 Common Report Var(flag_see) Init(0)
859 Eliminate redundant sign extensions using LCM.
861 fshow-column
862 Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1)
863 Show column numbers in diagnostics, when available.  Default on
865 fsignaling-nans
866 Common Report Var(flag_signaling_nans) Optimization
867 Disable optimizations observable by IEEE signaling NaNs
869 fsigned-zeros
870 Common Report Var(flag_signed_zeros) Init(1)
871 Disable floating point optimizations that ignore the IEEE signedness of zero
873 fsingle-precision-constant
874 Common Report Var(flag_single_precision_constant) Optimization
875 Convert floating point constants to single precision constants
877 fsplit-ivs-in-unroller
878 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
879 Split lifetimes of induction variables when loops are unrolled
881 fsplit-wide-types
882 Common Report Var(flag_split_wide_types)
883 Split wide types into independent registers
885 fvariable-expansion-in-unroller
886 Common Report Var(flag_variable_expansion_in_unroller) Optimization
887 Apply variable expansion when loops are unrolled
889 ; Emit code to probe the stack, to help detect stack overflow; also
890 ; may cause large objects to be allocated dynamically.
891 fstack-check
892 Common Report Var(flag_stack_check)
893 Insert stack checking code into the program
895 fstack-limit
896 Common
898 fstack-limit-register=
899 Common RejectNegative Joined
900 -fstack-limit-register=<register>       Trap if the stack goes past <register>
902 fstack-limit-symbol=
903 Common RejectNegative Joined
904 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>
906 fstack-protector
907 Common Report Var(flag_stack_protect, 1)
908 Use propolice as a stack protection method
910 fstack-protector-all
911 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
912 Use a stack protection method for every function
914 fstrength-reduce
915 Common
916 Does nothing.  Preserved for backward compatibility.
918 ; Nonzero if we should do (language-dependent) alias analysis.
919 ; Typically, this analysis will assume that expressions of certain
920 ; types do not alias expressions of certain other types.  Only used
921 ; if alias analysis (in general) is enabled.
922 fstrict-aliasing
923 Common Report Var(flag_strict_aliasing) Optimization
924 Assume strict aliasing rules apply
926 fstrict-overflow
927 Common Report Var(flag_strict_overflow)
928 Treat signed overflow as undefined
930 fsyntax-only
931 Common Report Var(flag_syntax_only)
932 Check for syntax errors, then stop
934 ftest-coverage
935 Common Report Var(flag_test_coverage)
936 Create data files needed by \"gcov\"
938 fthread-jumps
939 Common Report Var(flag_thread_jumps) Optimization
940 Perform jump threading optimizations
942 ftime-report
943 Common Report Var(time_report)
944 Report the time taken by each compiler pass
946 ftls-model=
947 Common Joined RejectNegative
948 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model
950 ftoplevel-reorder
951 Common Report Var(flag_toplevel_reorder) Init(1) Optimization
952 Reorder top level functions, variables, and asms
954 ftracer
955 Common Report Var(flag_tracer)
956 Perform superblock formation via tail duplication
958 ; Zero means that floating-point math operations cannot generate a
959 ; (user-visible) trap.  This is the case, for example, in nonstop
960 ; IEEE 754 arithmetic.
961 ftrapping-math
962 Common Report Var(flag_trapping_math) Init(1) Optimization
963 Assume floating-point operations can trap
965 ftrapv
966 Common Report Var(flag_trapv) Optimization
967 Trap for signed overflow in addition, subtraction and multiplication
969 ftree-ccp
970 Common Report Var(flag_tree_ccp) Optimization
971 Enable SSA-CCP optimization on trees
973 ftree-store-ccp
974 Common Report Var(flag_tree_store_ccp) Optimization
975 Enable SSA-CCP optimization for stores and loads
977 ftree-ch
978 Common Report Var(flag_tree_ch) Optimization
979 Enable loop header copying on trees
981 ftree-copyrename
982 Common Report Var(flag_tree_copyrename) Optimization
983 Replace SSA temporaries with better names in copies
985 ftree-copy-prop
986 Common Report Var(flag_tree_copy_prop) Optimization
987 Enable copy propagation on trees
989 ftree-store-copy-prop
990 Common Report Var(flag_tree_store_copy_prop) Optimization
991 Enable copy propagation for stores and loads
993 ftree-dce
994 Common Report Var(flag_tree_dce) Optimization
995 Enable SSA dead code elimination optimization on trees
997 ftree-dominator-opts
998 Common Report Var(flag_tree_dom) Optimization
999 Enable dominator optimizations
1001 ftree-dse
1002 Common Report Var(flag_tree_dse) Optimization
1003 Enable dead store elimination
1005 ftree-fre
1006 Common Report Var(flag_tree_fre) Optimization
1007 Enable Full Redundancy Elimination (FRE) on trees
1009 ftree-loop-im
1010 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1011 Enable loop invariant motion on trees
1013 ftree-loop-linear
1014 Common Report Var(flag_tree_loop_linear) Optimization
1015 Enable linear loop transforms on trees
1017 ftree-loop-ivcanon
1018 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1019 Create canonical induction variables in loops
1021 ftree-loop-optimize
1022 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1023 Enable loop optimizations on tree level
1025 ftree-pre
1026 Common Report Var(flag_tree_pre) Optimization
1027 Enable SSA-PRE optimization on trees
1029 ftree-salias
1030 Common Report Var(flag_tree_salias) Optimization
1031 Perform structural alias analysis
1033 ftree-sink
1034 Common Report Var(flag_tree_sink) Optimization
1035 Enable SSA code sinking on trees
1037 ftree-sra
1038 Common Report Var(flag_tree_sra) Optimization
1039 Perform scalar replacement of aggregates
1041 ftree-ter
1042 Common Report Var(flag_tree_ter) Optimization
1043 Replace temporary expressions in the SSA->normal pass
1045 ftree-lrs
1046 Common Report Var(flag_tree_live_range_split) Optimization
1047 Perform live range splitting during the SSA->normal pass
1049 ftree-vrp
1050 Common Report Var(flag_tree_vrp) Init(0) Optimization
1051 Perform Value Range Propagation on trees
1053 funit-at-a-time
1054 Common Report Var(flag_unit_at_a_time) Optimization
1055 Compile whole compilation unit at a time
1057 funroll-loops
1058 Common Report Var(flag_unroll_loops) Optimization
1059 Perform loop unrolling when iteration count is known
1061 funroll-all-loops
1062 Common Report Var(flag_unroll_all_loops) Optimization
1063 Perform loop unrolling for all loops
1065 ; Nonzero means that loop optimizer may assume that the induction variables
1066 ; that control loops do not overflow and that the loops with nontrivial
1067 ; exit condition are not infinite
1068 funsafe-loop-optimizations
1069 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1070 Allow loop optimizations to assume that the loops behave in normal way
1072 ; Nonzero means that unsafe floating-point math optimizations are allowed
1073 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
1074 ; are allowed to assume that their arguments and results are "normal"
1075 ; (e.g., nonnegative for SQRT).
1076 funsafe-math-optimizations
1077 Common Report Var(flag_unsafe_math_optimizations) Optimization
1078 Allow math optimizations that may violate IEEE or ISO standards
1080 funswitch-loops
1081 Common Report Var(flag_unswitch_loops) Optimization
1082 Perform loop unswitching
1084 funwind-tables
1085 Common Report Var(flag_unwind_tables) Optimization
1086 Just generate unwind tables for exception handling
1088 fvar-tracking
1089 Common Report Var(flag_var_tracking) VarExists Optimization
1090 Perform variable tracking
1092 ftree-vectorize
1093 Common Report Var(flag_tree_vectorize) Optimization
1094 Enable loop vectorization on trees
1096 ftree-vect-loop-version
1097 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1098 Enable loop versioning when doing loop vectorization on trees
1100 ftree-vectorizer-verbose=
1101 Common RejectNegative Joined
1102 -ftree-vectorizer-verbose=<number>      Set the verbosity level of the vectorizer
1104 ftree-scev-cprop
1105 Common Report Var(flag_tree_scev_cprop) Init(1)
1106 Enable copy propagation of scalar-evolution information.
1108 ; -fverbose-asm causes extra commentary information to be produced in
1109 ; the generated assembly code (to make it more readable).  This option
1110 ; is generally only of use to those who actually need to read the
1111 ; generated assembly code (perhaps while debugging the compiler itself).
1112 ; -fno-verbose-asm, the default, causes the extra information
1113 ; to not be added and is useful when comparing two assembler files.
1114 fverbose-asm
1115 Common Report Var(flag_verbose_asm)
1116 Add extra commentary to assembler output
1118 fvisibility=
1119 Common Joined RejectNegative
1120 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility
1123 fvpt
1124 Common Report Var(flag_value_profile_transformations) Optimization
1125 Use expression value profiles in optimizations
1127 fweb
1128 Common Report Var(flag_web) Init(2) Optimization
1129 Construct webs and split unrelated uses of single variable
1131 fwhole-program
1132 Common Report Var(flag_whole_program) Init(0) Optimization
1133 Perform whole program optimizations
1135 fwrapv
1136 Common Report Var(flag_wrapv) Optimization
1137 Assume signed arithmetic overflow wraps around
1139 fzero-initialized-in-bss
1140 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1141 Put zero initialized data in the bss section
1144 Common JoinedOrMissing
1145 Generate debug information in default format
1147 gcoff
1148 Common JoinedOrMissing Negative(gdwarf-2)
1149 Generate debug information in COFF format
1151 gdwarf-2
1152 Common JoinedOrMissing Negative(gstabs)
1153 Generate debug information in DWARF v2 format
1155 ggdb
1156 Common JoinedOrMissing
1157 Generate debug information in default extended format
1159 gstabs
1160 Common JoinedOrMissing Negative(gstabs+)
1161 Generate debug information in STABS format
1163 gstabs+
1164 Common JoinedOrMissing Negative(gvms)
1165 Generate debug information in extended STABS format
1167 gvms
1168 Common JoinedOrMissing Negative(gxcoff)
1169 Generate debug information in VMS format
1171 gxcoff
1172 Common JoinedOrMissing Negative(gxcoff+)
1173 Generate debug information in XCOFF format
1175 gxcoff+
1176 Common JoinedOrMissing Negative(gcoff)
1177 Generate debug information in extended XCOFF format
1180 Common Joined Separate
1181 -o <file>       Place output into <file>
1184 Common Var(profile_flag)
1185 Enable function profiling
1187 pedantic
1188 Common Var(pedantic)
1189 Issue warnings needed for strict compliance to the standard
1191 pedantic-errors
1192 Common
1193 Like -pedantic but issue them as errors
1195 quiet
1196 Common Var(quiet_flag)
1197 Do not display functions compiled or elapsed time
1199 version
1200 Common Var(version_flag)
1201 Display the compiler's version
1204 Common Var(inhibit_warnings)
1205 Suppress warnings
1207 ; This comment is to ensure we retain the blank line above.