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
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
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
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.
28 Display this information
32 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
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).
52 --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
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>
67 Optimize for space rather than speed
71 This switch is deprecated; use -Wextra instead
74 Common Var(warn_aggregate_return) Warning
75 Warn about returning structures, unions or arrays
78 Common Var(warn_array_bounds)
79 Warn if an array is accessed out of bounds
82 Common Var(warn_attributes) Init(1) Warning
83 Warn about inappropriate attribute usage
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
98 Common Var(warnings_are_errors)
99 Treat all warnings as errors
103 Treat specified warning as error
107 Print extra (possibly unwanted) warnings
110 Common Var(flag_fatal_errors)
111 Exit on the first error occurred
114 Common Var(warn_inline) Warning
115 Warn when an inlined function cannot be inlined
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.
126 Common Var(warn_missing_noreturn) Warning
127 Warn about functions which might be candidates for __attribute__((noreturn))
130 Common Var(warn_overflow) Init(1) Warning
131 Warn about overflow in arithmetic expressions
134 Common Var(warn_packed) Warning
135 Warn when the packed attribute has no effect on struct layout
138 Common Var(warn_padded) Warning
139 Warn when padding is required to align structure members
142 Common Var(warn_shadow) Warning
143 Warn when one local variable shadows another
146 Common Var(warn_stack_protect) Warning
147 Warn when not issuing stack smashing protection for some reason
151 Warn about code which might break strict aliasing rules
154 Common Joined UInteger Warning
155 Warn about code which might break strict aliasing rules
159 Warn about optimizations that assume that signed overflow is undefined
162 Common Joined UInteger
163 Warn about optimizations that assume that signed overflow is undefined
166 Common Var(warn_switch) Warning
167 Warn about enumerated switches, with no default, missing a case
170 Common Var(warn_switch_default) Warning
171 Warn about enumerated switches missing a \"default:\" statement
174 Common Var(warn_switch_enum) Warning
175 Warn about all enumerated switches missing a specific case
178 Common Var(warn_system_headers) Warning
179 Do not suppress warnings from system headers
182 Common Var(warn_uninitialized) Warning
183 Warn about uninitialized automatic variables
186 Common Var(warn_notreached) Warning
187 Warn about code that will never be executed
191 Enable all -Wunused- warnings
194 Common Var(warn_unused_function) Warning
195 Warn when a function is unused
198 Common Var(warn_unused_label) Warning
199 Warn when a label is unused
202 Common Var(warn_unused_parameter) Warning
203 Warn when a function parameter is unused
206 Common Var(warn_unused_value) Warning
207 Warn when an expression value is unused
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
218 Common RejectNegative Var(warn_coverage_mismatch)
219 Warn instead of error in case profiles in -fprofile-use do not match
223 -aux-info <file> Emit declaration information into <file>
236 -d<letters> Enable dumps from specific passes of the compiler
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
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.
254 Common Joined UInteger Var(flag_abi_version) Init(2)
257 Common Report Var(align_functions,0)
258 Align the start of functions
261 Common RejectNegative Joined UInteger
264 Common Report Var(align_jumps,0) Optimization
265 Align labels which are only reached by jumping
268 Common RejectNegative Joined UInteger
271 Common Report Var(align_labels,0) Optimization
275 Common RejectNegative Joined UInteger
278 Common Report Var(align_loops) Optimization
279 Align the start of 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
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.
293 Common Report Var(flag_argument_noalias,0) Optimization
294 Specify that arguments may alias each other and globals
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.
317 Common Report Var(flag_bounds_check)
318 Generate code to check bounds before indexing arrays
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
337 Common Report Var(flag_btr_bb_exclusive) Optimization
338 Restrict target load migration not to re-use registers in any basic block
341 Common Joined RejectNegative
342 -fcall-saved-<register> Mark <register> as being preserved across functions
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.
352 Common Report Var(flag_caller_saves) Optimization
353 Save registers around function calls
356 Common Report Var(flag_no_common,0) Optimization
357 Do not put uninitialized globals in the common section
360 Common Report Var(flag_cprop_registers) Optimization
361 Perform a register copy-propagation optimization pass
364 Common Report Var(flag_crossjumping) Optimization
365 Perform cross-jumping optimization
368 Common Report Var(flag_cse_follow_jumps) Optimization
369 When running CSE, follow jumps to their targets
372 Common Report Var(flag_cse_skip_blocks) Optimization
373 When running CSE, follow conditional jumps
376 Common Report Var(flag_cx_limited_range) Optimization
377 Omit range reduction step when performing complex division
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.
386 Common Report Var(flag_defer_pop) Optimization
387 Defer popping functions args from stack until later
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
403 Amend appropriate diagnostic messages with the command line option that controls them
406 Common Joined RejectNegative
407 -fdump-<type> Dump various compiler internals to a file
410 Common Report Var(flag_dump_noaddr)
411 Suppress output of addresses in debugging dumps
414 Common Report Var(flag_dump_unnumbered) VarExists
415 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
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.
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
449 Common Report Var(flag_finite_math_only) Optimization
450 Assume no NaNs or infinities are generated
453 Common Joined RejectNegative
454 -ffixed-<register> Mark <register> as being unavailable to the compiler
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.
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.
474 Common Report Var(flag_no_function_cse,0)
475 Allow function addresses to be held in registers
478 Common Report Var(flag_function_sections)
479 Place each function into its own section
482 Common Report Var(flag_gcse) Optimization
483 Perform global common subexpression elimination
486 Common Report Var(flag_gcse_lm) Init(1) Optimization
487 Perform enhanced load motion during global common subexpression elimination
490 Common Report Var(flag_gcse_sm) Init(0) Optimization
491 Perform store motion after global common subexpression elimination
494 Common Report Var(flag_gcse_las) Init(0) Optimization
495 Perform redundant load after store elimination in global common subexpression
499 Common Report Var(flag_gcse_after_reload) Optimization
500 Perform global common subexpression elimination after register allocation
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.
512 Common Report Var(flag_no_ident,0)
513 Process #ident directives
516 Common Report Var(flag_if_conversion) Optimization
517 Perform conversion of conditional jumps to branchless equivalents
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.
537 Common Report Var(flag_no_inline,0) Init(2)
538 Pay attention to the \"inline\" keyword
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
549 Common RejectNegative Joined UInteger
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
560 Common Report Var(flag_ipa_cp) Optimization
561 Perform Interprocedural constant propagation
564 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
565 Discover pure and const functions
568 Common Report Var(flag_ipa_pta) Init(0) Optimization
569 Perform interprocedural points-to analysis
572 Common Report Var(flag_ipa_reference) Init(0) Optimization
573 Discover readonly and non addressable static variables
576 Common Report Var(flag_ipa_type_escape) Init(0) Optimization
577 Type based escape and alias analysis
580 Common Report Var(flag_ivopts) Init(1) Optimization
581 Optimize induction variables on trees
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
592 Common Report Var(flag_keep_static_consts) Init(1)
593 Emit static const variables even if they are not used
596 Common Report Var(flag_leading_underscore) Init(-1)
597 Give external symbols a leading underscore
601 Does nothing. Preserved for backward compatibility.
604 Common Report Var(flag_errno_math) Init(1)
605 Set errno after built-in math functions
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
615 Common Report Var(flag_merge_constants,2) Init(1) Optimization
616 Attempt to merge identical constants and constant variables
619 Common Report Var(flag_merge_constants,1) VarExists Optimization
620 Attempt to merge identical constants across compilation units
623 Common RejectNegative Joined UInteger
624 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
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
635 Common RejectNegative Report Var(flag_mudflap)
636 Add mudflap bounds-checking instrumentation for single-threaded program
639 Common RejectNegative Report VarExists Var(flag_mudflap,2)
640 Add mudflap bounds-checking instrumentation for multi-threaded program
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
651 Common Report Var(flag_non_call_exceptions) Optimization
652 Support synchronous non-call exceptions
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
667 Common Report Var(pre_ipa_mem_report)
668 Report on memory allocation before interprocedural optimization
671 Common Report Var(post_ipa_mem_report)
672 Report on memory allocation before interprocedural optimization
675 Common Report Var(flag_pack_struct) Optimization
676 Pack structure members together without holes
679 Common RejectNegative Joined UInteger Optimization
680 -fpack-struct=<number> Set initial maximum structure member alignment
683 Common Report Var(flag_pcc_struct_return,1) VarExists
684 Return small aggregates in memory, not registers
687 Common Report Var(flag_peel_loops) Optimization
691 Common Report Var(flag_no_peephole,0) Optimization
692 Enable machine specific peephole optimizations
695 Common Report Var(flag_peephole2) Optimization
696 Enable an RTL peephole pass before sched2
699 Common Report Var(flag_pic,2)
700 Generate position-independent code if possible (large mode)
703 Common Report Var(flag_pie,2)
704 Generate position-independent code for executables if possible (large mode)
707 Common Report Var(flag_pic,1) VarExists
708 Generate position-independent code if possible (small mode)
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
719 Common Report Var(profile_flag)
720 Enable basic program profiling code
723 Common Report Var(profile_arc_flag)
724 Insert arc-based program profiling code
728 Enable common options for generating profile info for profile feedback directed optimizations
732 Enable common options for performing profile feedback directed optimizations
735 Common Report Var(flag_profile_values)
736 Insert code to profile values of expressions
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.
752 Common Report Var(flag_record_gcc_switches)
753 Record gcc command line switches in the object file.
756 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
757 Return small aggregates in registers
760 Common Report Var(flag_regmove) Optimization
761 Enables a register move optimization
764 Common Report Var(flag_rename_registers) Init(2) Optimization
765 Perform a register renaming optimization pass
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
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
785 Does nothing. Preserved for backward compatibility.
788 Common Report Var(flag_rounding_math) Optimization
789 Disable optimizations that assume default FP rounding behavior
792 Common Report Var(flag_schedule_interblock) Init(1) Optimization
793 Enable scheduling across basic blocks
796 Common Report Var(flag_schedule_speculative) Init(1) Optimization
797 Allow speculative motion of non-loads
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
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
816 Common Report Var(flag_sched2_use_traces) Optimization
817 If scheduling post reload, do trace scheduling
820 Common Report Var(flag_schedule_insns) Optimization
821 Reschedule instructions before register allocation
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.
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
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
858 Common Report Var(flag_see) Init(0)
859 Eliminate redundant sign extensions using LCM.
862 Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1)
863 Show column numbers in diagnostics, when available. Default on
866 Common Report Var(flag_signaling_nans) Optimization
867 Disable optimizations observable by IEEE signaling NaNs
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
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.
892 Common Report Var(flag_stack_check)
893 Insert stack checking code into the program
898 fstack-limit-register=
899 Common RejectNegative Joined
900 -fstack-limit-register=<register> Trap if the stack goes past <register>
903 Common RejectNegative Joined
904 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
907 Common Report Var(flag_stack_protect, 1)
908 Use propolice as a stack protection method
911 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
912 Use a stack protection method for every function
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.
923 Common Report Var(flag_strict_aliasing) Optimization
924 Assume strict aliasing rules apply
927 Common Report Var(flag_strict_overflow)
928 Treat signed overflow as undefined
931 Common Report Var(flag_syntax_only)
932 Check for syntax errors, then stop
935 Common Report Var(flag_test_coverage)
936 Create data files needed by \"gcov\"
939 Common Report Var(flag_thread_jumps) Optimization
940 Perform jump threading optimizations
943 Common Report Var(time_report)
944 Report the time taken by each compiler pass
947 Common Joined RejectNegative
948 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
951 Common Report Var(flag_toplevel_reorder) Init(1) Optimization
952 Reorder top level functions, variables, and asms
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.
962 Common Report Var(flag_trapping_math) Init(1) Optimization
963 Assume floating-point operations can trap
966 Common Report Var(flag_trapv) Optimization
967 Trap for signed overflow in addition, subtraction and multiplication
970 Common Report Var(flag_tree_ccp) Optimization
971 Enable SSA-CCP optimization on trees
974 Common Report Var(flag_tree_store_ccp) Optimization
975 Enable SSA-CCP optimization for stores and loads
978 Common Report Var(flag_tree_ch) Optimization
979 Enable loop header copying on trees
982 Common Report Var(flag_tree_copyrename) Optimization
983 Replace SSA temporaries with better names in copies
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
994 Common Report Var(flag_tree_dce) Optimization
995 Enable SSA dead code elimination optimization on trees
998 Common Report Var(flag_tree_dom) Optimization
999 Enable dominator optimizations
1002 Common Report Var(flag_tree_dse) Optimization
1003 Enable dead store elimination
1006 Common Report Var(flag_tree_fre) Optimization
1007 Enable Full Redundancy Elimination (FRE) on trees
1010 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1011 Enable loop invariant motion on trees
1014 Common Report Var(flag_tree_loop_linear) Optimization
1015 Enable linear loop transforms on trees
1018 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1019 Create canonical induction variables in loops
1022 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1023 Enable loop optimizations on tree level
1026 Common Report Var(flag_tree_pre) Optimization
1027 Enable SSA-PRE optimization on trees
1030 Common Report Var(flag_tree_salias) Optimization
1031 Perform structural alias analysis
1034 Common Report Var(flag_tree_sink) Optimization
1035 Enable SSA code sinking on trees
1038 Common Report Var(flag_tree_sra) Optimization
1039 Perform scalar replacement of aggregates
1042 Common Report Var(flag_tree_ter) Optimization
1043 Replace temporary expressions in the SSA->normal pass
1046 Common Report Var(flag_tree_live_range_split) Optimization
1047 Perform live range splitting during the SSA->normal pass
1050 Common Report Var(flag_tree_vrp) Init(0) Optimization
1051 Perform Value Range Propagation on trees
1054 Common Report Var(flag_unit_at_a_time) Optimization
1055 Compile whole compilation unit at a time
1058 Common Report Var(flag_unroll_loops) Optimization
1059 Perform loop unrolling when iteration count is known
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
1081 Common Report Var(flag_unswitch_loops) Optimization
1082 Perform loop unswitching
1085 Common Report Var(flag_unwind_tables) Optimization
1086 Just generate unwind tables for exception handling
1089 Common Report Var(flag_var_tracking) VarExists Optimization
1090 Perform variable tracking
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
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.
1115 Common Report Var(flag_verbose_asm)
1116 Add extra commentary to assembler output
1119 Common Joined RejectNegative
1120 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1124 Common Report Var(flag_value_profile_transformations) Optimization
1125 Use expression value profiles in optimizations
1128 Common Report Var(flag_web) Init(2) Optimization
1129 Construct webs and split unrelated uses of single variable
1132 Common Report Var(flag_whole_program) Init(0) Optimization
1133 Perform whole program optimizations
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
1148 Common JoinedOrMissing Negative(gdwarf-2)
1149 Generate debug information in COFF format
1152 Common JoinedOrMissing Negative(gstabs)
1153 Generate debug information in DWARF v2 format
1156 Common JoinedOrMissing
1157 Generate debug information in default extended format
1160 Common JoinedOrMissing Negative(gstabs+)
1161 Generate debug information in STABS format
1164 Common JoinedOrMissing Negative(gvms)
1165 Generate debug information in extended STABS format
1168 Common JoinedOrMissing Negative(gxcoff)
1169 Generate debug information in VMS format
1172 Common JoinedOrMissing Negative(gxcoff+)
1173 Generate debug information in XCOFF format
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
1188 Common Var(pedantic)
1189 Issue warnings needed for strict compliance to the standard
1193 Like -pedantic but issue them as errors
1196 Common Var(quiet_flag)
1197 Do not display functions compiled or elapsed time
1200 Common Var(version_flag)
1201 Display the compiler's version
1204 Common Var(inhibit_warnings)
1207 ; This comment is to ensure we retain the blank line above.